S-04 · TALK SHOW LLM TO AGENTIC

Kiến trúc
Agentic

Khi 1 agent không đủ — Orchestrator, Workers, A2A, Shared State.

Buổi 4 — Chúng ta sẽ đi qua gì?
🧐

01 · Khi nào cần multi-agent?

Single agent giới hạn ở đâu

🧮

02 · 5 pattern kinh điển

Prompt Chaining · Routing · Parallel · Orchestrator-Workers · Evaluator-Optimizer

🌐

03 · Topology & state

Hierarchical · Network · Sequential — shared vs isolated state

💬

04 · A2A communication

Handoff format. Khi nào / vì sao cần

🏆

05 · Frameworks & case study thực

CrewAI · LangGraph · Google ADK · AutoGen + bài học từ Anthropic

01

Khi nào cần
multi-agent?

Giới hạn của 1 agent đơn lẻ

1 agent đa năng — vấn đề khi scale

Context bloat — chứa system prompt + tool defs cho mọi vai trò → ngạt.

Skill drift — model nhảy giữa "code reviewer", "PM", "researcher" → không sâu việc nào.

Cost không ưu — chạy model lớn cho cả task scan đơn giản.

Khó debug — chuỗi quyết định dài, hard to trace nguyên nhân.

Không song song — tuần tự ngay cả khi 3 task độc lập.

Multi-agent giải gì

Mỗi agent chuyên 1 vai → system prompt ngắn, tool đúng cho vai.

Context riêng cho từng worker → không nhiễm chéo.

Mix model theo vai → tiết kiệm cost 3-10x.

Trace theo agent → dễ tìm "agent nào hỏng".

Workers chạy song song → giảm latency.

⚠️ Trade-off: multi-agent đắt 15× token hơn chat thường (case study Anthropic). Cần task đủ giá trị để bù chi phí.

Multi-agent ≠ "1 agent có nhiều tool"

❌ Pseudo multi-agent

1 agent với 50 tools, gọi tools là "agents". Không có context riêng, không có handoff format → vẫn là 1 agent bự.

  • Context dùng chung — vẫn bloat.
  • Không song song được.
  • Không thay model riêng cho từng "agent".

✅ True multi-agent

Mỗi agent có context riêng, system prompt riêng, model riêng, và giao tiếp qua structured handoff.

  • Mỗi agent là process độc lập về mặt logic.
  • Giao tiếp bằng structured data, không phải share toàn bộ context.
  • Có thể chạy song song, retry riêng.

Tiêu chí phân biệt: "Agent A có nhìn thấy toàn bộ context của Agent B không?" — Nếu có → vẫn là 1 agent. Nếu không → multi-agent thật.

02

5 pattern kinh điển
— Anthropic Building Effective Agents —

Pattern 1 · Prompt Chaining
Prompt chaining pattern

© Anthropic — Building Effective Agents (2024)

Khi nào dùng

Task có thể chia thành chuỗi bước rõ ràng mà output bước trước là input bước sau. Có thể check trung gian (gate).

Ví dụ điển hình

  • Generate outline → review check → write content.
  • Translate → check kỹ thuật → polish.
  • Summarize report → extract data → draft email.

Chi tiết: S-05 — Prompt Chaining.

Pattern 2 · Routing
Routing pattern

© Anthropic — Building Effective Agents (2024)

Khi nào dùng

Input có nhiều loại rõ rệt, mỗi loại cần xử lý khác. Classifier "định tuyến" tới agent / prompt chuyên dụng.

Ví dụ điển hình

  • Customer ticket → Refund / Tech / Sales agent.
  • Câu dễ → Haiku, câu khó → Opus.
  • Search query → web / docs / code search.

Chi tiết: S-06 — Routing & Parallelization.

Pattern 3 · Parallelization
Parallelization pattern

© Anthropic — Building Effective Agents (2024)

2 biến thể

Sectioning

Chia task thành phần độc lập (vd: prompt + safety check) chạy đồng thời.

Voting

Cùng task chạy nhiều lần → lấy majority vote hoặc best score.

Khi nào dùng

  • Task độc lập, không phụ thuộc thứ tự.
  • Cần reliability cao → voting nhiều mẫu.
Pattern 4 · Orchestrator-Workers ★ key pattern
Orchestrator-Workers pattern

© Anthropic — Building Effective Agents (2024)

Cách hoạt động

Orchestrator phân tích task → quyết định cần workers nào → spawn động các workers song song → tổng hợp kết quả.

Khác với "Workflow Sectioning"?

  • Sectioning: chia cố định bởi developer.
  • Orchestrator: chia động theo task — LLM quyết.

Đây là pattern phổ biến nhất cho Agentic AI trong production.

Pattern 5 · Evaluator-Optimizer
Evaluator-Optimizer pattern

© Anthropic — Building Effective Agents (2024)

Cách hoạt động

1 agent generate → 1 agent khác evaluate + đưa feedback → generator refine. Lặp tới khi pass tiêu chí.

Khi nào dùng

  • Output có tiêu chí rõ ràng để đánh giá.
  • LLM eval đáng tin cho domain đó.
  • Iteration có giá trị (vd: bản dịch, code, văn bản).

Cẩn thận: max iterations để tránh loop. Eval phải khắc khe hơn generate.

03

Topology & State
Sắp xếp agent thế nào?

3 topology multi-agent

🍉 Hierarchical

[Orchestrator] / | \ [W1] [W2] [W3]

1 lead phân chia task xuống workers. Workers không nói chuyện trực tiếp với nhau.

Vd: Anthropic research system (Opus → Sonnet workers).

⚙ Sequential / Pipeline

[A] → [B] → [C] → [D] transform → transform

Output A là input B, B là input C. Đơn giản, dễ debug. Không song song.

Vd: outline → draft → edit → publish.

🔗 Network / Mesh

[A] ↔ [B] ↕ ↕ [C] ↔ [D]

Mọi agent giao tiếp với nhau theo cần. Linh hoạt nhất nhưng khó kiểm soát.

Vd: AutoGen group chat, debate framework.

Quy tắc thực chiến: bắt đầu Hierarchical. Nâng lên Network khi thực sự cần.

State giữa các agent — chia sẻ thế nào?

3 chiến lược

1 · Message-passing thuần

Mỗi agent chỉ thấy handoff từ agent trước. Đơn giản, isolated.

Hợp với: pipeline / hierarchical.

2 · Shared scratchpad

Có file / object chung mà mọi agent đọc-ghi (vd: LangGraph state).

Hợp với: workflow phức tạp cần đồng bộ.

3 · External store

DB / Redis / Vector store làm "single source of truth".

Hợp với: agent dài hạn, xuyên phiên.

Trade-off bảng nhanh

CáchĐơn giảnKhả năng đồng bộCost
Message-pass✅✅✅✅✅✅
Scratchpad✅✅✅✅✅✅
External✅✅✅

Quy tắc

  • Bắt đầu message-pass; thêm shared state khi gặp đau.
  • schema rõ cho mọi data chuyển giao.
  • Tóm tắt handoff thay vì gửi raw — tiết kiệm token.
04

A2A Communication
Định dạng handoff

1 handoff = 4 trường tối thiểu

Schema handoff

handoff.schema.json
{ "goal": "Mục tiêu giao cho worker", "context": "Tóm tắt thông tin cần biết", "constraints": ["không gọi DB ghi", "max 3 web search"], "output_schema": { "summary": "string", "sources": "string[]", "next_action": "enum[continue, escalate, done]" } }

Worker chỉ nhận handoff này — không cần thấy toàn bộ context của orchestrator.

Vì sao chuẩn hoá quan trọng

  • Thay thế được — đổi model / framework không phá chain.
  • Debug được — log mỗi handoff = trace rõ.
  • Cost-aware — handoff ngắn = token ít.
  • Cache được — handoff giống nhau dùng lại kết quả.

Chuẩn đang nổi

MCP (Model Context Protocol) đang chuẩn hoá tool-call.
A2A (Agent-to-Agent) chuẩn hoá agent handoff.
Sẽ đào sâu ở S-10.

05

Frameworks &
Case study thực

4 framework multi-agent phổ biến

CrewAI

Role · Task · Crew

Abstraction "đội ngũ chuyên gia". Mỗi role có goal, backstory, tools. Sequential / Hierarchical process.

Hợp với: bài toán theo vai trò nghề nghiệp rõ.

LangGraph

Nodes · Edges · State

Graph có state. Edges có thể conditional. Cho phép loop, branch, human-in-the-loop checkpoint.

Hợp với: workflow có rẽ nhánh phức tạp, cần kiểm soát state chi tiết.

AutoGen

Conversable agents · Group chat

Agent là entity hội thoại. Có thể chat với nhau theo round-robin, manager, hoặc swarm.

Hợp với: debate, research, brainstorming.

Google ADK

Agent kit on Vertex AI

Bộ tool build / eval / deploy agent. Tích hợp Gemini, A2A, Vertex Agent Engine.

Hợp với: doanh nghiệp cần production-grade trên GCP.

Tất cả đều hiện thực 5 pattern bên trên — chỉ khác cú pháp & mức độ tự động hoá.

Case study: Anthropic Multi-Agent Research System
Anthropic multi-agent architecture

© Anthropic — How we built our multi-agent research system (2025)

Kiến trúc

  • Orchestrator-worker: Opus 4 lead + Sonnet 4 workers.
  • 3-5 subagents song song, mỗi cái dùng 3+ tools song song.
  • Subagent nhận: goal, output format, tools, ranh giới.

Số liệu

90.2% vượt single-agent Opus 4 15× token vs chat thường 80% variance perf giải thích bởi token usage

Bài học

  • Start small — eval 20 queries trước khi scale.
  • Prompt engineering embed rules cho subagent.
  • Rainbow deployments + tracing là bắt buộc.
Anti-patterns multi-agent

❌ Sai phổ biến

"Mọi thứ phải là multi-agent" — task đơn giản chia 5 agent → cost x10, latency x5 mà chất lượng tệ hơn.

Handoff to dài — copy nguyên context giữa các agent → mất ý nghĩa cô lập.

Network topology mặc định — N agent x N edges → khó debug, dễ loop.

Không max iterations — evaluator-optimizer chạy mãi.

Không trace per-agent — bug bắn ra, không biết agent nào hỏng.

✅ Cách làm tốt hơn

Bắt đầu single agent. Chia thành multi-agent chỉ khi đo được giá trị.

Handoff tóm tắt ≤ 2k tokens, có schema.

Mặc định Hierarchical. Nâng Network chỉ khi cần debate/cross-check.

Max steps + budget + signal "done" rõ.

Tracing per-agent (LangSmith / Langfuse / OpenTelemetry).

5 điều nên nhớ
1

Multi-agent ≠ many tools. Tiêu chí: agent có context riêng + giao tiếp structured handoff.

2

5 pattern lõi: Chaining · Routing · Parallel · Orchestrator-Workers · Evaluator-Optimizer. Hầu hết hệ thực = combo của chúng.

3

Bắt đầu Hierarchical + message-pass. Lên Network / shared state chỉ khi đo được giá trị.

4

Multi-agent đắt 15× token — cần task đủ giá trị. Số liệu Anthropic: +90% chất lượng, nhưng cost & reliability phải đong đo.

5

Handoff chuẩn hoá schema = ngày mai đổi framework / model / agent vẫn chạy. MCP & A2A đang thành chuẩn chung.

Bài tập & chuẩn bị buổi 5
📝

Thực hành

  • Vẽ topology cho 1 use case của bạn — chọn Hierarchical/Pipeline/Network.
  • Định nghĩa schema handoff cho 2 agent.
  • Thử CrewAI hoặc LangGraph với pattern Orchestrator-Workers.
📚

Đọc trước S-05

  • Sách: Chapter 1 — Prompt Chaining.
  • Pipeline ETL trong dự án bạn — có thể chuyển thành prompt chain?
  • JSON Schema basics nếu chưa quen.
🔗

Tham khảo

  • Anthropic — Building Effective Agents.
  • Anthropic — Multi-Agent Research System.
  • LangGraph & CrewAI docs.
Hết buổi 4

Buổi 5 — Prompt Chaining
Đào sâu pattern đơn giản & mạnh nhất.