import { Alert } from '@/components/mdx/alert';
Tool Use — Khi AI Biết "Dùng Tay" Làm Việc
TL;DR: LLM chỉ có "não" — không có "tay". Tool cho phép AI gọi external functions: query database, gửi email, gọi API, đọc file. Không có tool, AI chỉ nói suông. Có tool, AI làm việc thật.
Tại Sao AI Cần Tool?
LLM standalone chỉ có thể làm 1 việc: sinh ra text.
User: "Doanh thu tháng 3 là bao nhiêu?"
LLM (không có tool): "Tôi không có access vào database của bạn."
User: "Gửi email cho khách hàng A"
LLM (không có tool): "Tôi không thể gửi email."
LLM không thể:
- ❌ Query database
- ❌ Gửi email/SMS
- ❌ Gọi API
- ❌ Đọc/ghi file trên máy bạn
- ❌ Search Google real-time
- ❌ Chạy code
ℹ️ Info: Tương tự: LLM giống như một giáo sư biết tất cả lý thuyết — nhưng không có tay chân. Tool là "tay chân" để giáo sư đó làm việc thật.
Tool Là Gì?
Tool = function/program mà AI có thể gọi để làm việc cụ thể.
User hỏi: "Doanh thu tháng 3?"
↓
AI phân tích → cần query database
↓
AI gọi tool: query_db("SELECT SUM(total) FROM orders WHERE month = 3")
↓
Tool trả về: 150,000,000
↓
AI trả lời: "Doanh thu tháng 3 là 150 triệu VNĐ."
Workflow Của Tool Use
1. User input
"Doanh thu tháng 3 của shop Hà Nội?"
2. AI phân tích → quyết định dùng tool nào
"Cần query database → dùng query_db tool"
3. AI generate tool call
tool: "query_db"
args: {
sql: "SELECT SUM(total) FROM orders WHERE month = 3 AND shop = 'Ha Noi'",
db: "postgres"
}
4. Tool executes → trả kết quả
Result: { total: 150000000 }
5. AI generate response dựa trên result
"Doanh thu tháng 3 của shop Hà Nội là 150 triệu VNĐ."
✅ Success: Key insight: AI không "chạy" tool — AI chỉ generate tool call (JSON). Hệ thống bên ngoài execute tool và trả kết quả về cho AI.
Các Loại Tool Phổ Biến
1. Web Search
AI tự search Google/DuckDuckKo để lấy thông tin real-time.
User: "Giá Bitcoin hôm nay?"
AI → tool: web_search("Bitcoin price today")
Tool → "Bitcoin: $67,234"
AI → "Giá Bitcoin hiện tại là $67,234"
2. Code Interpreter
AI viết + chạy code trong sandbox.
User: "Phân tích file CSV này, vẽ chart"
AI → viết Python code → execute trong sandbox
AI → trả về chart + analysis
3. API Call
AI gọi REST API để tương tác với hệ thống.
User: "Gửi tin nhắn Zalo cho khách hàng A"
AI → tool: call_api({
url: "https://api.zalo.me/v2/zns",
method: "POST",
body: { to: "090xxx", template: "order_confirm", params: {...} }
})
Tool → Zalo API gửi tin nhắn → success
AI → "Đã gửi tin nhắn thành công"
4. File Read/Write
AI đọc/ghi file trên máy bạn.
User: "Đọc file config.json và sửa port thành 8080"
AI → tool: read_file("config.json")
AI → tool: write_file("config.json", modified_content)
AI → "Đã update port thành 8080"
5. Database Query
AI chạy SQL query.
User: "Top 10 khách hàng chi tiêu nhiều nhất"
AI → tool: run_sql("SELECT name, SUM(total) FROM orders GROUP BY name ORDER BY SUM(total) DESC LIMIT 10")
Tool → trả về 10 records
AI → present thành bảng
6. MCP Server (nâng cao)
AI kết nối với hệ thống qua MCP protocol.
User: "Lấy danh sách đơn hàng từ Lark Base"
AI → tool: mcp_call({
server: "lark-mcp",
method: "list_records",
params: { app_token: "...", table_id: "..." }
})
Tool → Lark Base API → trả về records
AI → present danh sách đơn hàng
Tool Use trong Công Việc Tại Diginno
| Task | Tool dùng | Mô tả |
|---|---|---|
| Sync đơn POS → Lark | API Call | Gọi Pancake POS API + Lark Bitable API |
| Query doanh thu | Database Query | PostgreSQL query qua MCP |
| Gửi ZNS notification | API Call | Zalo ZNS API |
| Phân tích data khách hàng | Code Interpreter | Python pandas trong sandbox |
| Generate contract | File Read/Write | Read template → fill data → write PDF |
| Research công nghệ mới | Web Search | Search docs, GitHub, Reddit |
Tool Calling — Cách AI "Gọi" Tool
AI không trực tiếp gọi tool. Nó generate JSON mô tả tool call, rồi hệ thống execute.
Ví dụ tool call JSON:
{
"tool_calls": [
{
"id": "call_abc123",
"type": "function",
"function": {
"name": "query_database",
"arguments": "{\"sql\": \"SELECT COUNT(*) FROM orders\", \"db\": \"postgres\"}"
}
}
]
}
Hệ thống nhận JSON này → execute query_database → trả kết quả → AI sinh response.
⚠️ Warning: Lưu ý quan trọng: AI có thể generate tool call sai — gọi wrong tool, wrong parameters, hoặc SQL injection. Luôn validate tool calls trước khi execute, đặc biệt với database queries.
Multi-Tool Use — AI Dùng Nhiều Tool
AI có thể chain nhiều tools cho 1 task phức tạp:
User: "Phân tích doanh thu Q1 và gửi báo cáo cho sếp"
Step 1: AI → query_db("SELECT * FROM orders WHERE Q1")
Step 2: AI → code_interpreter("pandas analysis + matplotlib chart")
Step 3: AI → generate_pdf(report_content)
Step 4: AI → send_email({ to: "boss@diginno.net", attachment: "Q1_report.pdf" })
→ 4 tools được gọi tuần tự
Bài Tập Thực Hành
Task 1: Identify tools
Cho các task sau, identify tool nào AI cần dùng:
- "Lấy thời tiết Hà Nội hôm nay"
- "Gửi Slack message cho team khi có đơn mới"
- "Phân tích sentiment của 1000 reviews"
- "Sync dữ liệu từ Google Sheets vào PostgreSQL"
Task 2: Design tool call
Viết tool call JSON cho task: "Query đơn hàng của khách hàng có email 'nam@diginno.net'"
-- Gợi ý: SELECT * FROM orders WHERE customer_email = 'nam@diginno.net'
Task 3: Multi-tool workflow
Design workflow cho task: "Lấy data từ Lark Base → phân tích → generate chart → gửi email báo cáo"
List các tools cần dùng theo thứ tự.
Tóm Tắt
| Khái niệm | Nội dung |
|---|---|
| Tool | Function/program AI gọi để làm việc thật |
| Không có tool | AI chỉ sinh text — không làm gì được |
| Có tool | AI query DB, gọi API, gửi email, search web |
| Tool call | AI generate JSON → hệ thống execute → trả result |
| Multi-tool | AI chain nhiều tools cho task phức tạp |
| Rủi ro | AI generate wrong tool call → cần validation |
| Key takeaway | Tool biến AI từ "não nói suông" thành "người làm việc thật" |
Bài Tiếp Theo
→ Bài 6: MCP — Cầu Nối AI Với Thế Giới
← Bài 4: Prompt Engineering — Nghệ Thuật Ra Lệnh Cho AI
Liên hệ tư vấn
- Hotline: 0816226086
- Email: contact@diginno.net
- Website: diginno.net
Bài viết hữu ích?
Chia sẻ để nhiều người biết đến!
>_ LLM-Friendly Copy
Copy as Markdown to use with ChatGPT, Claude, or other AI tools