Bỏ qua tới nội dung
Bài 6/11 · AI Agent cho người mới bắt đầu (Microsoft)

Xây dựng AI agent đáng tin cậy

Khung system message để xây agent an toàn, các mối đe doạ thường gặp với AI agent cùng cách giảm thiểu, và cơ chế human-in-the-loop.

Cơ bản@shine190411 phút đọc

Bài này hướng dẫn cách xây và triển khai AI agent an toàn, hiệu quả: từ cách thiết kế system message, nhận diện các mối đe doạ, đến việc đưa con người vào vòng lặp.

Video của bài: Trustworthy AI Agents.

Giới thiệu

Bài này đề cập:

  • Cách xây và triển khai AI agent an toàn và hiệu quả
  • Các lưu ý bảo mật quan trọng khi phát triển AI agent
  • Cách giữ quyền riêng tư của dữ liệu và người dùng khi phát triển AI agent

Mục tiêu học tập

Sau bài này, bạn sẽ biết cách:

  • Nhận diện và giảm thiểu rủi ro khi tạo AI agent.
  • Áp dụng các biện pháp bảo mật để đảm bảo dữ liệu và quyền truy cập được quản lý đúng.
  • Tạo AI agent giữ được quyền riêng tư dữ liệu và mang lại trải nghiệm người dùng chất lượng.

An toàn

Trước hết, chúng ta hãy xem cách xây ứng dụng agentic an toàn. An toàn nghĩa là AI agent hoạt động đúng như thiết kế. Là người xây ứng dụng agentic, chúng ta có các phương pháp và tool để tối đa hoá sự an toàn.

Xây dựng khung system message

Nếu đã từng xây ứng dụng AI bằng Large Language Model (LLM), bạn biết tầm quan trọng của việc thiết kế một system prompt hay system message vững chắc. Các prompt này đặt ra quy tắc tổng quát, chỉ dẫn và hướng dẫn cho cách LLM tương tác với người dùng và dữ liệu.

Với AI agent, system prompt càng quan trọng hơn vì agent cần chỉ dẫn rất cụ thể để hoàn thành các tác vụ chúng ta thiết kế cho chúng.

Để tạo system prompt dễ mở rộng, chúng ta có thể dùng một khung system message để xây một hoặc nhiều agent trong ứng dụng:

Xây dựng khung system message

Bước 1: tạo meta system message

Meta prompt sẽ được LLM dùng để sinh system prompt cho các agent chúng ta tạo. Chúng ta thiết kế nó như một template để có thể tạo nhiều agent hiệu quả khi cần.

Đây là ví dụ một meta system message chúng ta đưa cho LLM:

plaintext
You are an expert at creating AI agent assistants. 
You will be provided a company name, role, responsibilities and other
information that you will use to provide a system prompt for.
To create the system prompt, be descriptive as possible and provide a structure that a system using an LLM can better understand the role and responsibilities of the AI assistant. 

Bước 2: tạo prompt cơ bản

Bước tiếp theo là tạo một prompt cơ bản mô tả AI agent. Bạn nên nêu vai trò của agent, các tác vụ agent sẽ làm và mọi trách nhiệm khác của agent.

Đây là ví dụ:

plaintext
You are a travel agent for Contoso Travel that is great at booking flights for customers. To help customers you can perform the following tasks: lookup available flights, book flights, ask for preferences in seating and times for flights, cancel any previously booked flights and alert customers on any delays or cancellations of flights.  

Bước 3: đưa system message cơ bản cho LLM

Giờ chúng ta có thể tối ưu system message này bằng cách đưa meta system message làm system message, kèm system message cơ bản của chúng ta.

Kết quả là một system message được thiết kế tốt hơn để dẫn dắt AI agent:

markdown
**Company Name:** Contoso Travel  
**Role:** Travel Agent Assistant

**Objective:**  
You are an AI-powered travel agent assistant for Contoso Travel, specializing in booking flights and providing exceptional customer service. Your main goal is to assist customers in finding, booking, and managing their flights, all while ensuring that their preferences and needs are met efficiently.

**Key Responsibilities:**

1. **Flight Lookup:**
    
    - Assist customers in searching for available flights based on their specified destination, dates, and any other relevant preferences.
    - Provide a list of options, including flight times, airlines, layovers, and pricing.
2. **Flight Booking:**
    
    - Facilitate the booking of flights for customers, ensuring that all details are correctly entered into the system.
    - Confirm bookings and provide customers with their itinerary, including confirmation numbers and any other pertinent information.
3. **Customer Preference Inquiry:**
    
    - Actively ask customers for their preferences regarding seating (e.g., aisle, window, extra legroom) and preferred times for flights (e.g., morning, afternoon, evening).
    - Record these preferences for future reference and tailor suggestions accordingly.
4. **Flight Cancellation:**
    
    - Assist customers in canceling previously booked flights if needed, following company policies and procedures.
    - Notify customers of any necessary refunds or additional steps that may be required for cancellations.
5. **Flight Monitoring:**
    
    - Monitor the status of booked flights and alert customers in real-time about any delays, cancellations, or changes to their flight schedule.
    - Provide updates through preferred communication channels (e.g., email, SMS) as needed.

**Tone and Style:**

- Maintain a friendly, professional, and approachable demeanor in all interactions with customers.
- Ensure that all communication is clear, informative, and tailored to the customer's specific needs and inquiries.

**User Interaction Instructions:**

- Respond to customer queries promptly and accurately.
- Use a conversational style while ensuring professionalism.
- Prioritize customer satisfaction by being attentive, empathetic, and proactive in all assistance provided.

**Additional Notes:**

- Stay updated on any changes to airline policies, travel restrictions, and other relevant information that could impact flight bookings and customer experience.
- Use clear and concise language to explain options and processes, avoiding jargon where possible for better customer understanding.

This AI assistant is designed to streamline the flight booking process for customers of Contoso Travel, ensuring that all their travel needs are met efficiently and effectively.

Bước 4: lặp và cải thiện

Giá trị của khung system message này là giúp việc tạo system message cho nhiều agent dễ mở rộng hơn, đồng thời cải thiện system message theo thời gian. Hiếm khi bạn có được một system message chạy đúng ngay lần đầu cho toàn bộ trường hợp sử dụng. Việc có thể chỉnh sửa, cải thiện nhỏ bằng cách thay đổi system message cơ bản rồi chạy lại qua hệ thống cho phép bạn so sánh và đánh giá kết quả.

Hiểu về các mối đe doạ

Để xây AI agent đáng tin cậy, cần hiểu và giảm thiểu các rủi ro, mối đe doạ với agent. Chúng ta hãy xem một vài trong số các mối đe doạ với AI agent và cách lập kế hoạch, chuẩn bị tốt hơn.

Hiểu về các mối đe doạ

Tác vụ và chỉ dẫn

Mô tả: kẻ tấn công cố thay đổi chỉ dẫn hoặc mục tiêu của AI agent qua prompt hoặc thao túng đầu vào.

Giảm thiểu: thực hiện kiểm tra hợp lệ và bộ lọc đầu vào để phát hiện các prompt có thể nguy hiểm trước khi AI agent xử lý. Vì các cuộc tấn công này thường cần tương tác nhiều lần với agent, giới hạn số lượt trong một cuộc hội thoại là một cách khác để ngăn chúng.

Truy cập hệ thống trọng yếu

Mô tả: nếu AI agent có quyền truy cập các hệ thống và dịch vụ lưu dữ liệu nhạy cảm, kẻ tấn công có thể xâm phạm kênh giao tiếp giữa agent và các dịch vụ này. Đó có thể là tấn công trực tiếp hoặc gián tiếp tìm cách lấy thông tin về các hệ thống này qua agent.

Giảm thiểu: AI agent chỉ nên có quyền truy cập hệ thống khi thật sự cần, để ngăn loại tấn công này. Giao tiếp giữa agent và hệ thống cũng cần được bảo mật. Áp dụng xác thực và kiểm soát truy cập là một cách khác để bảo vệ thông tin này.

Quá tải tài nguyên và dịch vụ

Mô tả: AI agent có thể truy cập nhiều tool và dịch vụ để hoàn thành tác vụ. Kẻ tấn công có thể lợi dụng khả năng này để tấn công các dịch vụ đó bằng cách gửi lượng lớn yêu cầu qua AI agent, có thể gây sập hệ thống hoặc chi phí cao.

Giảm thiểu: áp dụng chính sách giới hạn số yêu cầu mà AI agent có thể gửi tới một dịch vụ. Giới hạn số lượt hội thoại và số yêu cầu tới AI agent là một cách khác để ngăn loại tấn công này.

Đầu độc cơ sở tri thức

Mô tả: loại tấn công này không nhắm trực tiếp vào AI agent mà nhắm vào cơ sở tri thức và các dịch vụ khác mà agent sẽ dùng. Nó có thể làm hỏng dữ liệu hoặc thông tin agent dùng để hoàn thành tác vụ, dẫn đến phản hồi thiên lệch hoặc ngoài ý muốn cho người dùng.

Giảm thiểu: thường xuyên kiểm tra dữ liệu mà AI agent sẽ dùng trong các quy trình của nó. Đảm bảo quyền truy cập dữ liệu này được bảo mật và chỉ người đáng tin mới được thay đổi, để tránh loại tấn công này.

Lỗi dây chuyền

Mô tả: AI agent truy cập nhiều tool và dịch vụ để hoàn thành tác vụ. Lỗi do kẻ tấn công gây ra có thể làm hỏng các hệ thống khác mà agent kết nối, khiến cuộc tấn công lan rộng và khó khắc phục hơn.

Giảm thiểu: một cách tránh điều này là cho AI agent hoạt động trong môi trường giới hạn, như thực hiện tác vụ trong một Docker container, để ngăn tấn công trực tiếp vào hệ thống. Tạo cơ chế dự phòng và logic thử lại khi một số hệ thống trả về lỗi là một cách khác để ngăn sự cố lan ra cả hệ thống.

Human-in-the-loop

Một cách hiệu quả khác để xây hệ thống AI agent đáng tin cậy là dùng human-in-the-loop (con người trong vòng lặp). Cách này tạo ra một luồng mà người dùng có thể đưa phản hồi cho agent trong lúc chạy. Về bản chất, người dùng đóng vai một agent trong hệ đa agent, bằng cách phê duyệt hoặc dừng tiến trình đang chạy.

Con người trong vòng lặp

Đây là đoạn code dùng Microsoft Agent Framework cho thấy cách cài đặt khái niệm này:

python
import os
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential

# Create the provider with human-in-the-loop approval
provider = FoundryChatClient(
    project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
    model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
    credential=AzureCliCredential(),
)

# Create the agent with a human approval step
response = provider.create_response(
    input="Write a 4-line poem about the ocean.",
    instructions="You are a helpful assistant. Ask for user approval before finalizing.",
)

# The user can review and approve the response
print(response.output_text)
user_input = input("Do you approve? (APPROVE/REJECT): ")
if user_input == "APPROVE":
    print("Response approved.")
else:
    print("Response rejected. Revising...")

Kết luận

Xây AI agent đáng tin cậy đòi hỏi thiết kế cẩn thận, biện pháp bảo mật vững chắc và lặp cải tiến liên tục. Bằng cách áp dụng hệ thống meta prompt có cấu trúc, hiểu các mối đe doạ tiềm ẩn và áp dụng chiến lược giảm thiểu, nhà phát triển có thể tạo AI agent vừa an toàn vừa hiệu quả. Ngoài ra, cách tiếp cận human-in-the-loop giúp AI agent luôn bám sát nhu cầu người dùng trong khi giảm thiểu rủi ro. Khi AI tiếp tục phát triển, giữ thế chủ động về bảo mật, quyền riêng tư và đạo đức sẽ là chìa khoá để xây dựng niềm tin và độ tin cậy cho các hệ thống dựa trên AI.

Code mẫu

Còn câu hỏi về xây dựng AI agent đáng tin cậy?

Tham gia Microsoft Foundry Discord để gặp gỡ những người cùng học, dự các buổi office hours và được giải đáp thắc mắc về AI agent.

Tài liệu bổ sung

Nguồn