Bỏ qua để đến nội dung

1.2 Multi-Agent Orchestration

Multi-agent orchestration là cách bạn cho nhiều agent Claude cùng làm một tác vụ phức tạp. Đề thi không thả lỏng về hình dạng của kiến trúc này. Nó chỉ hỏi đúng một mô hình: hub-and-spoke, với một coordinator ở trung tâm.

Kiến trúc này có hai vai:

  • Coordinator agent: nằm ở trung tâm. Nhận tác vụ ban đầu, phân rã nó, quyết định gọi subagent nào, truyền context xuống, gom kết quả, xử lỗi, và định tuyến thông tin giữa các subagent.
  • Subagent: các nan hoa. Mỗi con lo một việc chuyên biệt (web search, phân tích tài liệu, tổng hợp, sinh báo cáo). Chúng nhận chỉ thị từ coordinator và trả kết quả về cho coordinator.

Quy tắc số một: MỌI giao tiếp đều đi qua coordinator. Subagent không bao giờ nói chuyện trực tiếp với nhau. Không bao giờ. Không vì hiệu năng, không vì tiện, không vì bất cứ lý do gì. Mọi mẩu thông tin di chuyển giữa các subagent đều phải qua coordinator.

Việc tập trung hóa này mang lại ba thứ mà đề thi quan tâm:

  1. Observability — log và giám sát mọi message ở một chỗ.
  2. Xử lỗi nhất quán — coordinator áp cùng một chính sách khôi phục lỗi.
  3. Kiểm soát luồng thông tin — coordinator quyết định mỗi subagent nhận context gì.

Nguyên tắc cô lập — phần quan trọng nhất

Phần tiêu đề “Nguyên tắc cô lập — phần quan trọng nhất”

Đây là ý bị hiểu sai nhiều nhất trong hệ multi-agent, và đề thi khai thác rất mạnh sự nhầm lẫn đó.

Subagent KHÔNG tự động kế thừa lịch sử hội thoại của coordinator. Khi coordinator spawn một subagent, subagent đó khởi động chỉ với những gì coordinator đưa vào prompt một cách tường minh. Nó không truy cập được:

  • System prompt của coordinator (trừ khi được đưa vào tường minh)
  • Các message trước đó trong hội thoại của coordinator
  • Kết quả của subagent khác (trừ khi coordinator truyền xuống)
  • Bất kỳ “shared memory” hay global state nào

Subagent KHÔNG chia sẻ memory giữa các lần gọi. Nếu coordinator gọi subagent web search hai lần, lần gọi thứ hai hoàn toàn không biết gì về lần thứ nhất. Mỗi lần gọi là độc lập.

Vì vậy coordinator phải rất có chủ đích với context. Mọi mẩu thông tin subagent cần đều phải nằm trong prompt của nó, tường minh. Nếu agent tổng hợp cần kết quả web search, coordinator phải truyền kết quả đó xuống — agent tổng hợp không thể “tự tra” từ một kho dùng chung. Không có kho dùng chung nào cả.

Coordinator có bốn trách nhiệm chính mà đề thi hỏi:

1. Chọn subagent động. Coordinator phân tích yêu cầu của truy vấn rồi chọn động subagent nào cần gọi. Nó KHÔNG phải lúc nào cũng chạy hết pipeline. Một câu hỏi dữ kiện đơn giản có thể chỉ cần subagent web search, không cần cả chuỗi research–analysis–synthesis. Đẩy mọi truy vấn qua mọi subagent là phí thời gian và tài nguyên.

2. Chia phạm vi nghiên cứu. Khi giao việc cho nhiều subagent, coordinator chia phạm vi để giảm trùng lặp. Nó gán cho mỗi agent một nhóm chủ đề con hoặc loại nguồn riêng. Ví dụ, một agent tìm bài báo học thuật trong khi agent khác tìm tin tức — hai con không cùng cày một nguồn.

3. Vòng tinh chỉnh lặp. Coordinator đánh giá output tổng hợp xem còn lỗ hổng nào không. Nếu phần tổng hợp còn thiếu, nó giao lại cho subagent search và analysis với truy vấn nhắm đúng chỗ thiếu, rồi gọi lại synthesis cho tới khi độ phủ đủ. Đây không phải quy trình một phát ăn ngay — nó là một chu trình lặp.

4. Định tuyến giao tiếp tập trung. Mọi giao tiếp của subagent đi qua coordinator, phục vụ observability, xử lỗi nhất quán và kiểm soát luồng thông tin.

Đây là một dạng đề cụ thể bạn phải nhận ra. Bộ câu mẫu trong exam guide có một câu (Question 7) mà coordinator phân rã “tác động của AI lên các ngành sáng tạo” thành toàn chủ đề con về nghệ thuật thị giác, bỏ sót hoàn toàn âm nhạc, viết lách và điện ảnh.

Nguyên nhân gốc nằm ở khâu phân rã tác vụ của coordinator, không phải ở bất kỳ agent phía sau nào. Agent web search đã tìm rất kỹ đúng thứ nó được giao. Agent synthesis đã tổng hợp đủ mọi thứ nó nhận được. Nhưng coordinator chỉ giao chủ đề nghệ thuật thị giác, nên âm nhạc, viết lách và điện ảnh chưa từng được nghiên cứu.

Đề thi muốn bạn truy lỗi về gốc. Khi hệ multi-agent cho ra một báo cáo thiếu nguyên cả nhóm chủ đề, đừng đổ cho subagent — hãy soi khâu phân rã của coordinator.

Dạng này áp dụng rộng: nếu output thiếu về phạm vi (chứ không phải thiếu về chiều sâu), thì gần như luôn luôn nguyên nhân gốc là khâu phân rã của coordinator.

Ví dụ thực tế: lỗ hổng độ phủ trong hệ nghiên cứu

Phần tiêu đề “Ví dụ thực tế: lỗ hổng độ phủ trong hệ nghiên cứu”

Một hệ nghiên cứu multi-agent nhận đề bài “các công nghệ năng lượng tái tạo”. Coordinator phân rã thành “hiệu suất tấm pin mặt trời” và “thiết kế turbine gió”. Mỗi subagent cho ra phần nghiên cứu kỹ, dẫn nguồn đàng hoàng cho chủ đề nó được giao.

Báo cáo cuối cùng rất đầy đủ về mặt trời và gió, nhưng không nói gì về địa nhiệt, thủy triều, sinh khối hay nhiệt hạch. Lỗ hổng này không phải do search kém hay synthesis yếu — nó xảy ra vì coordinator chưa bao giờ giao những chủ đề con đó.

Cách sửa không phải là viết truy vấn search hay hơn, không phải agent synthesis xịn hơn, cũng không phải thêm subagent. Cách sửa là để coordinator phân rã tốt hơn, phủ hết bề rộng của chủ đề.

Một hệ nghiên cứu multi-agent cho ra báo cáo về “các công nghệ năng lượng tái tạo” nhưng chỉ có mặt trời và gió. Mỗi subagent đều phủ kỹ và dẫn nguồn tốt cho chủ đề nó được giao. Subagent web search trả về kết quả liên quan cho mọi truy vấn nó nhận. Subagent synthesis gộp chính xác toàn bộ phần nghiên cứu nó được đưa. Nguyên nhân gốc khả dĩ nhất của lỗ hổng độ phủ là gì?

  • A. Subagent web search dùng truy vấn quá hẹp, nên nguồn về địa nhiệt, thủy triều, sinh khối và nhiệt hạch không bao giờ xuất hiện trong kết quả
  • B. Subagent synthesis không phát hiện được lỗ hổng trong phần nghiên cứu nhận được và không yêu cầu coordinator bổ sung các nhóm công nghệ còn thiếu
  • C. Coordinator chỉ phân rã chủ đề thành mặt trời và gió, không giao địa nhiệt, thủy triều, sinh khối hay nhiệt hạch cho subagent nào
  • D. Subagent phân tích tài liệu không truy cập được nguồn về các nhóm năng lượng tái tạo còn lại, nên những phần đó không bao giờ được viết
Đáp án & giải thích

Đúng: C

  • A — Subagent web search đã nghiên cứu đúng thứ nó được giao và trả về kết quả liên quan. Vấn đề không nằm ở cách nó tìm — mà ở thứ nó được yêu cầu tìm.
  • B — Subagent synthesis làm việc trên phần nghiên cứu nó nhận được. Nó không thể tổng hợp những chủ đề chưa từng được nghiên cứu. Phát hiện lỗ hổng là trách nhiệm của coordinator trong vòng tinh chỉnh lặp.
  • C — Coordinator chịu trách nhiệm phân rã tác vụ. Nếu nó chỉ giao mặt trời và gió, không agent phía sau nào phủ nổi các nhóm còn thiếu. Nguyên nhân gốc là khâu phân rã của coordinator, không phải năng lực của subagent.
  • D — Nguồn sẵn có không phải vấn đề. Coordinator chưa bao giờ yêu cầu agent nào nghiên cứu các dạng năng lượng kia. Dù có truy cập nguồn hoàn hảo thì chủ đề không được giao vẫn sẽ trống.

Năm câu trắc nghiệm theo format đề thi về Multi-Agent Orchestration. Chọn đáp án trước, rồi mở phần giải thích.

Một hệ nghiên cứu multi-agent cho ra báo cáo về “các công nghệ năng lượng tái tạo” nhưng chỉ có mặt trời và gió. Mỗi subagent đều phủ kỹ và dẫn nguồn tốt cho chủ đề nó được giao. Subagent web search trả về kết quả liên quan cho mọi truy vấn nó nhận. Nguyên nhân gốc khả dĩ nhất là gì?

  • A. Subagent web search dùng truy vấn quá hẹp, bỏ sót kết quả về các dạng năng lượng khác
  • B. Khâu phân rã của coordinator chỉ nêu mặt trời và gió, nên phần còn lại không được giao cho agent nào
  • C. Subagent synthesis không phát hiện được lỗ hổng trong phần nghiên cứu và không yêu cầu bổ sung
  • D. Subagent phân tích tài liệu không truy cập được nguồn về các dạng năng lượng tái tạo khác
Đáp án & giải thích

Đúng: B

  • B đúng vì coordinator chịu trách nhiệm phân rã tác vụ. Nếu nó chỉ giao mặt trời và gió, không agent phía sau nào phủ nổi các nhóm còn thiếu. Khi output thiếu về phạm vi, nguyên nhân gốc luôn là khâu phân rã của coordinator.
  • A sai vì subagent web search đã nghiên cứu đúng thứ nó được giao và trả về kết quả liên quan. Vấn đề là thứ nó được yêu cầu tìm, không phải cách nó tìm.
  • C sai vì agent synthesis làm việc trên phần nghiên cứu nó nhận được. Nó không thể tổng hợp chủ đề chưa từng được nghiên cứu. Phát hiện lỗ hổng trong vòng tinh chỉnh lặp là trách nhiệm của coordinator.
  • D sai vì nguồn sẵn có không phải vấn đề. Coordinator chưa bao giờ yêu cầu agent nào nghiên cứu các dạng năng lượng kia. Dù truy cập nguồn hoàn hảo, chủ đề không được giao vẫn trống.

Đâu là lợi ích của việc định tuyến TẤT CẢ giao tiếp của subagent qua coordinator?

  • A. Giảm tổng số API call cần để hoàn thành một tác vụ
  • B. Cho phép subagent chia sẻ memory và tự động xây tiếp trên phát hiện của nhau
  • C. Cho phép subagent chạy song song mà không tốn chi phí điều phối
  • D. Mang lại observability, xử lỗi nhất quán và kiểm soát luồng thông tin
Đáp án & giải thích

Đúng: D

  • D đúng vì giao tiếp tập trung qua coordinator cho ba lợi ích cụ thể: observability (log và giám sát mọi message ở một chỗ), xử lỗi nhất quán (coordinator áp cùng chính sách khôi phục), và kiểm soát luồng thông tin (coordinator quyết định mỗi subagent nhận context gì).
  • A sai vì đi qua coordinator thực ra có thể làm tăng số API call so với giao tiếp trực tiếp. Lợi ích ở đây là kiểm soát và khả năng quan sát, không phải hiệu năng.
  • B sai vì subagent KHÔNG chia sẻ memory. Giao tiếp qua coordinator nghĩa là coordinator truyền thông tin một cách tường minh — không có chuyện chia sẻ memory tự động.
  • C sai vì chạy song song đạt được bằng nhiều Task tool call trong cùng một response, không phải nhờ mô hình định tuyến. Định tuyến tập trung là chuyện kiểm soát, không phải song song hóa.

Một developer đề xuất cho subagent giao tiếp trực tiếp với nhau để giảm latency. Vì sao cách này có vấn đề?

  • A. Nó phá vỡ observability, xử lỗi nhất quán và kiểm soát luồng thông tin
  • B. Claude API không hỗ trợ giao tiếp trực tiếp
  • C. Subagent không xử lý được message đến từ subagent khác
  • D. Nó buộc mọi subagent phải truy cập được tool của tất cả subagent khác, làm phình phạm vi của từng con
Đáp án & giải thích

Đúng: A

  • A đúng vì giao tiếp trực tiếp giữa các subagent đi vòng qua coordinator, phá ba lợi ích của hub-and-spoke: observability (message không còn được log tập trung), xử lỗi nhất quán (không còn chính sách khôi phục thống nhất), và kiểm soát luồng thông tin (không còn ai gác cổng quyết định context chảy đi đâu).
  • B sai vì đây là vấn đề kiến trúc, không phải giới hạn kỹ thuật của API. Mô hình này sai bất kể API có hỗ trợ hay không.
  • C sai vì subagent xử lý được mọi input dạng text. Vấn đề không nằm ở khả năng xử lý message mà ở việc mất kiểm soát tập trung.
  • D sai vì quyền truy cập tool là chuyện tách biệt với định tuyến giao tiếp. Giao tiếp trực tiếp không nhất thiết kéo theo dùng chung tool.

Coordinator gọi subagent web search hai lần cho hai chủ đề con khác nhau. Lần gọi thứ hai trả về kết quả mâu thuẫn với lần đầu. Điều gì giải thích chuyện này?

  • A. Tool web search có bug cache nên trả kết quả cũ
  • B. Coordinator truyền chỉ thị mâu thuẫn cho hai lần gọi
  • C. Subagent không chia sẻ memory, nên mỗi lần gọi là hoàn toàn độc lập
  • D. Subagent thứ hai kế thừa context cũ từ lần gọi đầu
Đáp án & giải thích

Đúng: C

  • C đúng vì tính cô lập của subagent khiến mỗi lần gọi hoàn toàn độc lập. Lần thứ hai không biết gì về thứ lần đầu tìm được. Kết quả mâu thuẫn hoàn toàn có thể xảy ra vì mỗi lần gọi tìm kiếm độc lập và có thể ra nguồn khác nhau.
  • A sai vì lời giải thích nằm ở tính cô lập của subagent, không phải cache của tool. Mỗi lần gọi độc lập theo thiết kế.
  • B sai vì tuy chỉ thị mâu thuẫn cũng có thể cho kết quả khác nhau, câu hỏi đang hỏi điều gì giải thích mâu thuẫn — và lý do kiến trúc là tính cô lập (không chia sẻ memory).
  • D sai vì subagent KHÔNG kế thừa context từ lần gọi trước. Đáp án này đi ngược nguyên tắc cô lập.

Output của một hệ multi-agent liên tục bỏ sót nguyên cả nhóm chủ đề của một đề tài rộng. Developer đề xuất thêm ba subagent chuyên biệt nữa để tăng độ phủ. Cách này có sửa được vấn đề không?

  • A. Có, nhiều subagent hơn nghĩa là phủ chủ đề đầy đủ hơn
  • B. Không, phân rã hẹp thì chỉ đẻ ra những phần việc hẹp y như vậy
  • C. Có, miễn là các subagent mới truy cập được nguồn dữ liệu khác
  • D. Không — cách sửa là cho subagent giao tiếp trực tiếp để tự phát hiện lỗ hổng
Đáp án & giải thích

Đúng: B

  • B đúng vì nguyên nhân gốc nằm ở khâu phân rã tác vụ của coordinator. Nếu coordinator chỉ sinh ra các chủ đề con hẹp thì subagent thêm vào cũng nhận phần việc hẹp y hệt. Cách sửa là cải thiện cách coordinator phân rã chủ đề để phủ hết bề rộng.
  • A sai vì thêm subagent không giúp gì nếu chúng nhận phần việc hẹp. Độ phủ phụ thuộc vào thứ được giao, không phụ thuộc số agent đang có.
  • C sai vì quyền truy cập nguồn dữ liệu là vô nghĩa khi coordinator không bao giờ giao các nhóm còn thiếu. Agent không nghiên cứu được chủ đề chưa từng được yêu cầu.
  • D sai vì giao tiếp trực tiếp giữa subagent phá vỡ kiến trúc hub-and-spoke và không chạm tới vấn đề phân rã. Phát hiện lỗ hổng là trách nhiệm của coordinator trong vòng tinh chỉnh lặp.