OpenCode, coding agent chạy trên terminal và IDE, mã nguồn mở, đã vượt mốc 170,000 GitHub star năm nay trong khi làm một điều đi ngược dòng chảy của một thị trường bị thống trị bởi các coding assistant khóa vendor: nó từ chối chọn sẵn model cho bạn. Đó là một client nói chuyện với bất kỳ LLM nào bạn trỏ vào — Claude, GPT, Gemini, Qwen, một model chạy local, không quan trọng — và chiến lược kiếm tiền của nó là Zen, một gateway inference tính phí gần như không markup và chỉ pass qua phí xử lý thanh toán.
Mình đang chạy ba coding agent khác nhau trên các dự án khách hàng ngay lúc này, trên ba gói vendor khác nhau, và độ phức tạp của hóa đơn đã âm thầm trở thành một mục riêng cần quản lý. Canh bạc của OpenCode là tính model-agnostic chính là sản phẩm thực sự, không phải một tính năng. Mình nghĩ canh bạc đó đúng cho một phân khúc team cụ thể, và sai cho một phân khúc khác, và ranh giới đó đáng để nói rõ.
Zen thực sự là gì
Zen không phải một model mới. Đó là một lớp routing và billing với hai tier, theo báo cáo công khai: gói “Go” phẳng $10/tháng với usage cap ($12 mỗi 5 giờ, $30/tuần, $60/tháng) trên khoảng hai chục model coding open-weight được tuyển chọn, và một tier trả theo credit không markup, thêm các model closed frontier (Claude, GPT, Gemini, Grok) lên trên, chỉ tính phí xử lý thẻ.
Tuyên bố “không markup” là phần thú vị về mặt kiến trúc, vì nó có nghĩa mô hình kinh doanh của OpenCode không phải “cắt phần trăm trên mỗi token bạn đốt” — nó gần với “khiến bạn dùng client của chúng tôi, và kiếm tiền từ mối quan hệ tổng hợp với các nhà cung cấp model, không phải margin trên từng request.” Đó là một cấu trúc động lực khác về bản chất so với một công cụ subscription bundled, nơi vendor muốn bạn dùng đúng bằng lượng compute mà tier gói của bạn cho phép, không hơn.
Vì sao con số “không markup” quan trọng cho procurement, không chỉ cho chi phí
Đây là một mô hình chi phí gần đúng so sánh coding agent subscription bundled với setup BYO-model qua một gateway không markup, cho một team 5 kỹ sư làm agentic coding mức trung bình đến nặng:
def monthly_cost(engineers, avg_tokens_per_engineer_millions, bundled_plan=True):
if bundled_plan:
# giá seat cố định, usage bị cap, vượt mức thường bị chặn hoặc throttle
return engineers * 30 # minh họa: $30/seat/tháng cố định
else:
# BYO model qua gateway không markup: trả theo giá provider gốc
# tỷ lệ blended trên hỗn hợp model frontier + open-weight
blended_rate_per_million_tokens = 4.50
return engineers * avg_tokens_per_engineer_millions * blended_rate_per_million_tokens
# Dùng nhẹ (vài feature mỗi tuần): bundled thường thắng nhờ tính dự đoán được
print(monthly_cost(5, 2, bundled_plan=True)) # $150 cố định
print(monthly_cost(5, 2, bundled_plan=False)) # $45 — BYO thắng ở đây
# Dùng nặng (multi-agent pipeline, refactor lớn, agent tích hợp CI):
print(monthly_cost(5, 20, bundled_plan=True)) # vẫn $150, nhưng có thể bị throttle/cap
print(monthly_cost(5, 20, bundled_plan=False)) # $450 — bundled thắng nếu không chạm cap
Các con số chỉ mang tính minh họa, không lấy từ rate card cụ thể của vendor nào, nhưng hình dạng mới là điểm thực sự: subscription bundled thắng khi usage của bạn thấp-đến-trung bình và dự đoán được, vì bạn đang trả cho một trần mà bạn hiếm khi chạm tới. Gateway BYO-model thắng khi usage hoặc rất nhẹ (bạn chỉ trả cho những gì dùng) hoặc nặng đến mức cap của gói bundled trở thành ràng buộc thực sự lên throughput của team — lúc đó “chúng ta chạm quota agent vào thứ Ba” trở thành vấn đề tốc độ engineering, không phải vấn đề billing.
Phần không hiện trên trang giá: chọn model là một quyết định kiến trúc
Lợi ích bị đánh giá thấp của một client model-agnostic không phải chi phí — mà là việc chọn model trở thành một quyết định theo từng task thay vì một quyết định procurement toàn công ty. Trong thực tế, nó trông như thế này:
# quick lint-fix pass trên repo lớn: model open-weight rẻ, volume cao
opencode run --model zen/qwen3.8-coder "fix all flagged lint errors in src/"
# refactor nhạy cảm về kiến trúc: model frontier, volume thấp, cần judgment
opencode run --model zen/claude-fable-5.1 "refactor the payment reconciliation module \
to remove the race condition described in issue #4021"
# bot review PR tích hợp CI: model rẻ nhất vẫn đạt ngưỡng accuracy của bạn
opencode run --model zen/gemini-3.8-flash --ci "review this diff for regressions"
Đó mới là thay đổi kiến trúc thực sự đáng nội tâm hóa: tối ưu chi phí agent không còn là một cuộc đàm phán vendor thường niên duy nhất nữa mà trở thành một bài toán routing bạn giải liên tục, giống hệt cách bạn route traffic giữa các tier compute. Các team vẫn còn trên một gói coding assistant một-vendor-duy-nhất, về bản chất, luôn đang trả giá model frontier cho việc fix lint.
Chỗ mình sẽ phản biện
Tính model-agnostic có một chi phí thật mà các so sánh giá không nắm bắt được: mỗi model hành xử hơi khác nhau bên trong cùng một agent harness, và một prompt hay pattern gọi tool được tune cho một model không chuyển giao sạch sẽ sang model khác. Các agent bundled vendor (Copilot, Cursor, Claude Code) đầu tư nặng vào việc tune ở tầng harness cho đúng gia đình model của họ — quản lý context, định dạng tool-call, phục hồi lỗi — và việc tune đó vô hình cho đến khi bạn đổi model bên dưới và tỷ lệ thành công âm thầm giảm trên một lớp task bạn chưa test. Nếu team bạn áp dụng setup BYO-model, hãy dành thời gian thật để xây eval suite riêng cho từng cặp model-và-task; bỏ qua bước đó là cách “chúng ta tiết kiệm 60% chi phí inference” biến thành “chúng ta tiêu lại số đó vào việc debug lỗi của agent.”
Với các team có một platform engineer chuyên trách có thể sở hữu công việc eval đó, mô hình của OpenCode là một kiến trúc dài hạn tốt hơn thực sự. Với các team không có năng lực đó, một agent một-vendor được tune tốt vẫn là lựa chọn mặc định an toàn hơn — bạn đang trả cho việc tune mà lẽ ra bạn phải tự xây.
Nguồn: Developers Digest: OpenCode Developer Guide, AI Product Scout: How OpenCode reached 173K stars, AgentPlans: opencode pricing comparison