Cách đơn giản để các tác nhân AI giao tiếp với nhau mà không tốn phí API

20 tháng 4, 2026·7 phút đọc

Bài viết chia sẻ một phương pháp nhẹ nhàng giúp các tác nhân AI (như Claude, Codex, Gemini) tương tác với nhau thông qua dòng lệnh (CLI) mà không cần sử dụng API trả phí. Phương pháp này tận dụng các gói đăng ký hiện có và sử dụng các lệnh "resume" hoặc công cụ tmux để tạo luồng làm việc đa tác nhân linh hoạt.

Trong vài tuần qua, tôi đã thử nghiệm một quy trình làm việc đơn giản để các tác nhân AI chuyên về lập trình tương tác với nhau mà không cần dùng API, SDK hay các thư viện phụ thuộc phức tạp.

Mục tiêu chính của phương pháp này rất rõ ràng: tận dụng các gói đăng ký bạn đang có, tránh trả phí cho việc sử dụng API và giữ cho việc thiết lập đủ đơn giản để bạn có thể thử nghiệm trong vài phút.

Tại sao phương pháp này lại hữu ích?

Tôi nhận ra cách làm này mang lại hai lợi ích lớn:

  • Đôi khi tôi muốn mở rộng phiên làm việc trên Claude bằng cách nhờ Codex hoặc Gemini xem xét lại hoặc tiếp tục một phần công việc nào đó.
  • Tôi cũng muốn ủy quyền công việc và nhận được nhiều góc nhìn khác nhau từ các mô hình khác nhau trên cùng một bản nháp, đặc tả hoặc đoạn mã triển khai, thay vì chỉ phụ thuộc vào các tác nhân phụ thuộc của một nhà cung cấp duy nhất.

Đây không phải là một khuôn khổ hoàn chỉnh. Nó chỉ là một mô hình thực tế hoạt động đủ tốt để kiểm tra các luồng làm việc đa tác nhân (multi-agent workflows) với rất ít thiết lập ban đầu.

Ý tưởng cơ bản

Thay vì tích hợp các mô hình thông qua API, bạn để một tác nhân gọi một tác nhân khác thông qua dòng lệnh (CLI) theo cách bảo toàn cuộc hội thoại trước đó.

Đối với mô hình không tương tác, điểm mấu chốt là tiếp tục phiên làm việc trước đó thay vì bắt đầu một phiên mới mỗi lần.

Các lệnh mà tác nhân cần sử dụng bao gồm:

codex exec resume --last "prompt"

gemini -r latest -p "prompt"

Phần quan trọng nhất là tác nhân phải tiếp tục tương tác trước đó để nó có thể tiếp tục lặp lại trên cùng một chủ đề thay vì bắt đầu từ con số 0 trong mỗi lần gọi. Trong ví dụ về Codex, tùy chọn --last báo cho CLI biết rằng hãy tiếp tục phiên gần nhất thay vì mở một phiên mới.

Tôi lưu các quy ước cho mô hình này trong tệp bộ nhớ của Claude:

external agent conventions

Nó chứa các quy tắc gọi chính xác và có thể được đọc và tái sử dụng bởi các tác nhân khác để chúng biết cách duy trì tương tác một cách nhất quán.

Điều này tạo ra một vòng lặp rất nhẹ nhàng:

  1. Một tác nhân tạo hoặc xem xét bản nháp.
  2. Tác nhân đó gọi một tác nhân khác để phê bình nó bằng chế độ resume.
  3. Tác nhân điều phối đọc nhận xét và quyết định bước tiếp theo.
  4. Các tác nhân tiếp tục lặp lại cho đến khi bản nháp đủ tốt hoặc cuộc thảo luận không còn mang lại giá trị.

Trong thực tế, điều này cho phép bạn thực hiện những việc như:

  • Nhờ Codex xem xét bản nháp được tạo trong Claude.
  • Nhờ Gemini đưa ra một cách đọc khác cho cùng một bản nháp đó.
  • Sử dụng một tác nhân làm người viết và một tác nhân khác làm người xem xét.
  • Đóng vai trò là người điều phối con người, hoặc ủy quyền việc điều phối cho một trong các tác nhân.
  • Tránh việc sao chép thủ công từng tương tác giữa các tác nhân.

Một lý do để thực hiện việc này trên nhiều nhà cung cấp là để có được một góc nhìn khác nhau, không chỉ là một lần chạy thêm từ cùng một dòng mô hình.

Ở mức độ cao, luồng không tương tác trông như sau:

Claude viết bản nháp -> Codex xem xét nó bằng chế độ resume -> Claude sửa đổi bản nháp -> Claude hoặc Codex tóm tắt các bất đồng -> Lặp lại cho đến khi đầu ra ổn định.

Mô hình này phù hợp khi:

  • Bạn muốn thiết lập càng nhỏ càng tốt.
  • Bạn không muốn các phụ thuộc thêm.
  • Bạn quan tâm đến việc thử nghiệm nhanh hơn là khả năng quan sát.

Hạn chế lớn nhất của nó là tính hiển thị. Bạn có thể khiến các tác nhân nói chuyện với nhau, nhưng không phải lúc nào cũng dễ dàng để kiểm tra lịch sử tương tác, giám sát tiến trình hoặc hiểu điều gì đã xảy ra ở mỗi bước.

Cũng đáng chú ý về vấn đề quyền hạn, đặc biệt nếu một tác nhân đang tự động gọi một tác nhân khác.

Mô hình có khả năng hiển thị cao hơn: tmux

Nếu bạn muốn khả năng hiển thị tốt hơn, tmux là lựa chọn tốt hơn.

Phiên bản này phụ thuộc vào việc cài đặt tmux, nhưng đổi lại bạn có thể thấy mỗi tác nhân đang làm gì trong các ngăn hoặc phiên riêng biệt và bắt lấy đầu ra của chúng dễ dàng hơn.

Một vài lệnh mà tác nhân có thể sử dụng trong quy trình làm việc đó là:

# Tạo một socket tmux chuyên dụng và bắt đầu một phiên bị cô lập
SOCKET="${TMPDIR:-/tmp}/claude-tmux-sockets/claude.sock"
mkdir -p "${TMPDIR:-/tmp}/claude-tmux-sockets"
tmux -S "$SOCKET" new -d -s "descriptive-name"

# Gửi một lời nhắc theo nghĩa đen, sau đó gửi nó bằng Enter
tmux -S "$SOCKET" send-keys -t target -l -- "$cmd"
sleep 1
tmux -S "$SOCKET" send-keys -t target Enter

# Bắt lấy đầu ra ngăn gần đây mà không có các tạo tác ngắt dòng
tmux -S "$SOCKET" capture-pane -p -J -t target -S -200

# Đính kèm vào phiên đang chạy để giám sát trực tiếp các tác nhân
tmux -S "$SOCKET" attach -t session-name

Tôi lưu các quy ước cho mô hình này trong tệp bộ nhớ của Claude:

tmux multi-agent patterns

Nó mô tả các quy ước về socket, giám sát và quản lý ngăn, và các tác nhân khác có thể đọc nó như một tài liệu tham khảo có thể tái sử dụng.

Mô hình này tốt hơn khi:

  • Bạn muốn xem tương tác khi nó diễn ra.
  • Bạn muốn chạy hai hoặc nhiều tác nhân song song.
  • Bạn muốn gỡ lỗi dễ dàng hơn khi luồng làm việc trở nên lộn xộn.

Lưu ý chính

Tôi nghĩ có giá trị thực sự trong việc nhận được nhiều góc nhìn từ các mô hình khác nhau, nhưng tôi vẫn chưa hoàn toàn tin rằng nhiều tương tác giữa các tác nhân luôn mang lại lợi ích.

Các mô hình ngôn ngữ lớn (LLM) rất giỏi trong việc tạo ra văn bản hợp lý và được viết tốt. Khi chúng bắt đầu nói chuyện với nhau, chúng có thể tạo ra rất nhiều văn bản như vậy.

Vì vậy, câu hỏi mở không phải là liệu chúng có thể đạt được sự đồng thuận hay không. Chúng có thể.

Câu hỏi khó hơn là liệu kết quả cuối cùng thực sự tốt hơn, hay nó chỉ là một ảo giác được đánh bóng hơn sau một chuỗi tương tác dài hơn.

Đó là lý do tại sao hiện tại tôi coi đây là một quy trình làm việc hữu ích để kiểm tra, không phải là một giải pháp phổ quát.

Tóm lại

Nếu bạn đã sử dụng các tác nhân lập trình dựa trên gói đăng ký, cách đơn giản nhất tôi tìm thấy để khiến chúng cộng tác mà không trả phí API là:

  • Sử dụng các lệnh không tương tác với chế độ resume khi bạn muốn sự đơn giản.
  • Sử dụng tmux khi bạn muốn khả năng hiển thị và kiểm soát chặt chẽ hơn.

Điều đó đủ để xây dựng các luồng làm việc đa tác nhân nhỏ trên các công cụ như Claude, Codex và Gemini mà không cần nhiều thiết lập.

Bài viết được tổng hợp và biên soạn bằng AI từ các nguồn tin tức công nghệ. Nội dung mang tính tham khảo. Xem bài gốc ↗