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
Làm sạch và chuẩn bị dữ liệu bảng tính với AI
Sử dụng hàm VLOOKUP, INDEX/MATCH và các kỹ thuật tra cứu nâng cao với AI
Cách sử dụng Claude Cowork để tự động kiểm tra và cải thiện kỹ năng làm việc với AI
Cách chế độ Voice Mode của ChatGPT giúp bạn hoàn thiện một ý tưởng mới
Hướng dẫn dùng plugin Remotion trên ChatGPT tạo video
Pivot Table và tóm tắt dữ liệu bảng tính với AI
Hướng dẫn thiết kế logo động bằng LogoAI
TOP các khóa học AI miễn phí có cấp chứng chỉ đáng tham gia
7 cách ứng dụng Gemini giúp sinh viên học tập hiệu quả
12 mẹo viết prompt tốt hơn cho Claude
TOP khóa học NotebookLM bổ ích đáng tham gia
Hướng dẫn dùng Hồ sơ doanh nghiệp Google trên Gemini
Cách tạo sổ ghi chú mới ngay trong Gemini
Cách viết hướng dẫn hiệu quả cho GPT tùy chỉnh
Các khả năng và thiết kế hội thoại khi xây dựng GPT tùy chỉnh
Các khả năng và thiết kế hội thoại khi xây dựng GPT tùy chỉnh
GPT Actions: Kết nối với các dịch vụ bên ngoài
TOP những cách tận dụng AI để tạo bài đăng trên mạng xã hội
TOP cách dùng Agentic AI hiệu quả trong thương mại điện tử và bán lẻ
Cách tạo video AI bằng Seedance 2.5 trên Dola AI
Cách lập trình chuyên nghiệp hơn, dễ dàng hơn với tính năng Tệp trên Grok
Hướng dẫn ngắt kết nối ứng dụng trên ChatGPT
Công thức tính diện tích hình Elip
Hướng dẫn cài đặt và sử dụng n8n trên Windows 11
8 ứng dụng Microsoft Store miễn phí giúp Windows tốt hơ
Hướng dẫn tạo đoạn hội thoại cho topic trên Twee
Bức tranh tổng quan về hỗ trợ khách hàng tích hợp AI
Đừng chia sẻ ảnh cho đến khi bạn chạy kiểm tra siêu dữ liệu này!
6 cách mở Computer/System Properties trong Windows 10
Cách sửa lỗi There Are Currently No Power Options Available Windows