Hướng dẫn thực tế xây dựng Agents AI
Giới thiệu
Các mô hình ngôn ngữ lớn (LLM) ngày càng có khả năng xử lý các tác vụ phức tạp, đa bước. Những tiến bộ trong lý luận, đa phương thức và sử dụng công cụ đã mở ra một loại hệ thống mới được hỗ trợ bởi LLM, gọi là tác tử (Agents).
Hướng dẫn này dành cho các nhóm sản phẩm và kỹ thuật đang muốn xây dựng Agents đầu tiên của mình, chắt lọc các kinh nghiệm từ nhiều triển khai thực tế thành các phương pháp dễ áp dụng. Tài liệu cung cấp các khung để xác định các trường hợp sử dụng tiềm năng, các mẫu thiết kế rõ ràng cho logic và điều phối Agents, cùng các phương pháp tốt nhất để đảm bảo Agents hoạt động an toàn, ổn định và hiệu quả.
Sau khi đọc hướng dẫn này, bạn sẽ có kiến thức nền tảng để tự tin bắt đầu xây dựng Agents đầu tiên.

Agents là gì?
Agents là các hệ thống có khả năng thực hiện các tác vụ một cách độc lập thay cho người dùng, khác với phần mềm thông thường chỉ tự động hóa các quy trình. Agents có thể thực hiện các quy trình công việc (workflow) từ đầu đến cuối với mức độ tự chủ cao.
Quy trình công việc là chuỗi các bước cần thực hiện để đạt được mục tiêu của người dùng, như giải quyết vấn đề dịch vụ khách hàng, đặt bàn nhà hàng, thực hiện thay đổi mã nguồn, hoặc tạo báo cáo.
Các ứng dụng tích hợp LLM nhưng không sử dụng chúng để điều khiển quy trình công việc (như chatbot đơn giản, LLM đơn vòng, hoặc phân loại cảm xúc) không phải là Agents.
Một Agents có các đặc điểm cốt lõi sau:
- Sử dụng LLM để quản lý quy trình công việc và đưa ra quyết định: Agents nhận biết khi nào quy trình hoàn tất, có thể tự sửa lỗi nếu cần, và chuyển giao quyền điều khiển lại cho người dùng nếu thất bại.
- Truy cập các công cụ để tương tác với hệ thống bên ngoài: Agents chọn công cụ phù hợp dựa trên trạng thái hiện tại của quy trình, luôn hoạt động trong các giới hạn rõ ràng.
Khi nào nên xây dựng Agents?
Hãy ưu tiên các quy trình công việc chưa được tự động hóa hiệu quả, đặc biệt là những quy trình gặp khó khăn với phương pháp truyền thống:
- Ra quyết định phức tạp: Các quy trình đòi hỏi phán đoán tinh tế, xử lý ngoại lệ, hoặc quyết định dựa trên ngữ cảnh, như phê duyệt hoàn tiền trong dịch vụ khách hàng.
- Quy tắc khó duy trì: Hệ thống có bộ quy tắc phức tạp, tốn kém hoặc dễ lỗi khi cập nhật, như đánh giá bảo mật nhà cung cấp.
- Phụ thuộc vào dữ liệu phi cấu trúc: Các tình huống cần diễn giải ngôn ngữ tự nhiên, trích xuất ý nghĩa từ tài liệu, hoặc giao tiếp với người dùng, như xử lý yêu cầu bồi thường bảo hiểm nhà.
Trước khi xây dựng Agents, hãy xác minh rằng trường hợp sử dụng của bạn đáp ứng các tiêu chí này. Nếu không, một giải pháp xác định (deterministic) có thể đủ.
Nền tảng thiết kế Agents
Agents bao gồm ba thành phần cốt lõi:
- Mô hình (Model): LLM cung cấp khả năng lý luận và ra quyết định.
- Công cụ (Tools): Các hàm hoặc API bên ngoài mà Agents sử dụng để hành động.
- Hướng dẫn (Instructions): Các quy tắc và giới hạn rõ ràng định nghĩa cách Agents hoạt động.
Ví dụ mã khi sử dụng OpenAI Agents SDK:
weather_agent = Agent(
name="Weather agent",
instructions="Bạn là một Agents hữu ích, hỗ trợ người dùng về thông tin thời tiết.",
tools=[get_weather],
)
Chọn mô hình
Các mô hình có ưu điểm và hạn chế khác nhau về độ phức tạp, độ trễ và chi phí. Không phải mọi tác vụ đều cần mô hình mạnh nhất:
- Tác vụ đơn giản như truy xuất dữ liệu hoặc phân loại ý định có thể dùng mô hình nhỏ, nhanh hơn.
- Tác vụ phức tạp như phê duyệt hoàn tiền cần mô hình mạnh hơn.
Chiến lược chọn mô hình:
- Thiết lập đánh giá để xác định hiệu suất cơ bản.
- Đảm bảo đạt mục tiêu độ chính xác với mô hình tốt nhất.
- Tối ưu chi phí và độ trễ bằng cách thay thế mô hình lớn bằng mô hình nhỏ hơn khi có thể.
Xác định công cụ
Công cụ mở rộng khả năng của Agents thông qua API hoặc tương tác trực tiếp với giao diện người dùng (UI) của ứng dụng. Mỗi công cụ cần được định nghĩa chuẩn hóa, dễ tái sử dụng và kiểm tra kỹ lưỡng.
Ba loại công cụ:
- Dữ liệu (Data): Giúp Agents truy xuất thông tin (ví dụ: truy vấn CRM, đọc PDF, tìm kiếm web).
- Hành động (Action): Cho phép Agents thực hiện hành động (ví dụ: gửi email, cập nhật bản ghi CRM).
- Điều phối (Orchestration): Agents có thể là công cụ cho các Agents khác.
Ví dụ mã:
from agents import Agent, WebSearchTool, function_tool
@function_tool
def save_results(output):
db.insert({"output": output, "timestamp": datetime.time()})
return "File saved"
search_agent = Agent(
name="Search agent",
instructions="Hỗ trợ người dùng tìm kiếm trên internet và lưu kết quả nếu được yêu cầu.",
tools=[WebSearchTool(), save_results],
)
Cấu hình hướng dẫn
Hướng dẫn rõ ràng giảm thiểu sự mơ hồ, cải thiện quyết định của Agents và giảm lỗi trong quy trình.
Thực tiễn tốt nhất:
- Sử dụng tài liệu hiện có: Dựa trên quy trình vận hành, kịch bản hỗ trợ, hoặc tài liệu chính sách để tạo hướng dẫn thân thiện với LLM.
- Chia nhỏ tác vụ: Phân chia các bước nhỏ, rõ ràng để giảm thiểu mơ hồ.
- Xác định hành động cụ thể: Mỗi bước phải tương ứng với một hành động hoặc đầu ra rõ ràng.
- Xử lý trường hợp ngoại lệ: Dự đoán các tình huống bất ngờ và cung cấp hướng dẫn xử lý.
Ví dụ tạo hướng dẫn tự động:
Bạn là chuyên gia viết hướng dẫn cho Agents LLM. Chuyển đổi tài liệu trung tâm trợ giúp sau thành danh sách hướng dẫn rõ ràng, được đánh số. Đảm bảo không có sự mơ hồ và hướng dẫn được viết dưới dạng chỉ thị cho Agents. Tài liệu trung tâm trợ giúp là: {help_center_doc}
Điều phối (Orchestration)
Có hai loại mẫu điều phối:
- Hệ thống đơn Agents: Một mô hình với các công cụ và hướng dẫn thực hiện quy trình trong một vòng lặp.
- Hệ thống đa Agents: Quy trình được phân phối giữa nhiều Agents phối hợp.
Hệ thống đơn Agents
Một Agents duy nhất có thể xử lý nhiều tác vụ bằng cách thêm công cụ dần dần, giữ cho hệ thống dễ quản lý. Mỗi công cụ mới mở rộng khả năng mà không cần chuyển sang đa Agents.
Vòng lặp điều phối:
- Agents chạy trong một vòng lặp cho đến khi đạt điều kiện thoát (gọi công cụ cuối, trả về phản hồi không có công cụ, lỗi, hoặc đạt số lượt tối đa).
- Ví dụ sử dụng Agents SDK:
Agents.run(
agent,
[UserMessage("Thủ đô của Mỹ là gì?")]
)
Mẹo quản lý phức tạp: Sử dụng mẫu lời nhắc (prompt template) thay vì nhiều lời nhắc riêng lẻ. Ví dụ:
Bạn là nhân viên tổng đài. Bạn đang tương tác với {user_first_name}, người đã là thành viên trong {user_tenure}. Các phàn nàn phổ biến của người dùng là về {user_complaint_categories}. Chào hỏi người dùng, cảm ơn họ vì là khách hàng trung thành và trả lời mọi câu hỏi của họ!
Khi nào cần đa Agents?
Chỉ chuyển sang đa Agents khi Agents đơn không đáp ứng được:
- Logic phức tạp: Lời nhắc có quá nhiều điều kiện, khó mở rộng.
- Quá tải công cụ: Nhiều công cụ tương tự hoặc chồng chéo gây nhầm lẫn.
Hệ thống đa Agents
Có hai mẫu chính:
- Mẫu quản lý (Manager): Một Agents trung tâm điều phối các Agents chuyên biệt thông qua gọi công cụ.
- Mẫu phi tập trung (Decentralized): Các Agents ngang hàng, chuyển giao nhiệm vụ cho nhau.
Mẫu quản lý
Agents quản lý gọi các Agents chuyên biệt để xử lý nhiệm vụ, giữ ngữ cảnh và tổng hợp kết quả. Ví dụ:
manager_agent = Agent(
name="manager_agent",
instructions="Bạn là Agents dịch thuật. Sử dụng các công cụ để dịch khi được yêu cầu.",
tools=[
spanish_agent.as_tool(tool_name="translate_to_spanish", tool_description="Dịch sang tiếng Tây Ban Nha"),
french_agent.as_tool(tool_name="translate_to_french", tool_description="Dịch sang tiếng Pháp"),
italian_agent.as_tool(tool_name="translate_to_italian", tool_description="Dịch sang tiếng Ý"),
],
)
Mẫu phi tập trung
Các Agents chuyển giao quyền điều khiển cho nhau. Ví dụ trong dịch vụ khách hàng:
triage_agent = Agent(
name="Triage Agent",
instructions="Bạn là điểm tiếp xúc đầu tiên, đánh giá câu hỏi của khách hàng và chuyển đến Agents chuyên biệt.",
handoffs=[technical_support_agent, sales_assistant_agent, order_management_agent],
)
await Runner.run(
triage_agent,
input("Vui lòng cung cấp cập nhật về thời gian giao hàng cho đơn hàng gần đây của chúng tôi?")
)
Rào chắn (Guardrails)
Rào chắn giúp quản lý rủi ro về quyền riêng tư dữ liệu và danh tiếng. Chúng cần được kết hợp với xác thực, kiểm soát truy cập và các biện pháp bảo mật tiêu chuẩn.
Các loại rào chắn:
- Bộ phân loại tính liên quan: Đảm bảo phản hồi trong phạm vi mong muốn.
- Bộ phân loại an toàn: Phát hiện các đầu vào không an toàn (jailbreak, tiêm lời nhắc).
- Bộ lọc PII: Ngăn chặn rò rỉ thông tin cá nhân.
- Kiểm duyệt: Loại bỏ nội dung độc hại (phát ngôn thù địch, quấy rối).
- Rào chắn công cụ: Đánh giá rủi ro của công cụ (thấp, trung bình, cao) để kích hoạt kiểm tra hoặc chuyển giao cho con người.
- Bảo vệ dựa trên quy tắc: Bộ lọc đơn giản như danh sách chặn, giới hạn độ dài đầu vào.
- Xác thực đầu ra: Đảm bảo phản hồi phù hợp với giá trị thương hiệu.
Xây dựng rào chắn:
- Tập trung vào quyền riêng tư dữ liệu và an toàn nội dung.
- Thêm rào chắn dựa trên các trường hợp thực tế.
- Tối ưu hóa cả bảo mật và trải nghiệm người dùng.
Ví dụ mã:
from agents import Agent, GuardrailFunctionOutput, Guardrail
@input_guardrail
async def churn_detection_tripwire(ctx, agent, input):
result = await Runner.run(churn_detector, agent, input, context=ctx.context)
return GuardrailFunctionOutput(
output_info=result.final_output,
tripwire_triggered=result.final_output.is_churn_risk,
)
customer_support_agent = Agent(
name="Customer support agent",
instructions="Bạn là Agents hỗ trợ khách hàng.",
input_guardrails=[Guardrail(guardrail_function=churn_detection_tripwire)],
)
Can thiệp của con người:
- Ngưỡng thất bại: Chuyển giao cho con người nếu Agents vượt quá giới hạn thử lại.
- Hành động rủi ro cao: Yêu cầu giám sát con người cho các hành động nhạy cảm.
Kết luận
Agents mở ra một kỷ nguyên mới trong tự động hóa quy trình, với khả năng lý luận qua sự mơ hồ, thực hiện hành động qua công cụ và xử lý các tác vụ đa bước. Để xây dựng Agents đáng tin cậy:
- Bắt đầu với nền tảng vững chắc: mô hình mạnh, công cụ rõ ràng, hướng dẫn chi tiết.
- Sử dụng mẫu điều phối phù hợp, bắt đầu từ đơn Agents và mở rộng khi cần.
- Áp dụng rào chắn ở mọi giai đoạn để đảm bảo an toàn và ổn định.
Hãy bắt đầu nhỏ, xác thực với người dùng thực tế và phát triển dần khả năng. Với cách tiếp cận đúng, Agents có thể mang lại giá trị kinh doanh thực sự, tự động hóa toàn bộ quy trình với sự thông minh và linh hoạt.
Nếu bạn đang khám phá Agents, hãy liên hệ với đội ngũ hỗ trợ để nhận hướng dẫn và trợ giúp thực tế.
Tài nguyên bổ sung
- Nền tảng API
- OpenAI cho Doanh nghiệp
- Câu chuyện OpenAI
- ChatGPT Enterprise
- OpenAI và An toàn
- Tài liệu dành cho Nhà phát triển
OpenAI là công ty nghiên cứu và triển khai AI với sứ mệnh đảm bảo trí tuệ nhân tạo tổng quát mang lại lợi ích cho toàn nhân loại.