“Đại tu lớn”: OpenCode 2.0 hợp nhất ba ứng dụng

OpenCode 2.0 hợp nhất giao diện dòng lệnh, ứng dụng máy tính và web trên một dịch vụ nền, đồng thời bổ sung API, SDK và tác vụ chạy nền.

Lập trình viên làm việc với OpenCode trên nhiều giao diện
OpenCode 2.0 hợp nhất các giao diện trên một dịch vụ.

OpenCode 2.0 đưa giao diện dòng lệnh, ứng dụng máy tính và ứng dụng web về cùng một dịch vụ chạy nền. Kiến trúc này cho phép người dùng chuyển phiên làm việc giữa các giao diện. Họ cũng có thể chạy tác tử phụ và lệnh hệ thống trong nền, đồng thời nhúng OpenCode vào ứng dụng khác qua SDK mới.

Theo bài viết gốc của The New Stack, Anomaly gọi OpenCode 2.0 là một cuộc “đại tu lớn”. Công ty cho biết kiến trúc mới được xây dựng từ trải nghiệm của “hàng triệu người dùng mỗi ngày”. Mục tiêu là bổ sung năng lực tác tử mà không buộc từng giao diện hoạt động như một hệ thống riêng.

Thông báo chính thức xuất hiện khoảng ba tháng sau bản thử nghiệm công khai. Quá trình triển khai kéo dài từng khiến một số lập trình viên không rõ OpenCode 2.0 đã ổn định hay chưa. Các bản cập nhật vẫn tiếp tục được phát hành, trong khi một số người dùng phàn nàn rằng ghi chú phát hành còn thiếu. Việc nhật ký thay đổi của OpenCode chuyển sang dòng 2.x cho thấy đây hiện là phiên bản chính.

Nội dung nền tảng: OpenCode đi lên từ hệ sinh thái phát triển không máy chủ

OpenCode bắt nguồn từ nhóm từng xây dựng công cụ phát triển không máy chủ. Dự án thu hút người dùng nhờ khả năng lựa chọn mô hình AI, sau đó mở rộng từ một ứng dụng độc lập thành nền tảng mà các công cụ khác có thể sử dụng làm thành phần bên trong.

Theo The New Stack, hai nhà sáng lập Anomaly là Jay V và Frank Wang trước đó đã tạo Serverless Stack, một khung nguồn mở dùng để xây dựng và triển khai ứng dụng trên Amazon Web Services. Dax Raad, một nhân vật nổi bật khác trong quá trình phát triển OpenCode, cũng từng thuộc nhóm này.

Sức hút với lập trình viên

Kể từ khi ra mắt vào năm 2025, OpenCode thu hút những lập trình viên muốn tự chọn mô hình AI cho công cụ viết mã. Nhu cầu đó trở nên rõ hơn vào tháng 1, khi Anthropic bắt đầu ngăn các tác tử của bên thứ ba dùng thông tin đăng nhập thuê bao Claude Pro và Max. Người dùng bị ảnh hưởng phải tìm cách truy cập Claude khác hoặc chuyển sang nhà cung cấp mới.

The New Stack ghi nhận kho mã OpenCode trên GitHub đã vượt 212.000 lượt đánh dấu sao và đạt gần 30.000 lượt phân nhánh. Những con số này xuất hiện trong bối cảnh sự quan tâm dành cho tác tử AI hỗ trợ viết mã đang tăng, đặc biệt với các công cụ cho phép đổi mô hình thay vì khóa người dùng vào một nhà cung cấp.

Giao diện tác tử viết mã nguồn mở OpenCode
OpenCode thu hút cộng đồng lập trình viên nguồn mở.

Tháng 7, Anaconda mua Kilo, một tác tử viết mã nguồn mở cũng cho phép người dùng chọn nhà cung cấp AI. Theo The New Stack, Kilo trước đó đã xây dựng lại giao diện dòng lệnh và phần mở rộng Visual Studio Code bằng OpenCode. Trường hợp này cho thấy OpenCode có thể trở thành thành phần bên trong công cụ của nhà phát triển khác.

Một dịch vụ chung cho ba giao diện

Thay đổi chính của OpenCode 2.0 là một tiến trình nền duy nhất phục vụ giao diện dòng lệnh, ứng dụng máy tính và trình duyệt. Phiên làm việc không còn gắn với giao diện nơi nó được tạo, nên người dùng có thể bắt đầu ở một nơi và tiếp tục ở nơi khác.

Anomaly cho biết nền tảng kết nối máy khách và máy chủ đã có từ đầu, nhưng trước đây chủ yếu được những người dùng có kinh nghiệm tự thiết lập.

Trong OpenCode 2.0, máy chủ tự khởi động dưới dạng một tiến trình nền duy nhất trên máy của lập trình viên. Giao diện dòng lệnh, trình duyệt và ứng dụng máy tính cùng kết nối tới tiến trình này. Phần thực thi vẫn do dịch vụ nền xử lý khi người dùng chuyển giữa các giao diện.

Một lập trình viên có thể bắt đầu phiên trong giao diện dòng lệnh, tiếp tục trên ứng dụng máy tính hoặc web, rồi để tập lệnh riêng kết nối với cùng dịch vụ. Máy khách lập trình của OpenCode cũng có thể tự tìm dịch vụ cục bộ, phù hợp với các tác vụ được lên lịch. Khi cần, lập trình viên có thể mở dịch vụ cho máy khác hoặc ghép nó với ứng dụng bên ngoài.

Không gian làm việc minh họa dịch vụ OpenCode dùng chung
Một dịch vụ nền duy trì phiên làm việc giữa các giao diện.

Cách tổ chức này phù hợp với các nhóm đang đưa tác tử AI vào lớp hạ tầng. Thay vì để mỗi giao diện sở hữu một phiên và một quy trình thực thi riêng, OpenCode đặt các giao diện quanh một dịch vụ mà nhiều máy khách có thể sử dụng.

API được xây dựng lại từ đầu

OpenCode 2.0 thay API cũ bằng một API cho phép tác tử kiểm soát phiên và môi trường làm việc trực tiếp hơn. Tác tử có thể tạo cây làm việc Git, chuyển phiên vào cây đó, hoặc phát hiện và dừng một phiên khác đang mắc kẹt.

Anomaly thừa nhận API cũ phát triển chắp vá trong giai đoạn ngành phần mềm vẫn đang xác định tác tử AI nên hoạt động như thế nào. Công ty mô tả thẳng phiên bản cũ là “tệ”.

Lập trình viên truy cập API mới qua gói mã @opencode/client, hỗ trợ JavaScript tiêu chuẩn và Effect. API cho phép tác tử tạo một cây làm việc Git cho nhiệm vụ mới, chuyển phiên hiện có vào cây đó hoặc phát hiện và dừng một phiên khác đang mắc kẹt.

Khả năng quản lý phiên và môi trường làm việc trực tiếp đặt ra câu hỏi về mức quyền nên giao cho tác tử. Đây cũng là vấn đề trong các cuộc thảo luận về việc AI nên có bao nhiêu quyền trong hệ thống. OpenCode 2.0 mở rộng phạm vi hành động của tác tử, nhưng nguồn bài viết không nêu cơ chế kiểm soát quyền mới cho phần này.

SDK cho phép nhúng OpenCode vào ứng dụng khác

SDK mới cho phép lập trình viên nhúng OpenCode vào máy chủ hoặc môi trường như Cloudflare Durable Objects. Các phiên bản nhúng dùng cùng mã nền với giao diện dòng lệnh và có thể giao tiếp với máy khách OpenCode hiện có qua giao thức máy chủ tiêu chuẩn.

Anomaly phát hành SDK của OpenCode dưới gói mã @opencode/sdk. Bộ công cụ này cho phép lập trình viên tạo phiên bản OpenCode riêng thay vì chỉ sử dụng các giao diện do dự án cung cấp.

Anomaly cho biết SDK vẫn đang được phát triển.

Chế độ mã giảm số lượt trao đổi với mô hình

Chế độ mã cho phép tác tử viết JavaScript để gọi nhiều công cụ và xử lý kết quả trong một lần thực thi. Cách làm này giảm nhu cầu thực hiện một lượt trao đổi riêng với mô hình cho từng công cụ và hạn chế phần định nghĩa công cụ chiếm cửa sổ ngữ cảnh.

Cơ chế này dựa trên trình thông dịch JavaScript gọn nhẹ trong gói @opencode/codemode. Nó chuyển máy chủ Giao thức ngữ cảnh mô hình và các điểm cuối OpenAPI thành hàm để tác tử gọi bằng mã.

Ví dụ do Anomaly đưa ra là một tác tử lấy báo cáo lỗi từ GitHub, trích xuất thông tin cần thiết rồi tạo vấn đề tương ứng trong Linear. Toàn bộ chuỗi thao tác không cần một lượt trao đổi riêng với mô hình cho từng công cụ.

Lợi ích rõ hơn khi tác tử kết nối với nhiều dịch vụ vì định nghĩa công cụ có thể chiếm một phần lớn cửa sổ ngữ cảnh. Anomaly đặt Chế độ mã làm lựa chọn mặc định cho toàn bộ máy chủ Giao thức ngữ cảnh mô hình trong OpenCode 2.0. Công ty nói người dùng có thể thêm một nghìn máy chủ Giao thức ngữ cảnh mô hình với mức phình ngữ cảnh tối thiểu, sau đó để tác tử tự tìm và kết hợp chúng.

Tác tử phụ và lệnh hệ thống chạy trong nền

OpenCode 2.0 cho phép tác tử phụ, kiểm thử và các lệnh kéo dài tiếp tục chạy trong nền. Người dùng có thể làm việc với tác tử chính trong lúc chờ, sau đó nhận thông báo khi tiến trình nền hoàn tất.

Một lập trình viên có thể giao việc rà soát mã cho tác tử phụ dùng mô hình AI khác, rồi tiếp tục nhiệm vụ đang làm thay vì chờ quá trình rà soát kết thúc.

Các thao tác kéo dài như chạy kiểm thử hoặc dựng ứng dụng cũng có thể thực hiện bất đồng bộ. Nếu một nhiệm vụ chạy ở tiền cảnh lâu hơn dự kiến, người dùng có thể dùng phím tắt để chuyển nó xuống nền.

Cách chạy đồng thời này không loại bỏ nhu cầu kiểm tra kết quả. Nhiệm vụ dài không còn chặn cuộc hội thoại chính, nhưng lập trình viên vẫn phải xem thông báo và kết quả do tiến trình nền trả về.

Hơn 80 phần bổ trợ nội bộ và khả năng nạp lại nóng

Anomaly cho biết OpenCode 2.0 có hơn 80 phần bổ trợ nội bộ bao phủ phần lớn chức năng mới. Phần bổ trợ cho giao diện dòng lệnh đã ổn định và có thể được nạp lại ngay trong phiên, nhưng phần bổ trợ viết cho OpenCode 1.0 không tương thích với phiên bản 2.0.

Công ty dùng cấu trúc phần bổ trợ nội bộ để cải thiện độ tin cậy và khả năng bảo trì của API dành cho phần bổ trợ. Khả năng nạp lại nóng cho phép OpenCode tạo và bắt đầu dùng phần bổ trợ mới trong phiên đang hoạt động mà không cần khởi động lại.

Người dùng cũ phải xử lý vấn đề tương thích. Ngoài các phần bổ trợ phiên bản 1.0 không còn hoạt động, những tích hợp dựa trên API máy chủ trước đây cũng cần được cập nhật.

Người dùng phải chủ động nâng cấp

OpenCode 1.x không tự động chuyển lên phiên bản 2.0. Người dùng phải chạy opencode upgrade --major hoặc nhập /update, đồng thời kiểm tra lại phần bổ trợ và tích hợp phụ thuộc vào API cũ trước khi nâng cấp.

Theo ghi chú phát hành ngày 11 tháng 10 được The New Stack dẫn lại, bản cập nhật không còn tự cài đặt. Người dùng phải tự bắt đầu quá trình nâng cấp bằng một trong hai lệnh được hỗ trợ.

Dịch vụ dùng chung giúp chuyển phiên giữa các giao diện thuận tiện hơn. Tuy nhiên, thay đổi API và việc phần bổ trợ phiên bản 1.0 không tương thích có thể buộc các nhóm sửa quy trình hoặc tích hợp hiện tại.

Hãy theo dõi Sine để cập nhật những thay đổi tiếp theo của OpenCode và hệ sinh thái tác tử AI dành cho lập trình viên.