1.1 Anthropic - Building effective agents

Ngày đọc 05/2026
Ngày bài viết phát hành 19/12/2024
Phân loại AI agents
Link bài viết https://www.anthropic.com/engineering/building-effective-agents

Tháng 10/2024, sau khi công bố sự ra đời của giao thức MCP, thì hai tháng sau, bài viết này được xuất bản trên trang blog chính thức của Anthropic. Tuy nhiên, tính đến thời điểm mình đọc bài viết, các nguyên tắc, ý tưởng thiết kế luồng tích hợp LLM vào các công việc thực tế vẫn còn rất hữu ích (đối với mình).

Trong bài viết này, Anthropic làm rõ khái niệm workflow và agent. Workflow là hệ thống tích hợp mô hình LLM và các công cụ thông qua các đoạn code được định nghĩa trước. Trong khi, khái niệm agent hướng đến việc đặt quyền tự chủ (autonomous) vào mô hình LLM, cho phép nó tự lên kế hoạch, tự điều hướng và sử dụng các công cụ cần thiết trong toàn bộ quá trình.

Khi nào nên và không nên sử dụng agent?

Khi nào nên sử dụng framework?

Có nhiều framework hỗ trợ việc xây dựng hệ thống AI agent dễ dàng hơn (ví dụ: Claude AgentSDK), nhưng thường tạo ra một lớp bề mặt trừu tượng, và bỏ qua phần prompt và response cốt lõi phía bên dưới khiến cho việc debug trở nên khó khăn.
Anthropic khuyến nghị các nhà phát triển nên bắt đầu bằng việc sử dụng trực tiếp API của các nhà phát triển mô hình LLM với vài dòng code đơn giản hoặc sử dụng framework chỉ khi đã hiểu rõ phần chìm của chúng.

Workflow và khi nào nên sử dụng?

Phần này Anthropic phân loại workflow theo thiết kế và khi nào thì nên sử dụng loại nào.

Workflow: Prompt chaining

Task phù hợp: lý tưởng với các task đơn giản và có thể dễ dàng chia thành các subtask
Đặc điểm: output của task trước là input của task sau.
Ví dụ:

Pasted image 20260603100805.png

Workflow: Routing

Task phù hợp: lý tưởng với các task phức tạo có thể được giải quyết theo nhiều hướng khác nhau.
Đặc điểm: dùng một LLM Call Router có thể định tuyến luồng thực thi tiếp theo
Ví dụ:

Quote

Phân chia task/question hiệu quả giúp tối ưu hiệu suất (thời gian), token -> tối ưu chi phí.

Pasted image 20260603102548.png

Workflow: Parallelization

Task phù hợp: hiệu quả khi các subtask là độc lập, có thể chạy song song để tối ưu thời gian (sectioning) hoặc khi mong muốn có nhiều góc nhìn / lần thử để tổng hợp thành kết quả có độ tin cậy cao hơn (voting).
Ví dụ:

Pasted image 20260603105405.png

Workflow: Orchestrator-workers

Task phù hợp: task phức tạp và số lượng subtasks cần thực thi không cố định
Đặc điểm: một LLM call được giao nhiệm vụ phân chia nhiệm vụ (orchestrator), giao cho các LLM nhân viên và cuối cùng tổng hợp kết quả (synthesizer).

Vừa có đặc điểm tương đồng với routing và parallelization nhưng khác nhau về tính linh hoạt.

Ví dụ:

Pasted image 20260603105805.png

Workflow: Evaluator-optimizer

Task phù hợp: task đã có một khung đánh giá với các tiêu chí rõ ràng và khi việc tinh chỉnh mang lại giá trị có thể đo lường được.
Đặc điểm: tương tự với quá trình viết và tinh chỉnh lặp đi lặp lại khi viết tài liệu.
Ví dụ:

Pasted image 20260603105810.png

Agents và khi nào nên sử dụng?

Không còn giới hạn trong các prompt với các công cụ cố định được định nghĩa thông qua coding, các autonomous agent giờ đây tự lên kế hoạch, tương tác với môi trường và người dùng, nhận feedback từ đầu ra của công cụ, sau đó tiếp tục tự cải thiện và tinh chỉnh kế hoạch.

Task phù hợp: các task có mức độ phức tạp cao và không thể đưa ra một quy trình thực hiện cố định được.

Đặc điểm: vì agent được toàn quyền lên kế hoạch và thực thi các công cụ, do đó cần có các guardrails và được kiểm thử kỹ càng trong môi trường sandbox trước khi đưa vào sử dụng trong thực tế.

Bên cạnh đó, sức mạnh của agent phụ thuộc chủ yếu vào khả năng của LLM model (reasoning, planning) -> tiêu tốn nhiều tài nguyên và tiền bạc.

Pasted image 20260603142636.png

Ví dụ: High-level flow of a coding agent

Pasted image 20260603170819.png

Tóm lại, những gì hữu ích nhất của bài viết này đối với mình chính là việc Anthropic đã đưa ra góc nhìn của một nhà thiết kế quy trình ứng dụng LLM một cách hiệu quả, và các khía cạnh cần cân đo đong đếm để lựa chọn thiết kế phù hợp cho mục tiêu công việc cần giải quyết. Đồng thời, không nên bắt đầu với một workflow "hầm hố" (sở thích ngày xưa của mình khi làm n8n) nhưng lại vượt ngoài tầm kiểm soát, nên bắt đầu từ các thiết kế đơn giản, phân chia subtask cẩn thận và viết prompt rõ ràng, chi tiết.