Skip to content

Chương 7 — Multi-Agent Systems

👥

Thực chiến — 30 giây

"Cho 5 con agent bàn nhau cho xịn!" → hệ mong manh, đốt ~15× token, mà chưa chắc tốt hơn 1 agent. Chương này dạy khi nào mới nên nhiều agent. Ăn tiền ở đâu: biết lúc nào KHÔNG dùng multi-agent = tiết kiệm cả đống tiền cho khách.

Đây là chủ đề bị hiểu sai nhiều nhất. Tin tốt: ngành đã có câu trả lời rõ sau cuộc tranh luận lớn Cognition vs Anthropic (2025).

Sau chương này bạn sẽ làm được

  • Hiểu kết luận của cuộc tranh luận "có nên multi-agent".
  • Phân biệt + code Manager (agents-as-tools) vs Decentralized (handoffs).
  • Code một orchestrator-workers thật.
  • Có khung quyết định khi nào dùng, khi nào đừng (token ~15x).

01 · Cuộc tranh luận lớn (6/2025)

🥊 Hai phe

Cognition — "Đừng build Multi-Agents": multi-agent hiện tại tạo hệ mong manh — agent khó giữ mạch hội thoại dài, dễ "lạc nhau". Đề xuất: một agent đơn luồng + một LLM nén context. Châm ngôn: "context engineering là việc số 1."

Anthropic — "Cách chúng tôi build hệ multi-agent research": một lead agent sinh 3–5 sub-agent song song, mỗi cái context riêng, cộng bước trích dẫn cuối. Kết quả: +90.2% vs single Opus — nhưng tốn ~15x token.


02 · Kết luận đã hội tụ

Consensus 2026 — học thuộc

Một agent chính sở hữu toàn bộ ngữ cảnh, sinh ra các sub-agent tạm thời, chỉ-đọc cho tác vụ con tách biệt; sub-agent trả về một chuỗi tóm tắt — KHÔNG chat ngang hàng, KHÔNG chia sẻ state thay đổi.

  • Single-agent cho việc tuần tự (vd coding): một agent giữ mạch.
  • Multi-agent chỉ cho việc song song, đọc nhiều (vd research) — nơi chấp nhận trả token đổi tốc độ/độ bao phủ.
🔧 多工具调用原理:Agent 如何"串联"工具完成任务
理解 Agent 的链式思考(Chain-of-Thought)和工具编排机制
👤 用户意图
规划一个3天2晚的东京旅行,预算1万元
🔄 工具调用执行流程
🧠思考规划⏳ 等待
🔧工具执行⏳ 等待
📝结果整合⏳ 等待
💬最终输出⏳ 等待
📚 核心原理
🧩
任务分解
Agent 将复杂任务拆解为多个子任务,每个子任务对应一个工具调用
🔗
链式调用
工具按依赖关系串联执行,前一个工具的输出成为后一个工具的输入
🔄
动态调整
根据中间结果,Agent 可以动态决定下一步调用哪个工具
🎯
结果整合
将所有工具输出整合为连贯、有用的最终回复
⚖️ 为什么需要多工具调用?
场景
普通 LLM
Agent + 多工具
查天气+穿衣建议
只能推测,无法获取实时数据
调用天气API获取实时数据,再给出穿衣建议
股票分析
无法获取股价,只能泛泛而谈
股价+新闻+技术分析,三个工具串联完成深度分析
旅行规划
只能给建议,无法查询实时价格
机票+酒店+景点+路线+预算,5个工具完成完整规划
数据分析
无法访问数据,只能讲分析方法
查询+分组+计算+可视化,6个工具完成完整分析

03 · Hai kiểu phối hợp (kèm code)

A. Manager — "agents-as-tools"

Một manager điều phối agent chuyên biệt qua lời gọi tool, rồi tổng hợp.

python
def manager(yeu_cau):
    # manager tự quyết gọi "agent con" nào (chúng là tool)
    return llm(yeu_cau, tools=[agent_research, agent_viet, agent_thiet_ke])
    # mỗi agent_* bên trong là một run_agent riêng → trả kết quả cho manager
        ┌─────────────┐
User ──►│   Manager   │  (gọi như tool) ──► [A] [B] [C] ──► tổng hợp ──► User
        └─────────────┘

Dùng khi: muốn một agent kiểm soát luồng + giữ mạch với user.

B. Decentralized — "handoffs"

Agent ngang hàng; một agent trao quyền (handoff) hẳn cho agent khác (chuyển một chiều).

python
def triage(msg):
    loai = llm(f"Phân loại: HOAN_TIEN / KY_THUAT\n{msg}")
    if loai == "HOAN_TIEN": return refund_agent(msg)   # handoff: giao hẳn
    return tech_agent(msg)

Dùng khi: triage, không cần bộ não trung tâm tổng hợp.

Cả hai là đồ thị

Agent = node. Manager → cạnh là tool call; Decentralized → cạnh là handoff.


04 · Orchestrator-Workers & chi phí thật (code)

Pattern phổ biến nhất production: orchestrator chia việc động, workers chạy song song, orchestrator tổng hợp.

python
import asyncio

async def orchestrator(de_bai):
    subtasks = llm(f"Chia '{de_bai}' thành các việc con độc lập").split("\n")  # ĐỘNG
    # workers chạy SONG SONG, mỗi worker context riêng (chỉ-đọc)
    ket_qua = await asyncio.gather(*[worker(t) for t in subtasks])
    return llm("Tổng hợp báo cáo từ:\n" + "\n".join(ket_qua))     # SYNTHESIZE

async def worker(task):
    return await llm_async(f"Làm việc này, trả tóm tắt 5 gạch đầu dòng: {task}")

Chi phí: ~15x token

Hệ research Anthropic dùng ~15x token so một lượt chat (token budget giải thích ~80% chênh hiệu năng). → Multi-agent chỉ đáng khi giá trị bài toán đủ lớn. Mẹo: orchestrator dùng model mạnh (Sonnet/Opus), workers dùng model rẻ (Haiku) → cắt 40%+ chi phí.

任务回放:Agent 怎么一步步做完?
点步骤,看“工具调用”和“中间结果”。
当前步骤
把用户需求拆成“可交付”的输出结构。
工具调用(示意)
LLM: parse_goal({ task, constraints, output_format })
结果(示意)
目标:找 3 篇文章;输出:标题 + 一句话总结(Markdown 列表)

05 · Sub-agent & cô lập ngữ cảnh

Lợi ích lớn nhất của sub-agent không phải "nhiều cho oai" mà là cô lập ngữ cảnh: mỗi sub-agent khảo sát trong context sạch riêng, chỉ trả tóm tắt cô đọng → giữ context chính gọn (Chương 5).


06 · Khung quyết định

Việc SONG SONG hoá được không (đọc nhiều, ít phụ thuộc)?
 ┌─┴──┐
KHÔNG  CÓ
 │      │
 ▼      ▼
SINGLE  Giá trị bài toán có đáng ~15x token?
agent    ┌┴───┐
+context CÓ    KHÔNG
eng.     │      │
         ▼      ▼
      MULTI   SINGLE

🚨 3 sai lầm

  1. Vội multi-agent khi single chưa tối ưu → phức tạp vô ích.
  2. Cho sub-agent chat ngang hàng + sửa state chung → mong manh, khó debug.
  3. Quên token cost → hoá đơn gấp chục lần.

07 · Lab: research đối thủ shop VN (orchestrator + workers)

Bài thực hành (60–90 phút) — code

python
async def research_doi_thu(nganh="trà sữa HN"):
    # orchestrator chia việc động
    doi_thu = llm(f"Liệt kê 3 đối thủ lớn ngành {nganh}, mỗi dòng 1 tên").split("\n")
    # 3 worker SONG SONG, mỗi cái research 1 đối thủ trong context riêng
    bao_cao = await asyncio.gather(*[
        worker(f"Research {d}: giá, menu nổi bật, điểm mạnh/yếu. Tóm tắt 5 ý.")
        for d in doi_thu])
    # orchestrator tổng hợp SWOT
    return llm("Viết bảng SWOT tổng từ:\n" + "\n".join(bao_cao))

print(asyncio.run(research_doi_thu()))

Đo: tổng token + so với làm tuần tự bằng 1 agent. Tiêu chí đạt: thấy rõ đánh đổi token↔tốc độ; mỗi worker context tách biệt, trả tóm tắt (chỉ-đọc).


08 · Bài tập

  1. Đổi lab trên cho workers dùng Haiku, orchestrator dùng Sonnet — đo chênh chi phí.
  2. Một dev định cho 3 agent "chat qua lại bàn bạc" để chốt giá. Theo consensus mục 02, vì sao đây là ý tồi? Thiết kế lại.
👉 Gợi ý câu 2

Sub-agent chat ngang hàng + sửa state chung = mong manh (đúng cảnh báo Cognition). Thiết kế lại: 1 agent chính giữ context, sinh sub-agent chỉ-đọc trả tóm tắt, agent chính tự chốt.


09 · Kiểm tra nhanh

  1. Kết luận hội tụ của cuộc tranh luận multi-agent?
  2. Manager vs Decentralized khác nhau ở đâu (cạnh đồ thị là gì)?
  3. Multi-agent tốn ~bao nhiêu token so single?
  4. Lợi ích chính của sub-agent (ngoài "nhiều")?
  5. Khi nào single, khi nào multi?
👉 Gợi ý đáp án
  1. Một agent chính giữ context + sinh sub-agent tạm thời, chỉ-đọc, trả tóm tắt; không chat ngang hàng.
  2. Manager: cạnh = tool call, có tổng hợp trung tâm; Decentralized: cạnh = handoff một chiều, không tổng hợp.
  3. ~15x.
  4. Cô lập ngữ cảnh — giữ context chính gọn.
  5. Single cho tuần tự; multi cho song song/đọc nhiều đáng trả token.

10 · Tóm tắt & đọc tiếp

Mang theo

  • Mặc định single-agent. Multi-agent chỉ cho việc song song đáng ~15x token.
  • Mô hình chuẩn: agent chính + sub-agent tạm thời, chỉ-đọc, trả tóm tắt.
  • Manager (agents-as-tools) vs Decentralized (handoffs) — đã có code.
  • Lợi ích cốt lõi của sub-agent = cô lập ngữ cảnh.

Agent cần kết nối thế giới thật theo chuẩn mở. Chương sau: MCP, Agent Skills, code execution.

Chương 8 — MCP, Skills & Code Execution


I Built the Ultimate Team of AI Agents in n8n With No Code (Free Template)

I Built the Ultimate Team of AI Agents in n8n With No Code (Free Template)

📺 Nate Herk | AI Automation YouTube ↗

Orchestrator điều phối 4 sub-agent — bản build orchestrator-workers cực phổ biến. (2025, 1.1M view)

LangGraph Tutorial - How to Build Advanced AI Agent Systems

LangGraph Tutorial - How to Build Advanced AI Agent Systems

📺 Tech With Tim YouTube ↗

Code-first LangGraph: hệ stateful/multi-agent (supervisor routing). (2025, 200K view)