Ba kiểu phối hợp cốt lõi
Một team giỏi không chỉ nhờ từng cá nhân giỏi mà nhờ cách họ phối hợp. CrewAI hỗ trợ chủ yếu hai process, cộng thêm mẫu tự thiết kế:
- Sequential (tuần tự): task chạy lần lượt, output task trước làm context cho task sau. Đơn giản, dễ debug.
- Hierarchical (phân cấp): một manager agent điều phối, giao việc cho các agent con và tổng hợp. Phù hợp khi thứ tự công việc phụ thuộc vào tình huống.
- Song song/hội thoại (thường mô phỏng bằng nhiều crew hoặc dùng AutoGen ở bài sau).
Sequential — ví dụ
crew = Crew(
agents=[researcher, writer, editor],
tasks=[research_task, write_task, edit_task],
process=Process.sequential,
)
Luồng: researcher → writer → editor. Mỗi task tự nhận output trước đó. Đây là lựa chọn mặc định cho pipeline có thứ tự rõ ràng.
Hierarchical — ví dụ
crew = Crew(
agents=[researcher, writer, editor],
tasks=[final_report_task],
process=Process.hierarchical,
manager_llm="gpt-4o", # manager cần LLM mạnh để điều phối
)
Manager sẽ tự quyết định gọi agent nào, mấy lần, theo thứ tự nào để hoàn thành final_report_task. Bạn trao quyền điều phối cho nó — mạnh nhưng khó kiểm soát và tốn token hơn.
Truyền ngữ cảnh có chủ đích
Mặc định sequential truyền output task ngay trước. Nhưng đôi khi task 3 cần output của task 1 (không phải task 2). Dùng context để chỉ định rõ:
edit_task = Task(
description="Biên tập bản nháp cho khớp dữ liệu gốc.",
expected_output="Bản cuối đã sửa.",
agent=editor,
context=[research_task, write_task], # nhận cả hai
)
Việc kiểm soát context giúp tránh "tam sao thất bản" — editor đối chiếu thẳng dữ liệu gốc thay vì chỉ tin bản nháp.
Các bước thiết kế luồng phối hợp
- Vẽ sơ đồ luồng trên giấy: ai → ai, truyền gì.
- Mặc định chọn sequential nếu thứ tự cố định. Chỉ dùng hierarchical khi thứ tự phụ thuộc tình huống.
- Đánh dấu các task cần context đặc biệt (không chỉ task liền trước).
- Gán
context=[...]tường minh cho các task đó. - Chạy với
verbose=Truevà đọc log để xác nhận đúng agent nhận đúng dữ liệu. - Thêm bước review (một agent kiểm tra output của agent khác) khi cần độ tin cậy cao.
Khung quyết định: Sequential hay Hierarchical?
Thứ tự công việc có CỐ ĐỊNH và biết trước không?
→ CÓ : dùng Sequential (rõ ràng, rẻ, dễ debug)
→ KHÔNG (phụ thuộc kết quả trung gian, cần điều phối động)
: dùng Hierarchical với manager_llm mạnh
Mẫu "producer–reviewer" nâng chất lượng
Một mẫu phối hợp rất hiệu quả: cặp producer (tạo nội dung) và reviewer (soi lỗi, yêu cầu sửa). Ví dụ writer tạo bản nháp, editor đóng vai reviewer với goal "tìm ít nhất 3 điểm cần sửa". Bắt reviewer phải tìm lỗi (đặt số tối thiểu) giúp tránh việc nó gật đầu cho qua.
Mẫu này mô phỏng đúng cách một team người thật vận hành: người viết dễ "mù" với lỗi của chính mình, nên cần một con mắt thứ hai. Trong CrewAI, bạn hiện thực hóa bằng một task review nhận context là output của producer, và expected_output là danh sách điểm cần sửa cụ thể — không phải một câu "trông ổn".
Vòng lặp cải thiện có kiểm soát
Đôi khi bạn muốn producer sửa lại dựa trên phản hồi của reviewer, rồi review lần nữa. Trong pipeline sequential, cách đơn giản là thêm một task "revise" sau review:
revise_task = Task(
description="Sửa bản nháp theo đúng các điểm reviewer nêu.",
expected_output="Bản đã sửa, ghi rõ mỗi điểm đã xử lý thế nào.",
agent=writer,
context=[write_task, review_task],
)
Để vòng cải thiện không kéo dài vô tận, hãy giới hạn số vòng (ví dụ chỉ một lượt review–revise). Nếu cần nhiều vòng động hơn (sửa tới khi đạt), đó là dấu hiệu bài toán hợp với AutoGen hơn — nơi vòng lặp phản hồi là bản chất.
Phân rã task lớn để dễ phối hợp
Một nguyên tắc quan trọng khi thiết kế luồng: task càng nhỏ và rõ, phối hợp càng dễ. Thay vì một task "nghiên cứu và viết báo cáo hoàn chỉnh", hãy tách thành research → outline → draft → edit. Mỗi bước có input/output rõ ràng, dễ chèn bước review, dễ tìm chỗ sai, và dễ tái sử dụng agent cho dự án khác. Task lớn ôm đồm là kẻ thù của một luồng phối hợp sạch.
Checklist phối hợp
- [ ] Đã vẽ sơ đồ luồng trước khi code.
- [ ] Chọn process đúng theo khung quyết định.
- [ ] Các task cần dữ liệu gốc đã gán
contexttường minh. - [ ] Có ít nhất một bước review cho output quan trọng.
- [ ] Đã đọc log verbose xác nhận luồng đúng.
Sai lầm thường gặp
- Lạm dụng hierarchical cho pipeline thứ tự cố định → tốn token, khó dự đoán, khó debug.
- Quên gán context khiến agent cuối chỉ thấy output gần nhất, mất dữ liệu gốc.
- Reviewer không có tiêu chí bắt buộc → luôn duyệt qua, review thành hình thức.
- Manager dùng LLM yếu trong hierarchical → điều phối kém, giao việc sai.
- Chuỗi quá dài (7-8 task nối tiếp) → lỗi tích lũy. Cắt thành các crew nhỏ có kiểm tra giữa chừng.