🤖 Giao việc cho đội sub-agent: cách Hermes nhân bản công việc với Python RPC 'zero-context-cost'

🤖 Giao việc cho đội sub-agent: cách Hermes nhân bản công việc với Python RPC 'zero-context-cost'

Bạn đã bao giờ mở năm cửa sổ terminal cùng lúc, một để chạy test, một để build, một để tra log, rồi tự tay copy kết quả qua lại giữa chúng chưa? Cảm giác vừa như một nhạc trưởng, vừa như một nhân viên bưng bê. Hermes Agent của Nous Research đặt cược vào một ý tưởng khác: thay vì bạn tự bưng bê, hãy để một con agent chính đứng ra điều phối cả một đội sub-agent, mỗi con có bộ não riêng, terminal riêng, và giao tiếp với nhau qua những script Python gọn gàng. Tính năng này Nous gọi thẳng là "Tasks Multiplied" — công việc được nhân bản.

Hãy mổ xẻ xem "nhân bản công việc" thực sự nghĩa là gì, và tại sao cụm từ khó nhằn "zero-context-cost pipelines" lại là thứ đáng để bạn quan tâm.

🤖 Sub-agent là gì, và vì sao phải "cô lập" chúng?

Hermes là một ứng dụng desktop mã nguồn mở (giấy phép MIT) tự mô tả là "The Agent That Grows With You" — con agent lớn lên cùng bạn. Trong sáu tính năng cốt lõi của nó, tính năng số 4 là Delegate với mô tả nguyên văn:

"Isolated subagents with their own conversations, terminals, and Python RPC scripts for zero-context-cost pipelines."

Từ khóa quan trọng nhất ở đây là isolated — cô lập. Một sub-agent không phải là một dòng suy nghĩ phụ nằm chung trong đầu của agent chính. Nó là một thực thể tách biệt, có cuộc hội thoại riêng (own conversation).

Vì sao điều này quan trọng? Bạn cứ hình dung "context" (ngữ cảnh) của một agent như bộ nhớ làm việc của một con người. Càng nhồi nhiều thứ vào đó — lịch sử chat, log lỗi, nội dung file, kết quả trung gian — thì bộ nhớ càng chật, agent càng dễ "lú", và bạn càng tốn nhiều token (đơn vị tính tiền và tính giới hạn của mô hình). Khi mọi việc dồn vào một con agent duy nhất, context của nó phình to không kiểm soát.

Giao việc cho sub-agent cô lập giải quyết đúng chỗ đau này: mỗi con giữ ngữ cảnh của riêng mình, không làm bẩn bộ nhớ của agent chính.

🧠 Mỗi con một cuộc hội thoại — chia để trị

Hãy tưởng tượng bạn đang làm một task lớn: "phân tích toàn bộ codebase và viết báo cáo". Nếu làm theo kiểu cũ, một agent phải tự đọc hàng trăm file, và mỗi file lại tốn thêm chỗ trong context của nó.

Với mô hình sub-agent, agent chính đóng vai trưởng nhóm. Nó chia nhỏ công việc: "con A đọc thư mục auth, con B đọc payment, con C đọc ui". Mỗi sub-agent nhận một cuộc hội thoại riêng biệt, tự cày phần của mình trong ngữ cảnh sạch sẽ của nó, rồi chỉ trả về cho trưởng nhóm một thứ duy nhất: kết luận đã cô đọng.

Trưởng nhóm không bao giờ phải nuốt toàn bộ nội dung thô. Nó chỉ nhận bản tóm tắt. Đây chính là tinh thần chia để trị (divide and conquer) áp dụng cho AI agent — và nó là lý do tính năng được đặt tên là Tasks Multiplied: một task mẹ đẻ ra nhiều task con chạy độc lập.

💻 Terminal riêng: mỗi agent một bàn làm việc

Điểm mà mô tả của Hermes nhấn mạnh tiếp theo là terminals — số nhiều. Mỗi sub-agent có terminal riêng của nó.

Nghe thì nhỏ nhưng đây là chi tiết cực kỳ thực dụng. Một terminal là một môi trường thực thi lệnh có trạng thái: thư mục hiện tại, biến môi trường, tiến trình đang chạy. Nếu năm agent dùng chung một terminal, chúng sẽ giẫm chân nhau — con này cd sang chỗ khác thì con kia lạc đường; con này kill nhầm tiến trình của con kia.

Khi mỗi agent có một terminal của riêng mình, chúng có thể chạy song song thật sự: một con đang npm run build, một con đang chạy test suite, một con đang grep log — không ai đụng ai. Điều này ăn khớp với triết lý cô lập ở tính năng số 6 của Hermes (Isolated Sandboxing) với các backend như local, Docker, SSH, Singularity và Modal.

⚙️ Python RPC: sợi dây liên lạc giữa các agent

Vậy các agent nói chuyện với nhau bằng cách nào? Hermes dùng Python RPC scripts.

RPC viết tắt của Remote Procedure Call — "gọi thủ tục từ xa". Nôm na: thay vì phải mô tả bằng lời cho một agent khác rằng "hãy làm việc X với dữ liệu Y", bạn gọi nó như gọi một hàm trong code. Bạn truyền tham số vào, nó chạy, nó trả kết quả về — y hệt gọi một function bình thường, chỉ khác là "function" đó thực chất là cả một agent đang chạy ở nơi khác.

Đây là điểm khiến kiến trúc này khác biệt với việc "chat qua chat". Giao tiếp bằng script Python nghĩa là dữ liệu đi qua đường code có cấu trúc, không phải đi qua cửa sổ ngôn ngữ tự nhiên — nơi mọi thứ đều tính bằng token.

Một đoạn minh họa khái niệm (mang tính mô phỏng cho dễ hình dung, không phải API thật của Hermes):

# Agent chính điều phối đội sub-agent qua RPC
from hermes import spawn_subagent  # minh hoạ khái niệm

# Mỗi lời gọi tạo ra một agent cô lập: hội thoại riêng, terminal riêng
report_auth = spawn_subagent(
    task="Đọc module auth, liệt kê lỗ hổng bảo mật",
    workspace="./src/auth",
)
report_pay = spawn_subagent(
    task="Kiểm tra luồng thanh toán, tìm race condition",
    workspace="./src/payment",
)

# Trưởng nhóm CHỈ nhận kết luận, không nuốt toàn bộ file thô
tong_hop = merge([report_auth.summary, report_pay.summary])

Cái hay nằm ở chỗ: nội dung thô mà report_authreport_pay đọc qua không bao giờ chảy ngược vào context của agent chính. Chỉ có .summary — bản kết luận — đi qua.

💰 "Zero-context-cost": vì sao pipeline này tiết kiệm token

Giờ ghép mọi thứ lại để hiểu cụm từ zero-context-cost pipelines.

Một pipeline là chuỗi các bước nối đuôi nhau: bước A ra kết quả, đưa vào bước B, rồi bước C. Trong một agent đơn lẻ, mỗi bước để lại "rác" trong context — và bạn phải trả token cho toàn bộ đống rác đó ở mọi lượt tiếp theo, vì mô hình phải đọc lại cả lịch sử mỗi lần suy nghĩ.

Với sub-agent chạy qua Python RPC, mỗi bước nặng nề diễn ra bên trong một agent cô lập. Khi nó xong việc và trả kết quả về, toàn bộ ngữ cảnh cồng kềnh của nó biến mất cùng con agent đó. Agent chính gần như không phải gánh thêm chi phí context cho công đoạn nặng — đó là ý nghĩa của "zero-context-cost": chi phí ngữ cảnh (gần như) bằng không đối với người điều phối.

Với dân vibe coder, lợi ích rất cụ thể: bạn xử lý được những task lớn hơn nhiều trước khi chạm trần token, agent chính tỉnh táo lâu hơn vì không bị nhồi, và bạn có thể để nhiều luồng công việc chạy song song thay vì xếp hàng chờ nhau.

✨ Vậy nên nhớ gì?

Delegate của Hermes không chỉ là "mở nhiều tab hơn". Nó là một cách tư duy: cô lập ngữ cảnh, giao tiếp bằng code, và chỉ mang kết luận về nhà. Boss robot chia việc, mini-robot cày trong phòng riêng, và ông chủ giữ được cái đầu lạnh.

Lần tới khi bạn thấy mình sắp nhồi mọi thứ vào một con agent duy nhất, hãy tự hỏi: việc này có thể giao cho một sub-agent cô lập rồi chỉ lấy về bản tóm tắt không? Nếu có — bạn vừa tiết kiệm được cả một đống token.

#Hermes #SubAgents #RPC #AIAgent #NousResearch #VibeAICoder

Bài viết liên quan

🤖 Giao việc cho đội sub-agent: cách Hermes nhân bản công việc với Python RPC 'zero-context-cost' | Vibe AI Coder