Chia sẻ bởi Tù Bà Khuỳm
Thời gian gần đây, cuộc đua phát triển các AI coding agent ngay trên terminal (CLI) đã trở nên bùng nổ hơn bao giờ hết. Từ mã nguồn mở, miễn phí cho đến các giải pháp trả phí, chúng ta có vô số lựa chọn. Tuy nhiên, việc liên tục chạy theo và thử nghiệm từng công cụ riêng lẻ thực sự rất mệt mỏi. Cảm giác phải chuyển đổi qua lại giữa các CLI khác nhau, mỗi cái một kiểu, khiến quy trình làm việc trở nên rời rạc và thiếu hiệu quả.
Câu hỏi đặt ra là: làm thế nào để gom tất cả chúng lại thành một workflow thống nhất? Làm sao để tận dụng tối đa các tài nguyên miễn phí cực kỳ hào phóng như Gemini (trước đây là Bard), Qwen Coder với 2000 request/ngày, hay thậm chí là tài khoản ChatGPT Plus "mượn" từ các nền tảng khác? Chẳng lẽ mỗi lần cần một năng lực đặc thù, chúng ta lại phải mở một terminal khác và chạy một lệnh khác?
Sau một thời gian mày mò và thử nghiệm trên các dự án cá nhân, tôi đã tìm ra một phương pháp mà cá nhân tôi thấy cực kỳ hiệu quả và thú vị. Cách tiếp cận này không chỉ giúp tiết kiệm chi phí mà còn biến các AI model khác nhau thành một đội quân hùng mạnh, nơi mỗi "binh sĩ" có một thế mạnh riêng và được điều động đúng lúc, đúng việc. Trong bài viết này, tôi sẽ chia sẻ chi tiết cách setup một hệ thống AI coding agent "hệ nghèo" nhưng mạnh mẽ không kém cạnh các giải pháp đắt đỏ.
Tại sao cần một 'dàn' AI coding agent thay vì chỉ một?
Triết lý cốt lõi của phương pháp này là "không có công cụ nào hoàn hảo cho mọi việc". Mỗi mô hình ngôn ngữ lớn (LLM) đều có những điểm mạnh và điểm yếu riêng. Thay vì cố gắng tìm một AI "toàn năng", tại sao chúng ta không xây dựng một đội ngũ chuyên gia?
- Gemini 1.5 Pro: Với cửa sổ ngữ cảnh (context window) lên tới 1 triệu token, đây là một "nhà phân tích" xuất sắc. Nó có thể "đọc" và hiểu toàn bộ một codebase lớn để trả lời các câu hỏi tổng quan, tìm kiếm logic phức tạp hoặc phân tích các vấn đề bảo mật.
- Qwen Coder: Mô hình này được tối ưu cho việc sinh mã, cực kỳ nhanh và hiệu quả. Đây chính là "lập trình viên" chủ lực, chuyên thực thi các tác vụ implement chi tiết.
- GPT-4/GPT-5 (thông qua Codex): Các mô hình của OpenAI nổi tiếng với khả năng suy luận (reasoning) và lập kế hoạch sắc bén. Đây sẽ là "kiến trúc sư trưởng", giúp vạch ra chiến lược, chia nhỏ vấn đề và đưa ra quyết định.
- Cody (Sourcegraph): Có khả năng hiểu sâu về ngữ cảnh của dự án, bao gồm cả lịch sử commit. Đây là "sử gia" của dự án, cung cấp những thông tin nền tảng quan trọng.
Bằng cách kết hợp chúng lại, chúng ta tạo ra một hệ thống mà ở đó, mỗi nhiệm vụ được giao cho đúng "chuyên gia" phù hợp nhất.
OpenCode - 'Tổng chỉ huy' cho đội quân AI của bạn
Để điều khiển được đội quân đa dạng này, chúng ta cần một "tổng chỉ huy". Và công cụ tôi lựa chọn cho vai trò này là OpenCode.
OpenCode là một công cụ mã nguồn mở tương tự như Cursor hay Claude Code, nhưng linh hoạt hơn rất nhiều. Điểm đặc biệt của OpenCode nằm ở hệ thống "sub-agent" (đặc vụ con). Mỗi sub-agent có thể được cấu hình để thực thi các lệnh bash
trên terminal.
Đây chính là chìa khóa của toàn bộ hệ thống. Vì các công cụ như gemini-cli
, codex-cli
đều có thể được gọi thông qua lệnh bash
, chúng ta có thể "dạy" OpenCode cách ra lệnh cho chúng.
Luồng hoạt động sẽ như sau:
- Bạn đưa ra một yêu cầu cho agent chính của OpenCode.
- Agent chính (ví dụ, đang chạy bằng Claude 3 Sonnet) phân tích yêu cầu và quyết định giao nhiệm vụ cho một sub-agent chuyên biệt (ví dụ, sub-agent Gemini).
- Sub-agent Gemini thực thi lệnh
bash
để gọigemini-cli
, truyền yêu cầu của bạn vào đó. gemini-cli
xử lý, trả kết quả về cho sub-agent.- Sub-agent báo cáo kết quả lại cho agent chính.
Bằng cách này, agent chính không cần phải tự mình xử lý những tác vụ nặng nề như phân tích toàn bộ codebase. Nó chỉ cần điều phối, giúp tiết kiệm đáng kể token và tận dụng được tài nguyên miễn phí từ các dịch vụ khác.
Cách 1: Xây dựng hệ thống từ các công cụ CLI miễn phí
Đây là cách tiếp cận chính, tập trung vào việc tích hợp các CLI có sẵn và các gói tài nguyên miễn phí của chúng.
Cài đặt và cấu hình Gemini CLI làm 'trinh sát'
Đầu tiên, chúng ta cần cài đặt "nhà phân tích" Gemini.
-
Cài đặt Gemini CLI: Mở terminal và chạy lệnh để cài đặt công cụ này. Bạn có thể tìm hướng dẫn cài đặt chi tiết trên trang chính thức của Google AI.
-
Xác thực tài khoản: Sau khi cài đặt, bạn cần xác thực để sử dụng tài nguyên miễn phí. Chạy lệnh xác thực và chọn tài khoản Google của bạn.
gemini auth
Tầng miễn phí của Gemini khá hào phóng, cho phép bạn thực hiện hàng nghìn yêu cầu mỗi ngày, quá đủ cho các dự án cá nhân.
-
Tạo Sub-agent trong OpenCode:
Bây giờ, chúng ta sẽ cấu hình một sub-agent trong OpenCode để nó có thể "nói chuyện" với Gemini. Tìm đến file cấu hình của OpenCode (thường là~/.config/opencode/config.yml
) và thêm vào một agent mới. Tôi thường đặt các agent này ở scope global để có thể tái sử dụng ở bất kỳ dự án nào.Đây là một ví dụ về cấu hình cho agent Gemini:
# ~/.config/opencode/agents.yml gemini: description: "Một chuyên gia phân tích codebase. Sử dụng agent này để hiểu tổng quan về dự án, tìm kiếm các lỗi bảo mật hoặc phân tích các thành phần phức tạp. Tận dụng cửa sổ ngữ cảnh 1 triệu token." tools: - bash model: "claude-3-sonnet-20240229" # Model của agent OpenCode, không phải của Gemini prompt: | Bạn là một trợ lý chuyên nghiệp. Nhiệm vụ của bạn là sử dụng công cụ `gemini` CLI để thực hiện yêu cầu từ người dùng. Đây là một ví dụ về cách sử dụng: - User: "Phân tích toàn bộ dự án này." - Bạn sẽ chạy lệnh: `gemini "phân tích toàn bộ dự án này"` Hãy thực thi yêu cầu sau: {{.user_request}}
description
: Phần này rất quan trọng. Agent chính của OpenCode sẽ đọc mô tả này để biết khi nào nên ủy quyền tác vụ cho agentgemini
. Mô tả càng rõ ràng, việc ủy quyền càng chính xác.tools
: Khai báo rằng agent này có quyền sử dụngbash
.prompt
: Đây là chỉ thị cho chính sub-agent, hướng dẫn nó cách sử dụng lệnhgemini
.
Bổ sung các 'chuyên gia' khác vào đội hình
Tương tự như với Gemini, bạn có thể tạo các sub-agent cho những công cụ khác.
-
Qwen Coder Agent:
- Nhiệm vụ: Viết code, implement tính năng.
- Cài đặt: Cài đặt CLI tương ứng của Qwen Coder.
- Cấu hình: Tạo một agent tên
qwen
vớidescription
là "Chuyên gia viết code nhanh và hiệu quả. Sử dụng để implement các hàm hoặc class cụ thể."
-
Codex (ChatGPT) Agent:
- Nhiệm vụ: Suy luận, lập kế hoạch, đưa ra quyết định kiến trúc.
- Cài đặt: Cài đặt
codex-cli
và xác thực với tài khoản ChatGPT Plus của bạn. - Cấu hình: Tạo agent
gpt5
vớidescription
là "Kiến trúc sư trưởng, có khả năng suy luận sắc bén. Sử dụng để lên kế hoạch cho các tính năng phức tạp hoặc đưa ra các quyết định về thiết kế."
Sau khi cấu hình xong, bạn đã có một đội quân AI sẵn sàng chiến đấu. Khi làm việc trong OpenCode, bạn chỉ cần dùng cú pháp @
để gọi tên agent, ví dụ: @gemini tell me about this project
.
Cách 2: Tận dụng API miễn phí từ các nhà cung cấp
Ngoài việc sử dụng các công cụ CLI, OpenCode còn có một thế mạnh vượt trội khác: khả năng tích hợp trực tiếp với hàng chục nhà cung cấp mô hình AI thông qua API. Họ sử dụng AI SDK nên việc thêm một provider mới rất dễ dàng.
Điều này mở ra một hướng đi thứ hai: tận dụng các chương trình khuyến mãi hoặc các gói miễn phí từ những nhà cung cấp như Cerebras, Groq, và nhiều bên khác.
-
Lấy API Key: Đăng ký tài khoản trên nền tảng của nhà cung cấp (ví dụ: Cerebras) và lấy API key của bạn.
-
Xác thực trong OpenCode:
opencode --provider cerebras # Dán API key của bạn vào khi được yêu cầu
-
Sử dụng trực tiếp hoặc tạo Agent:
- Sử dụng trực tiếp: Sau khi xác thực, bạn có thể chọn trực tiếp các model miễn phí từ Cerebras ngay trong OpenCode để sử dụng cho agent chính.
- Tạo Agent chuyên biệt: Giống như cách 1, bạn có thể tạo một sub-agent riêng, ví dụ
cerebras-coder
, và chỉ định nó sử dụng một model cụ thể từ Cerebras. Điều này giúp bạn chủ động hơn trong việc điều phối.
# ~/.config/opencode/agents.yml cerebras-fast: description: "Một agent siêu nhanh để thực hiện các tác vụ đơn giản, không yêu cầu suy luận sâu. Tốt cho việc hoàn thành code hoặc định dạng." model: "cerebras/BT-3B-8K" # Tên model cụ thể từ provider
Cách tiếp cận này đặc biệt hữu ích khi bạn có credit miễn phí từ Google Cloud, AWS, hoặc khi các nhà cung cấp mới tung ra chương trình dùng thử hấp dẫn.
Đưa tất cả vào thực tế: Một kịch bản làm việc mẫu
Hãy tưởng tượng bạn cần thêm một tính năng mới vào dự án hiện tại. Workflow của bạn với dàn AI coding agent này sẽ như sau:
-
Giai đoạn Khảo sát (Dùng @gemini):
Bạn bắt đầu bằng việc hỏi agent Gemini:
@gemini Phân tích cấu trúc của dự án này và chỉ ra những file liên quan đến việc quản lý người dùng.
Gemini sẽ dùng 1 triệu token context của mình để "đọc" toàn bộ code và đưa ra một báo cáo chi tiết. -
Giai đoạn Lập kế hoạch (Dùng @gpt5):
Dựa trên báo cáo của Gemini, bạn yêu cầu "kiến trúc sư" GPT-5:
@gpt5 Dựa trên thông tin này, hãy vạch ra các bước cần thiết để thêm tính năng 'phân quyền theo vai trò' cho người dùng.
GPT-5 sẽ cung cấp một kế hoạch chi tiết, bao gồm các model cần tạo, các API endpoint cần xây dựng, và những thay đổi cần thực hiện ở frontend. -
Giai đoạn Thực thi (Dùng @qwen):
Bây giờ, bạn giao từng phần của kế hoạch cho "lập trình viên" Qwen:
@qwen Viết cho tôi một class 'Role' trong 'models/role.py' theo các thuộc tính đã mô tả trong kế hoạch.
Qwen sẽ nhanh chóng tạo ra đoạn code cần thiết. Bạn tiếp tục giao các tác vụ nhỏ khác cho đến khi hoàn thành tính năng.
Trong suốt quá trình này, agent chính của OpenCode (ví dụ là Claude 3 Sonnet) đóng vai trò điều phối, ghi nhớ ngữ cảnh chung và đảm bảo luồng công việc diễn ra trôi chảy.
Kết luận
Việc xây dựng một hệ thống AI coding agent từ nhiều công cụ miễn phí không chỉ là một cách "chơi" thú vị mà còn là một chiến lược thực sự hiệu quả để tối ưu hóa công việc lập trình. Thay vì bị giới hạn bởi một công cụ duy nhất, bạn trở thành một "nhà quản lý" của một đội ngũ chuyên gia AI, mỗi người một thế mạnh.
Cách làm này mang lại ba lợi ích cốt lõi:
- Tiết kiệm chi phí: Tận dụng tối đa các tài nguyên miễn phí.
- Tăng hiệu suất: Giao đúng việc cho đúng công cụ chuyên biệt.
- Linh hoạt và tùy biến cao: Dễ dàng thêm, bớt hoặc thay thế các "thành viên" trong đội ngũ AI của bạn khi có công cụ mới tốt hơn.
Hy vọng những chia sẻ từ kinh nghiệm cá nhân của tôi sẽ giúp bạn xây dựng được một "dàn" AI coding agent ưng ý. Đây là một lĩnh vực phát triển rất nhanh, và chắc chắn còn nhiều mẹo và thủ thuật hay ho khác. Nếu bạn có cách làm nào khác hiệu quả hơn, đừng ngần ngại chia sẻ trong phần bình luận nhé