3 điểm bởi GN⁺ 2025-06-21 | 1 bình luận | Chia sẻ qua WhatsApp
  • Phoenix.new là một AI coding agent hoàn toàn trực tuyến được tối ưu riêng cho Elixir và framework Phoenix
  • Người dùng có thể viết mã trong IDE chạy trên trình duyệt, thông qua máy ảo cách ly, đồng thời chia sẻ root shell với agent
  • Agent của Phoenix.new có thể điều khiển trực tiếp trình duyệt để kiểm thử UI, đồng thời tự động hóa từ chỉnh sửa mã, triển khai cho đến tích hợp GitHub
  • Người dùng có thể theo dõi tiến độ phát triển thông qua xem trước ứng dụng theo thời gian thực và giám sát log
  • Có kế hoạch mở rộng sang nhiều ngôn ngữ và framework khác nhau, tạo kỳ vọng về sự thay đổi trong quy trình phát triển tương lai

Giới thiệu

  • Chris McCord là lập trình viên đã tạo ra framework Phoenix của Elixir
  • Gần đây tại Fly.io, ông đã tập trung vào một dự án bí mật nhằm tạo ra môi trường nơi các agent LLM có thể hoạt động với Elixir và Phoenix tốt như với Python hay JavaScript
  • Kết quả của dự án đó là sự ra mắt của Phoenix.new
  • Phoenix.new là một AI coding agent dành cho Elixir và Phoenix hoạt động hoàn toàn trực tuyến, với đầy đủ tính năng
  • Đây được nhấn mạnh là công cụ tối ưu cho cộng tác thời gian thực và tạo prototype nhanh

Các đặc điểm chính của Phoenix.new

  • Hoạt động trong môi trường trình duyệt, nhưng vẫn cung cấp cho cả người dùng lẫn agent root shell của một máy ảo cách ly được tạo bằng Fly Machine
    • Người dùng có thể truy cập shell đúng như mong muốn trong giao diện kiểu VSCode
  • Agent được tối ưu riêng cho Phoenix nên hiểu được các yêu cầu của ứng dụng cộng tác thời gian thực
  • Phoenix.new tích hợp sẵn trình duyệt, để agent điều khiển nó ở chế độ "headless" nhằm kiểm thử và tương tác với các thay đổi ở frontend
    • Thay vì chỉ chụp màn hình, nó có thể nắm được nội dung trang thực tế và trạng thái JavaScript
    Quảng cáo

Lợi ích của quyền truy cập root

  • Agent có thể mở shell trực tiếp như người dùng và tự tiến hành các thử nghiệm phát triển
  • Vì là môi trường VM cách ly, mọi hành động như thêm package vào mix.exs hay cài gói APT ở cấp hệ thống đều có thể thực hiện
  • Cấu trúc này tự động hóa phần lớn các công việc lặp đi lặp lại và gây phiền toái
  • Tất cả ứng dụng được tạo ra đều chạy ngay trên cloud, đồng thời tự động được cung cấp URL chia sẻ riêng tư (miền .phx.run), tích hợp port forwarding, kết nối GitHub và các guardrail hạ tầng của Fly.io (ảo hóa, WireGuard, mạng cô lập)
  • gh CLI của GitHub được cài sẵn mặc định, nên agent cũng có thể thực hiện các công việc cộng tác nhóm như clone repository, xem issue, tạo PR
  • Vòng lặp triển khai và kiểm thử tự động đã sẵn sàng, cho phép agent xử lý từ khởi chạy ứng dụng đến phát hiện và sửa lỗi

Xác nhận bản build theo thời gian thực

  • Phoenix.new chạy trình duyệt thực để kiểm thử ứng dụng web
  • Khi thêm tính năng frontend, nó không chỉ viết và biên dịch mã mà còn trực tiếp thao tác UI, đồng thời kiểm tra song song trang, trạng thái JavaScript và log máy chủ
  • Live app preview được tích hợp trong chính giao diện của nó, cho phép theo dõi quá trình phát triển và thay đổi theo thời gian thực
  • Các thay đổi cũng được đồng bộ theo thời gian thực trên nhiều tab .phx.run
Quảng cáo

Không chỉ dừng ở prototyping đơn giản

  • Công cụ này đã được dùng để phát triển ứng dụng full-stack hoàn chỉnh có WebSocket, Phoenix Presence và cơ sở dữ liệu thực
  • Mọi việc có thể làm trong shell và trình duyệt đều có thể được agent xử lý tự động hoặc theo yêu cầu của người dùng
    • Hỗ trợ như khám phá cơ sở dữ liệu sau khi thiết lập $DATABASE_URL, đề xuất schema Ecto, cài MySQL client, v.v.
  • Các LLM hiện đại có kiến thức rộng và khả năng khái quát hóa tốt, nên có thể kỳ vọng mở rộng sang ngôn ngữ và framework mới
    • Ví dụ: đã từng thành công khi code "tại chỗ" một ứng dụng Phoenix LiveView Tetris; trong tương lai có thể hỗ trợ Rails, React Native, Svelte, Go, v.v.
  • System prompt hiện tập trung vào Phoenix, nhưng đã bày tỏ ý định mở rộng sang ngôn ngữ và framework khác

Triển vọng của kỷ nguyên agent bất đồng bộ

  • Bài viết nhấn mạnh rằng đây là thời điểm quy trình làm việc của lập trình viên đang thay đổi mạnh mẽ
  • Trong tương lai, phát triển phần mềm được dự đoán sẽ chuyển từ cách xử lý tệp trong shell cục bộ sang mô hình do agent dẫn dắt trong môi trường CI bất đồng bộ
  • Dù phát triển cục bộ sẽ không biến mất, phần lớn công việc lặp lại sẽ chuyển sang môi trường cloud lấy agent làm trung tâm
  • Trên thực tế, Phoenix.new đã được dùng hằng ngày cho các việc như phân loại issue của phoenix-core và tạo PR sửa lỗi
  • Chris McCord bày tỏ sự phấn khích và kỳ vọng về thay đổi này cũng như tiềm năng tương lai của Phoenix.new

1 bình luận

 
GN⁺ 2025-06-21
Ý kiến trên Hacker News
  • Tôi thấy dịch vụ này thực sự ấn tượng, và muốn nêu ra hai đổi mới quan trọng nhất ở đây

    1. Agent từ xa – môi trường này được container hóa nên agent có thể hành động tự do, không cần sự can thiệp hay phê duyệt riêng từ người dùng; tất nhiên vẫn có thể xảy ra lỗi nghiêm trọng như sửa lịch sử git, nhưng vì là không gian cô lập nên tương đối an toàn; riêng phần này thôi cũng đáng để phát triển thành một dịch vụ riêng; cá nhân tôi khi chạy claude code trong terminal rất muốn agent tự động khởi chạy trong môi trường cô lập (cục bộ hoặc từ xa), và nhờ vậy việc chạy song song cũng trở nên dễ dàng hơn
    2. Tích hợp sâu với fly – tôi nghĩ trong tương lai sẽ có nhiều nỗ lực nhúng AI thật sâu vào mọi sản phẩm; thay vì kiểu hỏi chatgpt rồi copy-paste kết quả, trải nghiệm sẽ là trực tiếp làm việc với dữ liệu và tác vụ ngay bên trong sản phẩm đang dùng, đồng thời nhận phản hồi theo thời gian thực; ở đây ví dụ là triển khai ngay ứng dụng web
    • Tôi muốn đề xuất Kasm Workspaces, có thể tự do khởi chạy môi trường desktop Linux từ xa dựa trên docker, và cũng rất phù hợp làm môi trường phát triển AI; nó còn hỗ trợ tính bền vững cho thư mục home và các gói, liên kết docker hub, thảo luận trên reddit về tính bền vững của gói

    • Có ý kiến cho rằng việc agent có thể tự do đi lại trong môi trường container hóa là một đổi mới, nhưng tôi vẫn băn khoăn không biết nó có thực sự mang tính đột phá không

  • Xin nói rõ tôi là người sáng lập Phoenix, nếu có gì thắc mắc tôi có thể trả lời; tham khảo thêm thì phoenix.new là một cụm Elixir toàn cầu được triển khai trên khắp thế giới, ví dụ nếu bạn đăng ký từ Úc thì IDE và agent sẽ được gán ở Sydney

    • Công việc rất tuyệt, nhưng khi nhìn thương hiệu Phoenix.new tôi hơi bối rối, không rõ đây có phải cùng thứ với framework web Elixir mà tôi vốn biết hay còn hơn thế nữa

      • Phoenix.new có cung cấp IDE không
      • Nó có cung cấp hỗ trợ AI khi xây ứng dụng bằng framework web Phoenix không
      • Có bắt buộc phải triển khai lên Fly.io không, và nếu đúng vậy thì một cái tên như "phoenix.flyio.new" có hợp với mục đích đó hơn không
      • Hay là tất cả các chức năng trên đều được cung cấp cùng lúc
      • Và nếu so với Tidewave.ai thì điểm khác biệt là gì (tôi biết Tidewave.ai do người tạo ra Elixir làm)
      • Nếu tôi đang nhầm lẫn chủ đề thì xin lỗi
    • Tôi được biết môi trường Phoenix.new có kèm trình duyệt Chrome không giao diện và agent có thể điều khiển nó; khi ra lệnh thêm tính năng frontend, nó không chỉ viết code rồi cho qua compile và lint, mà còn tự chạy ứng dụng, thao tác UI và đồng thời kiểm tra nội dung trang, trạng thái JavaScript và log máy chủ; tôi muốn biết liệu có thể chạy trình duyệt không giao diện và agent này cục bộ trong môi trường như Cursor không

    • Tôi không tìm thấy tài liệu nào về chính sách bảo mật hay việc mã do người dùng gửi lên có bị dùng cho mục đích huấn luyện hay không; muốn biết có thể xem chính sách bảo mật liên quan ở đâu

    • Tôi muốn hỏi họ tiếp cận vấn đề khả năng truy cập như thế nào, có kiểm thử khả năng truy cập cho UI của phoenix.new không; nhiều người cũng viết frontend bằng Phoenix nên tôi cũng muốn hỏi liệu họ đã từng đánh giá khả năng truy cập của frontend được tạo ra chưa

      • Ngoài ra họ xử lý thư viện bên thứ ba ra sao, agent có thể truy cập tài liệu của thư viện không
      • Vì Elixir không phải ngôn ngữ đại chúng nên dữ liệu huấn luyện có thể thiếu, tôi nghĩ cách giải quyết vấn đề này là điều quan trọng
    • Nếu có insight nào về việc provision môi trường cô lập bằng Fly API thì bạn có thể chia sẻ không; tôi cũng đang thử một cách tiếp cận tương tự cho hệ thống workflow serverless low-code

  • Là người thích Elixir và tin vào tương lai của agentic AI, tôi thấy dịch vụ này rất tuyệt; tôi có vài câu hỏi về quản lý ngữ cảnh và mô hình đang dùng

    • Dạo này tôi thấy Gemini làm tốt nhất trong cửa sổ ngữ cảnh được cấp, nhưng giới hạn vẫn rất rõ; khi làm việc với Claude Code tôi cố chia nhỏ công việc theo đơn vị tác vụ và quản lý trạng thái dự án cẩn thận để giữ kích thước ngữ cảnh ở mức phù hợp
    • Video demo thì rất ấn tượng, nhưng nếu dự án kéo dài liên tục thì cuối cùng có vẻ vẫn sẽ bị lạc hướng hoặc ngữ cảnh bị trộn lẫn
    • Trong tình huống như vậy, có thể yêu cầu nó tóm tắt các điểm chính, hoặc bắt đầu một phiên sạch dựa trên phần tóm tắt đó không; có thể khiến nó “quên” các file không cần thiết rồi quay lại tập trung phát triển tính năng không
  • Tôi không chắc Phoenix.new là sản phẩm của Fly.io hay là một dự án trực thuộc của họ, cũng muốn biết chính sách giá có được nêu rõ không, đặc biệt là các chi phí bổ sung như triển khai web service vĩnh viễn; trên di động tôi thấy khá khó tìm những thông tin này ở trang đầu

  • Tôi từng rất lo Elixir sẽ bị tụt lại về hỗ trợ LLM, nên thật mừng khi thấy những nỗ lực như thế này giúp giảm bớt nỗi lo đó; nhờ các thử nghiệm tích cực này mà tôi có cảm giác tương lai của Elixir sẽ an toàn hơn

    • Tôi còn đùa rằng việc LLM không viết Elixir tốt có khi lại là sức hấp dẫn lớn nhất của Elixir

    • Tôi từng có trải nghiệm Claude tạo ra ứng dụng Elixir full-stack có cả LiveView rất tốt; cảm giác là meme về chuyện này không thật sự đúng

    • Vài tháng gần đây tôi đã dùng LLM để viết code Elixir, và dù không hoàn hảo như với JS thì tôi vẫn thấy khá ổn

    • Trong vài tuần gần đây tôi đang dùng LLM để làm các prototype mới, chủ yếu dùng Claude Sonnet 3.7 qua github copilot trong Zed và trải nghiệm rất tuyệt; thỉnh thoảng nó cố dùng cách làm cũ, nhưng không phải vấn đề lớn; nó cũng tạo được tính năng LiveView mới khá dễ dàng; nhìn chung năng suất không khác quá nhiều so với khi tôi làm dự án Python hay nextjs; có lẽ tôi cũng hưởng lợi vì chủ yếu dùng các package phổ biến, được biết đến rộng rãi; lúc đầu tôi tự tạo dự án phoenix rồi mới giao cho LLM thì tình trạng nó đi chệch hướng kỳ quặc cũng giảm đi

    • Là người làm với Common Lisp, tôi nghĩ sẽ rất tốt nếu có thể bổ sung huấn luyện cho LLM bằng codebase hiện có; chỉ đọc tài liệu có vẻ không giúp cải thiện nhiều độ chính xác khi sinh mã hay năng lực giải quyết vấn đề nói chung

  • Tôi muốn hỏi @chrismccord, nhưng đang hơi lẫn lộn không biết đây là dự án hợp tác giữa Chris và Fly.io hay sao; có phải không thể tách ứng dụng ra để tự vận hành hoàn toàn không, và điều đó có nghĩa đây không phải dự án Phoenix mã nguồn mở không

    • Chia sẻ rằng bạn có thể đơn giản clone mã bằng git và dùng nó
  • Tôi khá bất ngờ trước ý kiến cho rằng LLM xử lý Elixir không tốt; bản thân tôi đã dùng các công cụ AI khá ổn cho các side project Phoenix/Elixir

    • Tôi chỉ dùng LLM với Elixir nên không có đối tượng để so sánh, nhưng dù Claude đôi khi tiếp cận theo hướng kỳ quặc, sau khi cho nó đọc tài liệu chính thức thì nó hoạt động khá tốt

    • Tôi cảm thấy khả năng của LLM với Elixir rõ ràng đã tốt hơn trước rất nhiều; so với Elixir đơn thuần thì các tác vụ phức tạp hơn như Phoenix, LiveView vẫn còn khó; tôi tò mò không biết LLM nào hợp nhất với Elixir/Phoenix

  • Khi nhấn "Sign in with fly.io" thì nó chuyển sang trang thanh toán, nhưng không có thông tin chi tiết về những gì được bao gồm trong mục ‘Built-In AI Assistance’ giá $20; có nói là IDE cung cấp các tính năng như build, refactor, debug, nhưng tôi muốn biết phạm vi cụ thể rõ hơn

    • Mọi người tham gia đã liên tục thúc Chris phát hành sớm nên phần đóng gói, thông tin giá cả v.v. vẫn đang được sắp xếp lại; cảm ơn vì đã chỉ ra, chúng tôi sẽ bổ sung trong khoảng một tuần tới
  • Tôi vừa đăng ký thử thì thấy không có dùng thử miễn phí mà vào thẳng gói thuê bao $20, và cũng không ghi rõ giới hạn sử dụng

    • Tôi cũng cảm thấy vậy, tính năng agent có thể tốn kém và tôi còn chưa biết độ tin cậy hay hiệu quả thực tế ra sao; sẽ tốt hơn nếu được dùng thử trước
  • Phoenix.new trông rất mạnh và tôi chắc chắn sẽ thử; tuy chưa hẳn là framework agentic tận dụng tối đa môi trường BEAM mà tôi mơ tới, nhưng có lẽ jido có thể đảm nhận vai trò đó

    • Tôi thấy đây là một thư viện rất thú vị mà hôm nay mới biết đến