🇻🇳 This page hasn't been translated yet — showing the Vietnamese version.
ky-thuat Intermediate
Function Calling (Tool Use) là gì?
Khả năng cho LLM gọi hàm/API bên ngoài để truy xuất dữ liệu thật, không chỉ sinh text từ memory.
Updated: May 2, 2026 · 2 min read
Function Calling (còn gọi Tool Use) là khả năng cho LLM “gọi” các hàm hoặc API bên ngoài để lấy dữ liệu hoặc thực hiện hành động trong thế giới thực — thay vì chỉ trả lời từ kiến thức huấn luyện.
Vấn đề function calling giải quyết
LLM thuần text có 3 hạn chế:
- Không biết dữ liệu mới (sau training cutoff)
- Không biết dữ liệu riêng của bạn (database, file)
- Không thể HÀNH ĐỘNG (gửi email, đặt đơn hàng)
Function calling là cây cầu nối LLM với code thật.
Cách hoạt động
User: "Thời tiết Hà Nội hôm nay thế nào?"
↓
LLM nhận thấy: cần dữ liệu thật → gọi function
↓
LLM trả: { "function": "get_weather", "args": { "city": "Hanoi" } }
↓
App của bạn chạy function thật → kết quả: "32°C, nắng nhẹ"
↓
Đưa kết quả trở lại LLM
↓
LLM trả lời tự nhiên: "Hà Nội hôm nay nắng nhẹ, 32°C..."
Khai báo function (ví dụ Claude)
tools = [
{
"name": "get_weather",
"description": "Lấy thời tiết hiện tại của một thành phố",
"input_schema": {
"type": "object",
"properties": {
"city": { "type": "string", "description": "Tên thành phố" }
},
"required": ["city"]
}
}
]
response = client.messages.create(
model="claude-sonnet-4-7",
tools=tools,
messages=[{ "role": "user", "content": "Thời tiết HN?" }]
)
LLM sẽ tự quyết định khi nào gọi tool, khi nào trả lời thẳng.
Function calling vs MCP
- Function calling: API call trong code của bạn. Linh hoạt, control hoàn toàn.
- MCP: chuẩn hóa kết nối tool đa app. Tốt khi muốn share tool integration.
→ MCP dựa trên ý tưởng function calling, nhưng theo giao thức chung.
Use case phổ biến
- Search realtime: kết nối Brave/Google Search
- Code execution: chạy Python để tính toán chính xác
- Database query: SQL từ câu hỏi tự nhiên
- Email/Slack: agent gửi message
- Calendar: đặt lịch họp
Lưu ý khi build
- LLM có thể gọi tool SAI hoặc với tham số sai → validate ở server
- Yêu cầu user xác nhận với action có hậu quả (gửi email, xóa file)
- Limit số lần gọi để tránh loop vô hạn
Liên quan
Tags
#function-calling#tool-use#agent