Nội dung này phục vụ mục đích giáo dục, không phải lời khuyên đầu tư hoặc tín hiệu giao dịch.

Trả lời ngắn: Supervisor Agent là agent hoặc control component giữ mục tiêu, trạng thái, policy và budget để chọn, giao, theo dõi rồi dừng công việc của workers. Nó cần thiết khi nhiều nhánh phải phối hợp, nhưng không nên trở thành “super worker” có mọi tool, tự làm mọi việc và tự duyệt kết quả của mình.

Đọc xong, bạn sẽ hiểu:

  • Supervisor giữ gì, worker giữ gì và verifier kiểm gì.
  • Cách dispatch theo eligibility thay vì gọi agent tùy hứng.
  • Cách đặt retry, no-progress, termination và human handoff.

1. Supervisor Agent là gì, và không phải “sếp AI” ở đâu?

Supervisor là control plane: lớp quyết định ai làm gì, khi nào và state nào đủ điều kiện đi tiếp. Worker là agent thực hiện một domain task có ranh giới. Supervisor giữ bức tranh workflow; worker giữ execution context của nhiệm vụ được giao.

Hình dung điều phối viên sân bay. Họ giữ bảng chuyến, gate, slot và tình trạng delay; họ không tự lái mọi máy bay, kiểm động cơ rồi ký luôn chứng nhận an toàn. Nếu một supervisor vừa phân việc, tự sửa artifact, tự review và tự publish, các cổng độc lập chỉ còn tên.

Hình 1 — Supervisor giữ control state; worker làm task, reviewer kiểm và integrator ghép artifact.

Supervisor cũng không đồng nghĩa router. Router chỉ chọn đường đi ban đầu, như billing hay technical support. Supervisor còn theo dõi task graph, ownership, blockers, budgets và termination. Reviewer kiểm chất lượng artifact. Integrator ghép các artifact đã đạt. Một hệ thống có thể để supervisor kích hoạt reviewer hoặc integrator, nhưng ownership và verifier vẫn phải tách rõ.

Supervisor phù hợp khi task có nhiều workers, shared constraints hoặc nhánh failure cần điều phối. Với flow nhỏ và cố định, code orchestration thường dễ đoán và dễ audit hơn. Tài liệu OpenAI Agents SDK về orchestration phân biệt manager-style, nơi manager giữ control và gọi specialists như tools, với handoff, nơi specialist tiếp quản. Đây là pattern triển khai, không phải yêu cầu mọi workflow phải dùng LLM supervisor.

2. Control loop: chọn task, giao worker, quan sát và quyết định

Control loop cốt lõi:

READ STATE → SELECT ELIGIBLE TASK → DISPATCH → OBSERVE → VERIFY → DECIDE

Hình 2 — Mỗi state change cần evidence; supervisor không được báo done chỉ vì worker nói xong.

State tối thiểu gồm:

  • goal và success criteria;
  • task graph cùng dependencies;
  • owner và worker availability;
  • artifact versions và source IDs;
  • blockers/error class;
  • worker/retry/time budgets;
  • gate results và next eligible actions.

Eligibility là điều kiện task sẵn sàng được giao. Task impact không eligible nếu input scope M2 chưa rõ. Dispatch là gửi một task contract cho worker: objective, inputs, output schema, done criteria, permissions và budget. Nó không phải câu “xử lý tiếp nhé”.

Sau dispatch, supervisor đọc observation. Progress state chỉ đổi khi có artifact, version, evidence hoặc gate result mới. Worker nhắn “done” mà không có impact.md@v1 và M1/M2 source IDs thì state vẫn running hoặc blocked, không phải done.

Decision có bốn nhánh:

  • CONTINUE: postcondition đạt, mở task phụ thuộc.
  • REPLAN: observation mới làm graph cũ không còn hợp lệ.
  • STOP: budget hết, policy vi phạm hoặc no-progress.
  • HUMAN HANDOFF: cần quyền/phán đoán ngoài scope.

Tài liệu AutoGen SelectorGroupChat mô tả manager chọn next agent theo context và descriptions, cùng termination conditions. Dynamic selection giúp routing linh hoạt; nó không thay evidence gate hay permission policy.

3. Case postmortem giả: B bị blocked thì supervisor làm gì?

Case nối tiếp bài #14 có ba task:

  • TL: timeline, Agent A, state done_with_conflict, artifact timeline@v1, evidence L1/T1/L2.
  • IM: impact, Agent B, state blocked_missing_M2_scope, có M1 nhưng M2 thiếu phạm vi.
  • AC: actions, Agent C, state done, artifact actions@v1, evidence R1/R2.

Supervisor có worker cap 3, retry budget cho IM là 1/1, no-progress cap 1. External publish không nằm trong toolset.

Hình 3 — Retry budget hết thì stop/handoff; integration và publish vẫn bị khóa.

Decision table:

Task State Evidence Budget Decision Next
TL done_with_conflict L1/T1/L2 + timeline@v1 0 accept with conflict Integrator
IM blocked_missing_scope M1, thiếu M2 scope 1/1 stop retry B/Human
AC done R1/R2 + actions@v1 0 accept Reviewer
IN waiting TL/IM/AC/RV keep blocked Human

Supervisor không gọi B lần hai với cùng input. Retry budget đã hết và observation không đổi. Nó tạo handoff hẹp: cần human hoặc B bổ sung M2 scope. Integration giữ waiting; publish giữ disabled.

Nếu Supervisor tự bỏ M2 rồi báo postmortem hoàn tất, nó đã đổi success criteria để che blocker. Nếu tự ước lượng impact, nó đã làm domain work không có evidence. Nếu cho Integrator ghép partial artifact mà policy không cho phép, nó đã vượt integration gate.

Điều chắc chắn: không evidence thì không đổi state. Điều có điều kiện: supervisor có thể cho partial integration nếu policy và output schema định nghĩa rõ missing section; case này không cho phép.

4. Sai lầm, giới hạn và rủi ro single point of failure

Sai lầm đầu tiên là cấp mọi tool cho supervisor vì “nó cần điều khiển”. Đây là blast radius lớn. Least privilege nghĩa là chỉ cấp quyền tối thiểu: đọc state, dispatch, update board có kiểm soát và gọi verifier; không mặc định publish, payment hay delete.

Sai lầm thứ hai là retry vô hạn. Retry budget là số lần thử lại cho một error class. Timeout tạm thời có thể retry một lần; missing scope cần input mới, không cần cùng request lần nữa.

Sai lầm thứ ba là tin message thay artifact. Sai lầm thứ tư là supervisor tự review output của mình. Sai lầm thứ năm là dùng LLM decision cho gate deterministic như source_ids.length > 0, schema validation hoặc explicit approval.

Termination condition là điều kiện kết thúc workflow: success gate đạt, budget hết, policy violation, deadline hoặc human handoff. No-progress loop là nhiều vòng không tạo state/evidence mới. Nếu state hash không đổi sau một vòng cho phép, dừng thay vì để agents trò chuyện vô hạn.

Central supervisor còn là single point of failure. Nó route sai thì cả team sai; state stale thì decisions sai; bị prompt injection thì có thể dispatch sai tool. Giảm rủi ro bằng least privilege, structured state, deterministic gates, audit log và đường fallback. Kiến trúc supervisor của LangGraph là một pattern phân cấp; library không tự bảo đảm policy của ứng dụng.

5. Checklist và bài tập 15 phút

Checklist:

  1. Viết goal/success criteria bất biến trong run.
  2. Lưu task graph, owner, artifact version và blockers.
  3. Định nghĩa eligibility trước dispatch.
  4. Giao structured contract, không giao câu mơ hồ.
  5. Giới hạn worker cap, turns, retry và wall time.
  6. Chỉ đổi state khi verifier thấy evidence.
  7. Mã hóa deterministic gate bằng code khi có thể.
  8. Phát hiện no-progress bằng state hash hoặc counter.
  9. Tách Reviewer/Integrator và external approval.
  10. Có stop, resume checkpoint và human handoff.

Đứng ngoài khi supervisor không có source of truth, không thể giới hạn quyền hoặc không có termination. Dừng khi cùng error lặp, budget hết, state không đổi hoặc worker yêu cầu tool ngoài scope.

Bài tập 15 phút

Dùng spreadsheet miễn phí; không gọi agent/API thật.

  • 3 phút nhập TL/IM/AC cùng owner/state/version.
  • 3 phút ghi eligibility và gate.
  • 3 phút đặt worker cap 3, retry IM 1, no-progress cap 1.
  • 3 phút đi qua decision table khi IM thiếu M2 scope.
  • 3 phút ghi human handoff; giữ publish disabled.

Mẫu đối chiếu đã điền

Kiểm Mẫu đạt
Goal Draft postmortem đủ TL/IM/AC/RV
IM state blocked_missing_M2_scope
Retry 1/1, không chạy lại cùng input
Integration waiting
Next B/Human bổ sung M2 scope
External publish disabled

Kết quả đúng là workflow waiting_on_human. Nếu sheet ghi published, control policy đã bị vượt. Đây chỉ là dữ liệu giả, không dùng tiền hay production.

6. Tổng kết và bài học tiếp theo

a. Năm ý chính

  • Supervisor giữ control state, không làm mọi domain task.
  • Eligibility và contract quyết định task nào được dispatch.
  • State change cần artifact/evidence/verifier.
  • Retry, no-progress và termination phải có giới hạn.
  • Least privilege và human handoff giữ blast radius nhỏ.

b. Câu hỏi tự kiểm tra

  • Supervisor khác router ở đâu?
  • Vì sao IM không được retry tiếp?
  • Message “done” còn thiếu gì để đổi state?
  • Khi nào deterministic code tốt hơn LLM decision?

c. Gợi ý đáp án

Xem gợi ý câu 1

Router chọn đường; supervisor còn giữ graph, state, budget và termination. Xem mục 1.

Xem gợi ý câu 2

Budget đã 1/1 và input M2 scope chưa đổi. Xem mục 3.

Xem gợi ý câu 3

Cần artifact version, source IDs và verifier result. Xem mục 2.

Xem gợi ý câu 4

Khi gate rõ, deterministic và high-risk như schema, source hoặc approval. Xem mục 4.

d. Thuật ngữ cần nhớ

Thuật ngữ Giải thích ngắn
Supervisor Agent Control component giữ goal/state/policy.
Control plane Lớp quyết định ai làm gì và khi nào.
Worker Agent làm bounded domain task.
Eligibility Điều kiện task sẵn sàng được giao.
Dispatch Giao task contract cho worker.
Progress state State có artifact, evidence và version.
Retry budget Số lần retry cho một error class.
Termination condition Điều kiện kết thúc workflow.
No-progress loop Nhiều vòng không tạo state mới.
Least privilege Chỉ cấp quyền tối thiểu cần thiết.

e. Nguồn tham khảo

Bài trước, Multi-Agent Collaboration #14, định nghĩa ownership và handoff. Bài này giữ control loop. Bài sau, Reflection Agent #16, sẽ đi sâu vào cách một agent tự kiểm và sửa output mà không sa vào vòng lặp vô hạn.

Nội dung này phục vụ mục đích giáo dục, không phải lời khuyên đầu tư hoặc tín hiệu giao dịch. Mọi thị trường đều có rủi ro mất vốn.