Tóm tắt 30 giây
- Đừng mặc định càng nhiều subagent càng tốt: Anthropic cho biết trong một số triển khai doanh nghiệp, một agent chính dùng skill và tool theo nhu cầu cho chất lượng cao hơn, đồng thời giảm chi phí và độ trễ.
- Subagent vẫn có vai trò: nên giữ khi cần ngữ cảnh riêng, xử lý song song, xác minh độc lập hoặc khi agent chính thực sự gặp khó trong việc chọn tool.
- Ranh giới nên chia theo ngữ cảnh, không theo sơ đồ tổ chức: những bước cần chung dữ liệu và thường chạy nối tiếp là ứng viên để gộp.
- Quyết định bằng eval: tạo tập bài kiểm tra end-to-end, thay đổi từng subagent một và chỉ giữ thay đổi nếu số liệu cho thấy hệ thống không tệ đi.
1. Khi kiến trúc agent trở thành bản sao của sơ đồ tổ chức
Một mô hình phổ biến trong doanh nghiệp là mỗi nhóm xây một agent chuyên môn, sau đó một nhóm nền tảng đặt thêm router hoặc orchestrator ở phía trên. Cấu trúc này trông hợp lý vì nó phản ánh cách doanh nghiệp phân chia trách nhiệm. Tuy nhiên, bài phân tích của nhóm Applied AI tại Anthropic cho rằng kiến trúc agent không nhất thiết nên sao chép sơ đồ phòng ban.
Họ ghi nhận năm nhóm vấn đề thường xuất hiện: mất chi tiết khi chuyển ngữ cảnh qua lại; subagent tăng nhanh và chồng lấn; system prompt trở thành “Frankenprompt” do nhiều nhóm cùng chèn quy tắc; eval bị tối ưu cục bộ; và độ trễ tăng theo mỗi vòng gọi model. Trong một phép so sánh của khách hàng được Anthropic nêu, vòng lặp một agent chạy nhanh xấp xỉ gấp đôi so với multi-agent harness. Đây là quan sát từ một triển khai cụ thể, không phải kết quả mặc định cho mọi hệ thống.

2. Progressive disclosure: giữ một ngữ cảnh mà không làm prompt phình to
Lập luận chính không phải là “dồn mọi thứ vào một prompt”. Cách tiếp cận được đề xuất là progressive disclosure — chỉ nạp đầy đủ nội dung của skill, tool hoặc tài liệu khi agent thực sự cần. Ban đầu, model chỉ thấy mô tả ngắn gọn để biết khi nào nên gọi.
Cách này giải quyết hai vấn đề cùng lúc. Agent chính giữ được lịch sử công việc và kết quả thô từ các bước trước, nên có thể kết nối thông tin mà không phải dựa vào bản tóm tắt bị hao hụt. Đồng thời, nó không cần mang toàn bộ hướng dẫn và schema của mọi chuyên môn trong system prompt.
Hàm ý kiến trúc: system prompt chứa những quy tắc gần như luôn cần; skill chứa quy trình và phán đoán theo từng lĩnh vực; tool thực hiện hành động hoặc đọc dữ liệu sống; kho tri thức chứa tài liệu tham khảo chỉ dùng thỉnh thoảng.
3. Nên chia theo ngữ cảnh, không chia theo tên bài toán
Một chuỗi “viết tính năng → viết kiểm thử → review code” có thể được giao cho ba subagent. Nhưng agent viết kiểm thử cần hiểu các quyết định trong phần triển khai; agent review cũng cần biết yêu cầu và trade-off ban đầu. Nếu mỗi lần bàn giao chỉ còn một bản tóm tắt, chất lượng có thể giảm dần theo kiểu “tam sao thất bản”.

Ngược lại, một verifier chỉ nhận artifact, chạy test và trả về kết quả là một ranh giới tốt. Nó không cần toàn bộ cuộc hội thoại hoặc lịch sử suy luận của agent chính. Nguyên tắc tổng quát là: gộp những bước chia sẻ nhiều ngữ cảnh; tách những bước có đầu vào, đầu ra và tiêu chí xác minh rõ ràng.
4. Ba trường hợp subagent vẫn “đáng tiền”
Anthropic nêu ba tín hiệu chính cho thấy không nên gộp vội:
- Ngữ cảnh bị phình to và làm giảm hiệu năng có thể đo được: ví dụ deep research phải đọc nhiều tài liệu, chạy code và thử nhiều nhánh; agent chính chỉ cần kết luận gọn.
- Nhiều nhánh độc lập cần chạy song song: mỗi subagent có thể dùng một context window sạch, sau đó trả về kết quả có cấu trúc.
- Agent chính liên tục chọn sai tool hoặc prompt có các chỉ dẫn xung đột: một subagent với phạm vi và quyền hạn riêng có thể tăng độ tin cậy.
Ngay cả khi giữ subagent, full handoff — để subagent tiếp quản cuộc hội thoại — chỉ phù hợp khi nó cần trao đổi trực tiếp với người dùng. Trong các trường hợp khác, agent chính có thể gọi subagent như một tool, yêu cầu kết quả theo schema chung rồi tự kiểm chứng trước khi tổng hợp.
5. Lộ trình chuyển đổi: đo trước, gộp từng phần, giữ lại thứ thực sự có giá trị
Một hệ thống multi-agent đang chạy production không nên được viết lại toàn bộ trong một lần. Quy trình an toàn hơn gồm bốn bước:
- Tạo baseline end-to-end: bắt đầu với khoảng 10 “golden examples”, có rubric cho kết quả cuối cùng, routing hiện tại, độ trễ, số lần gọi model, token và chi phí.
- Gộp các subagent ghép cặp: ưu tiên những agent thường chạy nối tiếp, đọc cùng dữ liệu hoặc cần kết quả của nhau.
- Gọi subagent còn lại như tool: giữ agent chính làm chủ hội thoại, thu hẹp input và yêu cầu output có cấu trúc.
- Chuyển từng subagent thành skill + tool: prompt chuyên môn trở thành skill, API call trở thành tool; chạy lại eval nhiều lần sau mỗi thay đổi và rollback nếu một chuỗi tác vụ bị hỏng.

Anthropic đã phát hành single-agent-loop-kit trên GitHub để hỗ trợ audit, tạo baseline, merge, fold và so sánh trước/sau. Repo nêu rõ đây là reference implementation, không được bảo trì và cần được fork, kiểm thử, điều chỉnh trước khi dùng trong hệ thống thật.
6. Một vòng lặp agent chính nên được thiết kế ra sao?
- Một model, một context window và một tool loop mở: model tự quyết định bước tiếp theo từ kết quả thật thay vì bị khoá trong pipeline cố định.
- Gọi tool theo batch khi có thể: harness chạy các lời gọi độc lập song song và trả kết quả thô về cùng model.
- Plan nằm trong ngữ cảnh: model lập kế hoạch, thực thi và sửa kế hoạch khi có dữ liệu mới; không cần một planner agent riêng cho mọi use case.
- Rào chắn cứng nằm trong harness và tool: giới hạn lượt, ngân sách, validation, phê duyệt thao tác ghi và quyền theo người dùng không được phó mặc cho prompt.
- Một nhóm nhỏ sở hữu chất lượng end-to-end: các nhóm chuyên môn vẫn sở hữu skill và tool, nhưng system prompt và shared eval cần một đầu mối thống nhất.
7. Skill, tool hay kho tri thức?
| Thành phần | Dùng khi | Ví dụ |
|---|---|---|
| Skill | Agent cần biết cách một nhóm thực hiện công việc: trình tự, quy tắc và phán đoán. | Quy trình review hợp đồng, checklist xử lý sự cố. |
| Tool | Cần đọc dữ liệu sống, thực hiện hành động hoặc trả kết quả theo schema cố định. | Tra đơn hàng, tạo ticket, tính báo giá. |
| Kho tri thức | Chứa facts và tài liệu tham khảo chỉ cần trong một số tình huống. | Chính sách, định nghĩa KPI, đặc tả sản phẩm. |
| Subagent | Cần context window riêng, xử lý độc lập/song song hoặc xác minh black-box. | Deep research, security verifier, nhánh phân tích dữ liệu lớn. |
Một lưu ý thực dụng từ Anthropic: nên nhóm tool theo ý định của người dùng thay vì tạo một tool cho mỗi endpoint API. Theo quan sát của họ, khi system prompt phải chứa trên khoảng 30–50 định nghĩa tool, khả năng chọn đúng tool có xu hướng suy giảm. Tool search và deferred loading giúp chỉ nạp định nghĩa cần thiết.
8. Checklist quyết định cho đội xây agent
- Subagent này có thường chạy ngay trước hoặc sau một subagent khác không?
- Nó có cần phần lớn ngữ cảnh mà agent chính đã có không?
- Đầu ra có thể trả về bằng một schema nhỏ, độc lập và kiểm chứng được không?
- Việc tách riêng có mang lại song song hoá thật sự hay chỉ thêm handoff?
- Có bằng chứng đo được rằng context của agent chính đang quá tải không?
- Eval đã bao phủ tất cả chuỗi subagent production và những quy tắc tuyệt đối không được vi phạm chưa?
Nếu câu trả lời cho hai câu đầu là “có”, subagent đó là ứng viên mạnh để gộp. Nếu đầu ra nhỏ, nhiệm vụ độc lập và cần context riêng, hãy giữ subagent nhưng gọi nó qua tool. Nếu chưa có eval, chưa nên tranh luận kiến trúc bằng cảm tính.
9. Bài học rút ra
Kiến trúc agent tốt không được đo bằng số lượng agent. Mục tiêu là giữ đủ ngữ cảnh để model hoàn thành công việc, trong khi các ranh giới tool, quyền hạn, ngân sách và phê duyệt vẫn rõ ràng. Cách làm thận trọng nhất là đo baseline, thay đổi một thành phần, chạy lại eval và chỉ giữ những gì thực sự cải thiện hệ thống.
Giải thích thuật ngữ
Subagent: agent con có prompt, context window và tool riêng, được agent chính hoặc orchestrator giao một phần việc.
Agent loop: vòng lặp trong đó model quan sát ngữ cảnh, chọn hành động/tool, nhận kết quả và tiếp tục cho đến khi trả lời hoặc chạm giới hạn.
Progressive disclosure: chỉ nạp thêm hướng dẫn hoặc định nghĩa tool khi tác vụ cần đến, thay vì đặt tất cả trong prompt ngay từ đầu.