Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Một agent không có công cụ chỉ là một chatbot với prompt hệ thống hào nhoáng. Công cụ là thứ làm cho agent trở nên có tính chủ động - khả năng tìm kiếm, tính toán, giao tiếp và sáng tạo.
🔄 Tóm tắt nhanh: Trong bài học trước, bạn đã học mô hình ReAct: Suy nghĩ → Hành động → Quan sát. Bước "Hành động" là sử dụng công cụ. Bây giờ, bạn sẽ tìm hiểu chính xác cách thức hoạt động của nó - các giao thức, định dạng và mô hình kết nối AI với thế giới thực.
Gọi hàm là cơ chế sử dụng công cụ phổ biến nhất. Đây là chu trình đầy đủ:
Bạn mô tả công cụ cho LLM bằng cách sử dụng JSON schema:
{
"name": "get_weather",
"description": "Get current weather for a city. Use when the user asks about weather conditions, temperature, or forecasts.",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "City name, e.g. 'San Francisco'"
},
"units": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"default": "celsius"
}
},
"required": ["city"]
}
}
Khi người dùng hỏi "Thời tiết ở Tokyo như thế nào?", LLM sẽ trả về:
{
"tool_call": {
"name": "get_weather",
"arguments": {"city": "Tokyo", "units": "celsius"}
}
}
LLM không thực thi công cụ - nó chỉ yêu cầu cuộc gọi. Code của bạn sẽ thực thi yêu cầu đó.
Code của bạn gọi API thời tiết thực tế và trả về kết quả cho LLM:
{
"tool_result": {
"temperature": 22,
"conditions": "partly cloudy",
"humidity": 65
}
}
LLM sử dụng kết quả từ công cụ để tạo ra câu trả lời bằng ngôn ngữ tự nhiên: "Hiện tại ở Tokyo trời 22°C và có mây rải rác, độ ẩm 65%".
✅ Kiểm tra nhanh: LLM nhận được kết quả từ công cụ cho biết "Lỗi: Đã vượt quá giới hạn tốc độ API". Liệu LLM có nên che giấu lỗi này và tự bịa ra câu trả lời không?
Câu trả lời: Tuyệt đối không. LLM nên minh bạch thông báo vấn đề: "Tôi không thể kiểm tra thời tiết hiện tại - dịch vụ tạm thời không khả dụng. Bạn có muốn tôi thử lại sau một lát không?" Việc che giấu lỗi dẫn đến dữ liệu không chính xác, làm mất lòng tin. Tính minh bạch về các lỗi là điều cần thiết cho các agent đáng tin cậy.
MCP là một tiêu chuẩn mở được tạo ra bởi Anthropic, chuẩn hóa cách các AI agent kết nối với những công cụ và nguồn dữ liệu bên ngoài. Hãy coi nó như USB-C dành cho AI.
Trước khi có MCP
Mọi sự tích hợp công cụ đều được tùy chỉnh:
Agent → Code tùy chỉnh → Slack API
Agent → Code tùy chỉnh khác → GitHub API
Agent → Thêm code tùy chỉnh → DatabaseVới MCP
Các công cụ cung cấp một giao diện chuẩn:
Agent → Giao thức MCP → Slack MCP Server
Agent → Giao thức MCP → GitHub MCP Server
Agent → Giao thức MCP → Database MCP ServerMột MCP server có thể cung cấp ba loại khả năng:
| Loại | Những gì nó cung cấp | Ví dụ |
Công cụ | Các hành động mà agent có thể thực hiện | "Tạo một vấn đề trên GitHub", "Gửi tin nhắn trên Slack" |
Tài nguyên | Dữ liệu mà agent có thể đọc | Nội dung file, bản ghi cơ sở dữ liệu, phản hồi API |
Prompt | Các prompt trong template cho các nhiệm vụ cụ thể | "Tóm tắt PR này", "Xem lại code này" |
Ví dụ, Claude Code kết nối với MCP server để truy cập file, duyệt web, truy vấn cơ sở dữ liệu, v.v... Khi bạn cấu hình MCP server, agent sẽ tự động phát hiện các công cụ có sẵn - không cần code tích hợp thủ công.
Đầu ra có cấu trúc đảm bảo rằng LLM tạo ra dữ liệu hợp lệ, có thể phân tích được - chứ không chỉ là văn bản tự do.
Vấn đề khi không có đầu ra có cấu trúc
Prompt: "Return the data as JSON"
LLM Output: "Sure! Here's the JSON:
```json
{\"name\": \"Tokyo\", \"population\": 13960000}
Bạn còn muốn biết thêm điều gì nữa không?
LLM đã bao bọc dữ liệu JSON trong văn bản giải thích và các vùng code. Trình phân tích cú pháp của bạn bị lỗi.
### Với đầu ra có cấu trúc
Bạn định nghĩa một schema, và LLM *bị giới hạn* chỉ xuất ra JSON hợp lệ phù hợp với schema đó:
```json
{
"schema": {
"type": "object",
"properties": {
"name": {"type": "string"},
"population": {"type": "integer"}
},
"required": ["name", "population"]
}
}Đầu ra (đảm bảo):
{"name": "Tokyo", "population": 13960000}
Không có lời mở đầu, không có hàng rào code, không có văn bản giải thích. Chỉ là JSON hợp lệ khớp với schema của bạn.
✅ Kiểm tra nhanh: Agent của bạn trích xuất chi tiết cuộc họp từ email và lưu trữ chúng trong API lịch. Nếu không có đầu ra có cấu trúc, 15% các trích xuất có lỗi định dạng gây ra sự cố tích hợp lịch. Với đầu ra có cấu trúc, tỷ lệ đó giảm xuống 0%. Tại sao điều này lại đặc biệt quan trọng đối với các agent so với chatbot?
Câu trả lời: Những agent truyền dữ liệu giữa các bước - lỗi định dạng ở bước 3 sẽ dẫn đến lỗi ở các bước 4, 5 và 6. Trong chatbot, người dùng sẽ đọc đầu ra và khắc phục các vấn đề về định dạng. Trong agent pipeline, không có người tham gia để phát hiện dữ liệu bị lỗi. Đầu ra có cấu trúc loại bỏ toàn bộ loại lỗi dây chuyền này.
Đối với các hành động phá hủy hoặc không thể đảo ngược, hãy yêu cầu xác nhận của người dùng:
Agent: "Tôi sắp xóa 47 file có đuôi *.tmp khỏi
máy chủ sản xuất. Tôi có nên tiếp tục không?"
User: "Có, cứ tiếp tục."
Agent: [thực hiện xóa]Đầu ra của công cụ này trở thành đầu vào của công cụ tiếp theo:
search("quarterly earnings report") →
read_file(result.url) →
extract_data(file_content, schema="financials") →
create_chart(data, type="bar")
Nếu công cụ chính bị lỗi, hãy thử một công cụ thay thế:
Primary: database_query("SELECT * FROM users WHERE...")
Fallback: search_api("/users?filter=...")
Last resort: ask_user("I couldn't access the database. Can you provide the user data?")
Viết định nghĩa công cụ (tên, mô tả, tham số) cho một tác vụ bạn thường xuyên thực hiện
Hãy nghĩ về các trường hợp lỗi: Điều gì xảy ra nếu công cụ bị lỗi? Công cụ dự phòng là gì?
Thiết kế một chuỗi ba công cụ, trong đó đầu ra của mỗi công cụ sẽ cung cấp dữ liệu cho công cụ tiếp theo.
Cơ chế cốt lõi là gọi hàm: Định nghĩa công cụ → LLM quyết định sử dụng nó → code của bạn được thực thi → LLM xử lý kết quả.
Mô tả công cụ rất quan trọng - mô tả mơ hồ dẫn đến việc lựa chọn công cụ sai.
MCP chuẩn hóa việc tích hợp công cụ bằng một giao thức mở, loại bỏ code tích hợp tùy chỉnh cho mỗi công cụ.
Đầu ra có cấu trúc đảm bảo định dạng dữ liệu hợp lệ, ngăn ngừa các lỗi dây chuyền trong những agent pipeline.
Các mẫu thiết kế (xác nhận, chuỗi, dự phòng) giúp việc sử dụng công cụ trở nên mạnh mẽ trong môi trường sản xuất.
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Hướng dẫn tạo ảnh tổng kết năm học bằng ChatGPT
Cách viết prompt tạo ảnh AI chuẩn với công thức PICTURE
Hướng dẫn tạo file PDF bài tập trên Gemini không lỗi font
Các mẫu thiết kế AI agent: ReAct, Reflection và Planning
Hướng dẫn tạo bảng tổng kết cuối năm trên ChatGPT
Sử dụng công cụ: Tăng thêm sức mạnh cho AI agent
Viết prompt hiệu quả với công thức CREATE (dùng cho mọi AI)
Hệ thống multi-agent: Nhóm cho các chuyên gia
Tổng hợp 20 prompt tạo poster livestream bán hàng bằng ChatGPT
Hướng dẫn tạo giấy khen thưởng học sinh cuối năm
Cách biến câu trả lời Gemini thành câu hỏi bằng Brisk
Cách xem nhân tướng học bằng ChatGPT
Cách chọn kiểu tóc phù hợp với gương mặt bằng ChatGPT
Cách thay đổi phong cách ảnh bằng AI trong Messenger
AI Agent và GPT tùy chỉnh trong tự động hóa doanh nghiệp
Prompt tạo giấy khen học sinh theo phong cách khác nhau
Prompt tạo ảnh Tổng kết năm học bằng ChatGPT
Prompt tạo ảnh tranh vẽ dễ thương, tranh vẽ con nít AI
Prompt tự động hóa soạn giáo án với Claude AI
Hướng dẫn tạo ảnh đồng nhất nhân vật cho bài thơ bằng Qwen AI