# Sub-agent

> VI: https://5ac.vn/wiki/sub-agent/ · EN: https://5ac.vn/en/wiki/sub-agent/ · lang: vi · spec_as_of 2026-10-18 (spec no formal spec) · cluster C3

Agent đặc biệt hoá được orchestrator giao một phần việc có phạm vi rõ: chạy trong cửa sổ ngữ cảnh riêng với prompt, tool và quyền riêng, trả về kết quả nén.

---
## Định nghĩa

Sub-agent là agent đặc biệt hoá được agent chính (orchestrator) giao một phần việc có phạm vi rõ: nó chạy trong cửa sổ ngữ cảnh riêng với prompt, tool và quyền riêng, làm việc độc lập rồi trả về kết quả nén, giúp phiên chính giữ ngữ cảnh sạch.

## Cơ chế

Kiến trúc tham chiếu là orchestrator-worker của hệ Research Anthropic (post 13/06/2025): lead agent phân tích câu hỏi, lập chiến lược và spawn các subagent chạy song song; mỗi subagent tự tìm trên nhánh đề bài của mình, trả kết quả đã chọn lọc để lead tổng hợp; thiếu căn cứ thì vòng tiếp; trước khi chốt, một CitationAgent gắn citation cho từng claim. Prompt, tool và hướng khai thác tách bạch giảm path dependency; kiến trúc thắng ở chữ nén — "the essence of search is compression": mỗi subagent nén kho ngữ liệu thành những token quan trọng nhất trong context window riêng.

Số từ chính post: lead Claude Opus 4 cùng subagent Claude Sonnet 4 vượt single-agent Opus 4 tới 90,2% trên internal research eval; ba biến giải thích 95% phương sai BrowseComp, riêng token usage chiếm 80%. Giá: agent tiêu token gấp ~4 lần chat, multi-agent gấp ~15 lần — đáng dùng khi task đủ giá trị và song song hoá được; task buộc chung một context hoặc phụ thuộc chéo dày đặc (phần lớn việc coding) bị Anthropic gọi là anti-pattern.

Claude Code định nghĩa subagent sát cơ chế: markdown file với YAML frontmatter (`name`, `description`, `tools`, `model`), context window riêng, system prompt riêng, tool giới hạn riêng, permission độc lập; Claude delegate khi task khớp `description`. Built-in: Explore (read-only, khảo codebase), Plan (research cho plan mode), General-purpose (đa bước, vừa khảo vừa sửa). Scope theo vị trí file, ưu tiên giảm dần: managed settings → CLI flag → `.claude/agents/` → `~/.claude/agents/` → plugin.

| Thành phần | Anthropic Research | Claude Code |
| --- | --- | --- |
| Ai tạo | lead chia query thành subtask | delegate khi task khớp `description` |
| Effort control | quy tắc scale nhúng prompt: fact đơn 1 agent 3–10 call; so sánh 2–4 subagent ×10–15; phức tạp 10+ | tool + model theo từng subagent; cảnh báo khi tổng description vượt 15.000 token |

Kiểu hỏng thường gặp ở thế hệ agent đời đầu: spawn tuỳ tiện (50 subagent cho query đơn giản) và trùng lắp việc vì description mơ hồ — khắc phục bằng delegate tường minh: objective, output format, nguồn, tool, ranh giới việc. Pattern đáng copy: cho subagent ghi kết quả ra filesystem rồi trả reference nhẹ, tránh hiệu ứng trò chơi điện thoại.

Luồng: Người dùng → Lead agent lập chiến lược → Spawn sub-agents song song → Tổng hợp và vòng lặp → CitationAgent gắn nguồn → Trả kết quả

## Neo chuẩn (spec anchor)

Sub-agent chưa có spec trung lập nào định nghĩa; chuẩn thực tế là documentation của hai vendor đang vận hành nó — bảng neo ghim ngày truy xuất. Claude Code đánh dấu vài hành vi theo phiên bản sản phẩm (mốc v2.1.198: model của Explore, bỏ wizard `/agents`); trang canonical của post Anthropic là `/engineering/multi-agent-research-system`.

Nguồn đã truy xuất để dựng entry này:

- <https://www.anthropic.com/engineering/multi-agent-research-system> — "How we built our multi-agent research system", 13/06/2025 — truy cập 18/10/2026
- <https://docs.claude.com/en/docs/claude-code/sub-agents> — "Create custom subagents" — truy cập 18/10/2026
- <https://arxiv.org/abs/2402.01680> — abstract multi-agent survey (v2) — truy cập 18/10/2026
- <https://export.arxiv.org/api/query?id_list=2402.01680> — arXiv API, xác minh ID + tác giả + abstract — truy cập 18/10/2026

## Neo học thuật

ID ghim trong frontmatter, xác minh qua arXiv API ngày 18/10/2026. *Large Language Model based Multi-Agents: A Survey of Progress and Challenges* (arXiv:2402.01680 — Taicheng Guo, Xiuying Chen, Yaqi Wang, Ruidi Chang và cộng sự; nộp 21/01/2024, v2 cập nhật 19/04/2024) khung hoá câu hỏi nền cho thiết kế sub-agent: agent được profile thế nào, giao tiếp ra sao, cơ chế nào làm năng lực hệ multi-agent tăng trưởng. Sub-agent là trường hợp đặc biệt: phân cấp delegate từ một orchestrator, không phải ngang hàng.

## Câu hỏi thường gặp

**Sub-agent khác một lần tool call ở đâu?** Tool call là một bước: tham số đi, kết quả về. Sub-agent là cả một vòng agent: tự suy luận, tự gọi nhiều tool, tự quyết khi nào xong, chạy trong context riêng, chỉ trả kết quả nén cho orchestrator.

**Sub-agent khác "multi-agent system" ở đâu?** Multi-agent system là tên miền rộng cho mọi hệ nhiều agent, kể cả ngang hàng cùng bàn luận. Sub-agent chỉ một quan hệ cấu trúc: agent chính sinh và giao việc có phạm vi rõ cho agent con — pattern orchestrator-worker.

**Vì sao mỗi subagent nên có context riêng?** Hai lý do Anthropic nói thẳng: compression (cả hệ tiêu nhiều token suy luận song song hơn một cửa sổ đơn chứa nổi) và separation of concerns, giữ các nhánh tìm độc lập.

**Khi nào không nên dùng sub-agent?** Khi task không song song hoá được, khi mọi agent cần chung một ngữ cảnh, và khi giá trị đầu ra không bù nổi hoá đơn token — multi-agent tiêu gấp ~15 lần chat theo dữ liệu Anthropic. Coding nhiều phụ thuộc chéo là anti-pattern kinh điển.

**Khai báo sub-agent trong Claude Code thế nào?** File markdown với YAML frontmatter (`name`, `description`, `tools`, `model`) đặt vào `.claude/agents/` (project) hoặc `~/.claude/agents/` (user); trường `description` là căn cứ Claude quyết định delegate.

## Liên quan

- [Hệ thống điều hành multi-agent là gì](/blog/he-thong-dieu-hanh-multi-agent-la-gi/)
- [YC mở mã nguồn QM — multi-agent harness](/blog/yc-qm-multi-agent-harness-ma-nguon-mo/)
- [Agent memory là gì](/wiki/agent-memory/)
- [Agentic RAG là gì](/wiki/agentic-rag/)
