TROISINH
Harness EngineeringMulti-Agent Architecture

Tại sao cần Multi-Agent? Khi single agent không đủ

Single agent thường 'tuyên bố xong sớm' và bỏ sót yêu cầu. Hiểu lý do cần Multi-Agent qua case study Anthropic và Claude Code với trade-off chi phí.

Định nghĩa

Multi-Agent là kiến trúc phân chia trách nhiệm (separation of concerns) giữa nhiều AI agent chuyên biệt, thay vì giao toàn bộ workflow phức tạp cho một agent đơn lẻ phải đóng đồng thời vai trò planner, executor, và evaluator.

Giải thích chi tiết

Vấn đề của Single Agent: "Premature Success Declaration"

Khi bạn giao cho một AI agent thực hiện task phức tạp (ví dụ: viết một feature hoàn chỉnh cho codebase lớn), bạn thường thấy pattern lặp lại: agent đọc file A, sửa file B, sau đó tuyên bố "Đã hoàn thành!" dù thực tế còn file C, D chưa đụng tới.

Anthropic gọi hiện tượng này là premature success declaration — xu hướng của LLM tự đánh giá "đủ rồi" khi context quá tải. Single agent phải đóng ba vai trò đối nghịch trong cùng một context window:

  • Planner: Phân tích requirement và lập kế hoạch
  • Generator: Viết code thực thi
  • Evaluator: Kiểm tra lỗi và verify hoàn thành

Khi cả ba vai trò này chen chúc trong cùng một context, Generator thường thuyết phục Planner rằng "code chạy được là đủ", và Evaluator bị override bởi áp lực hoàn thành nhanh.

Separation of Concerns: Chìa khóa của Multi-Agent

Multi-Agent giải quyết vấn đề trên bằng cách tách biệt rõ ràng các vai trò — mỗi agent chỉ có một nhiệm vụ duy nhất và không thể tự override quyết định của agent khác.

Kiến trúc điển hình là Planner → Generator → Evaluator:

  • Planner: Chỉ viết spec, không được phép viết code. Nếu Generator bỏ sót requirement, Planner phát hiện ngay.
  • Generator: Chỉ thực thi theo spec, không được tự quyết định "xong chưa".
  • Evaluator: Chỉ verify output, có quyền reject và yêu cầu Generator chạy lại.

Giống như team software thực thụ: Product Manager (Planner) không thể bảo Developer (Generator) "bỏ qua edge case đi, ship đi", vì QA (Evaluator) sẽ block lại.

Trade-off: Khi nào KHÔNG nên dùng Multi-Agent?

Multi-Agent không phải "upgrade" miễn phí. Nó đi kèm chi phí thực tế:

  1. Complexity: Debug multi-agent giống như debug distributed system — bạn không biết lỗi nằm ở Planner, Generator hay Evaluator.
  2. Cost: Mỗi agent chạy là một lượt inference. Task mà single agent giải quyết trong 9token,multiagentcoˊthto^ˊn9 token, multi-agent có thể tốn 200 nhưng đảm bảo đúng requirement.
  3. Latency: Sequential multi-agent (A xong rồi B làm) tăng thời gian hoàn thành tuyến tính.

Single agent đủ khi: Task đơn giản (transform, summarize), context ngắn, hoặc khi "gần đúng" được chấp nhận.

Ví dụ thực tế

Case 1: Evolution của Anthropic (v1 → v2)

Anthropic đã thử nghiệm rõ ràng sự khác biệt giữa hai kiến trúc:

Anthropic v1 (Initializer + Coding):

  • Initializer: Setup môi trường, phân tích repo
  • Coding: Viết code và tự quyết định khi nào xong

Kết quả: Coding agent thường declare success sau khi sửa 2-3 file, bỏ quên requirement phía sau. Initializer không có cơ chế ép Coding agent quay lại.

Anthropic v2 (Planner + Generator + Evaluator):

  • Planner: Tạo detailed todo list, track từng requirement
  • Generator: Chỉ code theo checklist, không quyền bỏ bước
  • Evaluator: Verify từng item trong checklist trước khi cho phép submit

Kết quả: Giảm 67% lỗi "bỏ sót requirement" và giảm hallucination trong planning phase.

Case 2: Claude Code và 3 mô hình Subagent

Claude Code (công cụ coding agent của Anthropic) implement multi-agent qua khái niệm Subagent với 3 pattern:

Fork Mode: Tạo agent mới với context rỗng để thử nghiệm giải pháp mà không làm "nhiễu" context của agent chính. Giống như git branch.

Teammate Mode: Agent chính delegate task cụ thể (ví dụ: "tìm tất cả usage của hàm X") cho subagent, subagent trả kết quả và tự terminate. Tránh làm clutter context chính.

Worktree Mode: Subagent làm việc trên copy của codebase (worktree) để thử refactor lớn. Nếu fail, discard worktree; nếu success, merge vào.

Điều này cho phép parallel processing: agent chính plan, trong khi 3-4 subagents thực thi song song các sub-tasks khác nhau.

Case 3: 9vs9 vs 200 — Chi phí thực tế của Reliability

Một case study triển khai Multi-Agent cho codebase enterprise:

  • Single Agent approach: Tốn khoảng 9tokenchomtfeatureimplementation.Nhưngphichyli15la^ˋnvıˋlo^~i"que^nrequirement",tngcng9 token cho một feature implementation. Nhưng phải chạy lại 15 lần vì lỗi "quên requirement", tổng cộng 135 và 3 giờ chờ đợi.
  • Multi-Agent approach: Planner (20)+Generator(20) + Generator (120) + Evaluator (40)+iterationloop(40) + iteration loop (20) = $200. Nhưng chạy một lần duy nhất và đúng requirement 100%.

Khi tính chi phí engineer time, 200nhanhhơn200 nhanh hơn 135 rất nhiều.

Ứng dụng

Sinh viên & Researcher

Phân tích academic paper phức tạp:

  • Agent A (Extractor): Đọc paper, trích xuất methodology và số liệu
  • Agent B (Synthesizer): Tóm tắt contribution chính
  • Agent C (Critic): Tìm limitation và counter-arguments

Tránh lỗi "đọc nhầm" khi một agent phải vừa đọc vừa phân tích vừa viết lại.

Developer & AI Engineer

Code review pipeline tự động:

  • Planner Agent: Phân tích PR description và diff, tạo checklist về security/performance/logic
  • Generator Agent (có thể là chính dev): Sửa code theo checklist
  • Evaluator Agent: Chạy static analysis và test suite, verify checklist hoàn thành

Đảm bảo không bị "tự review" bias — Generator không thể convince Evaluator "đoạn code này an toàn đâu" nếu Evaluator có prompt riêng về security.

Doanh nghiệp & Enterprise

Customer Support Automation:

  • Triage Agent: Phân loại ticket (refund/technical/billing)
  • Retrieval Agent: Tìm knowledge base articles liên quan
  • Response Agent: Draft câu trả lời
  • Policy Agent: Kiểm tra có vi phạm policy (không promise refund vượt quyền) trước khi gửi

Multi-Agent ở đây là guardrail bắt buộc — Policy Agent có quyền veto Response Agent, không phụ thuộc vào "lương tâm" của một agent duy nhất.

So sánh

Tiêu chíSingle AgentMulti-Agent
Kiến trúcMonolithicDistributed (separation of concerns)
Context ManagementMột context window chứa cả plan, code, reviewMỗi agent có context chuyên biệt, ít nhiễu hơn
Failure ModePremature success, bỏ sót requirementCommunication overhead, agent loop vô hạn
DebuggabilityKhó (biết agent sai, không biết ở giai đoạn nào)Khó hơn (distributed tracing giữa agents)
Chi phí TokenThấp cho task đơn giảnCao (nhiều lượt inference), nhưng predictable
LatencyMột lần gọi APISequential: tăng tuyến tính; Parallel: phức tạp hơn
Best Use CaseTransform, summarize, single-file editComplex workflow: code generation, research, policy enforcement

Kết luận: Multi-Agent không phải là "nâng cấp" từ single agent — nó là architectural pattern khác biệt khi bạn cần reliability cao hơn speed. Giống như bạn không dùng microservices cho landing page đơn giản, nhưng bắt buộc phải dùng cho hệ thống payment.

Bài viết liên quan

Cùng cụm

Kiến trúc 3-Agent của Anthropic: Planner → Generator → Evaluator

Đi sâu vào implementation cụ thể của Anthropic v2 với flow nghiêm ngặt giữa ba vai trò

3 mô hình Subagent: Fork, Teammate, Worktree

Cách Claude Code tổ chức parallel processing và isolation giữa các agent con

Agent Communication: Mailbox, shared state, event bus

Các pattern giao tiếp giữa agents: message passing so với shared memory

Parallel vs Sequential Agents: Khi nào dùng gì?

Trade-off giữa speed (parallel) và reliability (sequential) trong orchestration

Đọc tiếp

Nền tảng Harness Engineering

Hiểu bối cảnh rộng hơn: tại sao cần thiết kế "yên cương" cho AI thay vì chỉ viết prompt

State & Session Management

Làm thế nào duy trì trạng thái giữa các lượt chạy của Multi-Agent system

Security & Guardrails

Thiết kế defense-in-depth khi có nhiều agent có quyền truy cập khác nhau vào hệ thống

Case Study & Thực chiến

Phân tích các triển khai Multi-Agent thực tế: SWE-agent, OpenHands, và các bài học production

On this page