Trong thế giới công nghệ hiện đại, việc cá nhân hóa các công cụ AI để đáp ứng nhu cầu riêng của doanh nghiệp là một lợi thế cạnh tranh lớn. Các agent khai báo (declarative agents) trong Microsoft 365 Copilot cho phép bạn làm điều đó, và khi kết hợp với API plugin, chúng trở nên mạnh mẽ hơn bao giờ hết. Bằng cách cho phép agent tương tác và truy vấn dữ liệu của tổ chức thông qua API, bạn có thể tự động hóa các quy trình phức tạp và nâng cao hiệu suất làm việc.
Tuy nhiên, để agent hoạt động chính xác và hiệu quả, việc viết “instructions” (chỉ dẫn) rõ ràng là yếu tố then chốt. Bài viết này sẽ đi sâu vào kiến trúc của agent và cung cấp các phương pháp hay nhất (best practices) để viết chỉ dẫn tối ưu khi tích hợp API plugin.
Hiểu Rõ Kiến Trúc Của Declarative Agents với API Plugin
Trước khi đi vào chi tiết cách viết chỉ dẫn, điều quan trọng là phải hiểu các thành phần cấu thành một agent. Việc nắm vững kiến trúc sẽ giúp bạn thiết kế agent một cách hiệu quả hơn.
Một agent khai báo gọi API plugin bao gồm các thành phần chính sau:
- Application manifest: Mô tả cấu hình ứng dụng và tham chiếu đến manifest của agent khai báo.
- Declarative agent manifest: Định nghĩa cấu hình của agent, bao gồm chỉ dẫn (instructions), khả năng (capabilities), các câu bắt đầu hội thoại (conversation starters) và hành động (actions). Tệp này tham chiếu đến manifest của plugin.
- Plugin manifest: Mô tả cấu hình của plugin, bao gồm các hàm có sẵn và tham chiếu đến đặc tả OpenAPI.
- OpenAPI specification: Cung cấp định nghĩa chi tiết về các điểm cuối (endpoint) của API, bao gồm đường dẫn, tham số, định dạng yêu cầu và phản hồi, và phương thức xác thực.
Các tệp này kết hợp với nhau để xác định hành vi của agent và cách nó tương tác với API nền tảng. Trong đó, một điểm kỹ thuật quan trọng là mỗi hàm trong plugin manifest phải được ánh xạ tới một operationId tương ứng trong đặc tả OpenAPI. Điều này đảm bảo rằng khi agent gọi một hàm (ví dụ: createTask), nó biết chính xác cần gọi endpoint API nào.

Ví dụ về ánh xạ hàm:
- Trong Plugin Manifest:
"functions": [
{
"name": "createTask",
"description": "Creates a new task in the specified task list."
}
]
- Trong Đặc tả OpenAPI:
paths:
/me/todo/lists/{listId}/tasks:
post:
operationId: createTask
summary: Create a new task
description: Creates a new task in the specified task list.
parameters:
Best Practices Khi Viết Instructions Cho Agent
Viết chỉ dẫn hiệu quả là yếu tố sống còn để đảm bảo agent hoạt động thành công. Dưới đây là những nguyên tắc bạn nên áp dụng.
1. Tránh Chỉ Dẫn Mơ Hồ hoặc Phủ Định Các chỉ dẫn mang tính đối lập hoặc phủ định có thể gây nhầm lẫn cho mô hình AI. Thay vào đó, hãy tập trung định nghĩa các trường hợp sử dụng hợp lệ bằng những ví dụ tích cực. Nếu cần phân biệt giữa truy vấn hợp lệ và không hợp lệ, hãy cung cấp tiêu chí và ví dụ rõ ràng để xác định phản hồi mong muốn của agent cho từng trường hợp.
2. Sử Dụng Ví Dụ Cụ Thể Ví dụ rõ ràng giúp định hướng hành vi của agent một cách hiệu quả.
- Người dùng nhập: What’s the weather in Prague?
- Agent gọi hàm: getWeather(location=”Prague”)
- Người dùng nhập: “Do I need an umbrella tomorrow?”
- Agent gọi hàm: getWeather(location=user_location, forecast=”tomorrow”)
3. Thiết Kế Cho Các Cuộc Hội Thoại Nhiều Lượt (Multi-turn Conversations) Khi tích hợp API plugin, hãy thiết kế chỉ dẫn để agent có thể xử lý các cuộc hội thoại kéo dài. Ví dụ, nếu một hàm yêu cầu nhiều tham số, hãy chỉ dẫn agent thu thập đủ tất cả thông tin cần thiết trước khi thực hiện lệnh gọi API. Điều này đảm bảo agent thu thập thông tin theo một trình tự logic và đầy đủ.
| Instructions for agent | Agent flow |
| If user asks about the weather:- Ask the user for location.- Ask the user for forecast day.- Ask the user for unit system.- Only call getWeather when you collect all the values. | User: “What is the weather?”
Agent: “What is your location?” User: “London” Agent: “Do you prefer the weather information in Metric or Imperial units?” User: “Metric” Agent: “Do you need the weather for today or forecast for tomorrow?” User: “Today” Agent: “I will check the weather for London for today” Agent calls: getWeather(location=”London”, forecast=”today”, system=”Metric”) |
4. Liên Tục Đánh Giá và Thử Nghiệm Hãy kiểm tra các chỉ dẫn trong nhiều kịch bản khác nhau để xác minh agent thực hiện các lệnh gọi hàm chính xác. Nếu bạn phát hiện agent gọi các hàm không mong muốn, hãy xem lại mô tả hàm trong đặc tả OpenAPI và làm rõ chỉ dẫn cho agent để cải thiện việc ánh xạ ý định.
Nâng Cao: Kỹ Thuật Chaining (Chuỗi) Các Lệnh Gọi Hàm
Chaining cho phép agent kết hợp nhiều hành động API trong một luồng liền mạch để thực hiện các tác vụ phức tạp hơn. Dưới đây là các mẫu chaining phổ biến.
1. Chaining: Dùng Output của Hàm Này Làm Input cho Hàm Khác Đây là kịch bản hữu ích khi kết quả của lệnh gọi API đầu tiên là cần thiết để thực hiện lệnh gọi thứ hai.
| Instructions for agent | Agent flow |
| To get the weather, always use the getWeather action, then create a task with the title “temperature in”, and add the location and temperature mentioned in the weather to the task title. | User: “Get the weather in Prague”
Agent: Calls *getWeather (location=”Prague”, forecast=”today”)* Agent: Uses the data from the first call to create a to-do task createTask (title =”{weather output}”) |
2. Chaining Dựa trên Lịch Sử Hội Thoại Agent sử dụng các phản hồi trước đó để xử lý các hành động tiếp theo, duy trì ngữ cảnh của cuộc trò chuyện.
| Instructions for agent | Agent flow |
| 1. When the user asks to list all to-do, call getTasks to retrieve the list of to-dos with title and ID.2. After listing the to-dos, if the user asks to delete a to-do, use the ID from the response to call deleteTask. | User: “Show all the to-dos in Tasks folder?”
Agent: Calls getTasks (folderId=”Tasks”) and displays all the to-dos with IDs. User: “Delete TaskMaster Pro to-do” Agent: Uses the information from the conversation history to find the ID for the to-do and deletes the to-do by calling deleteTask. |
3. Chaining với Nguồn Tri Thức SharePoint Kỹ thuật này cho phép agent kết hợp các nguồn tri thức (như SharePoint) và các hành động để thiết kế các quy trình làm việc phức tạp hơn.
| Instructions for agent | Agent flow |
| – To get project statuses, use Sharepoint knowledge ProjectDeadlines.- Always create a to-do for each project using status update for the title. | User: “Can you provide an update on the status of all projects?”
Agent: Pulls project status data from SharePoint and then uses createTask to generate a to-do task for each project. |
4. Chaining với Code Interpreter Bạn cũng có thể tích hợp các khả năng bổ sung như code interpreter để xử lý động các kết quả đầu ra của API, cho phép các quy trình làm việc nâng cao hơn.
| Instructions for agent | Agent flow |
| When the user asks to list all to-dos, call getTasks to retrieve the list of to-dos with title and ID, also plot the chart for the output. | User: “Retrieve all tasks in Tasks”
Agent: Calls the getTasks (folderId=”Tasks”) and displays all the to-dos with IDs. Agent: Calls code Interpreter to initiate the chart generation based on the output of the first call. |
Kết Luận
Việc xây dựng các agent khai báo với API plugin trong Microsoft 365 Copilot mở ra vô số cơ hội để tự động hóa và tùy chỉnh quy trình làm việc cho doanh nghiệp. Bằng cách áp dụng các phương pháp viết chỉ dẫn hiệu quả—từ việc sử dụng ví dụ rõ ràng, thiết kế cho hội thoại nhiều lượt, đến việc triển khai các kỹ thuật chaining nâng cao—bạn có thể đảm bảo agent của mình hoạt động một cách thông minh, chính xác và thực sự hữu ích. Hãy bắt đầu thử nghiệm và tinh chỉnh để khai thác tối đa sức mạnh của công cụ này.