Function calling (còn gọi là tool use) là khả năng của mô hình ngôn ngữ lớn trả về một yêu cầu gọi hàm có cấu trúc, gồm tên công cụ và tham số dạng JSON, thay vì chỉ trả lời bằng văn bản. Chính ứng dụng của bạn mới là bên thực thi hàm đó, ví dụ tra tồn kho, tạo đơn, gửi email, rồi đưa kết quả lại cho mô hình để nó viết câu trả lời cuối. Nhờ function calling, chatbot và AI agent kết nối được với dữ liệu thật và phần mềm doanh nghiệp, nhưng cần phân quyền và điểm duyệt của con người cho thao tác quan trọng.
Function calling là gì và khác gì chatbot thông thường
Function calling là cơ chế cho phép mô hình AI ‘nói’ với phần mềm của bạn rằng: hãy chạy hàm này với các tham số này. Mô hình không tự kết nối vào cơ sở dữ liệu, không tự bấm nút. Nó chỉ sinh ra một đoạn dữ liệu có cấu trúc, phần còn lại do ứng dụng xử lý.
Một chatbot thông thường chỉ dựa vào kiến thức đã học và nội dung trong cuộc trò chuyện. Hỏi ‘đơn hàng DH1024 giao chưa’ thì nó chỉ đoán hoặc xin lỗi vì không biết. Khi có function calling, mô hình nhận ra câu hỏi cần dữ liệu thật, trả về yêu cầu gọi công cụ tra_don_hang với tham số ma_don = DH1024. Ứng dụng gọi phần mềm bán hàng, lấy trạng thái, gửi lại cho mô hình để diễn đạt thành câu trả lời tự nhiên.
Tên gọi khác nhau, bản chất giống nhau
OpenAI dùng từ function calling, Anthropic gọi là tool use, Google Gemini cũng dùng function calling. Các giao thức như MCP chuẩn hóa cách mô tả và cung cấp công cụ cho nhiều ứng dụng AI. Dù tên khác, bản chất đều là: mô hình chọn công cụ, ứng dụng thực thi, kết quả quay lại mô hình.
Luồng hoạt động của function calling diễn ra thế nào
Một lượt gọi công cụ điển hình gồm năm bước:
- Khai báo công cụ: ứng dụng gửi cho mô hình danh sách công cụ, mỗi công cụ có tên, mô tả bằng lời và lược đồ tham số (JSON Schema).
- Người dùng đặt câu hỏi: ví dụ ‘đặt lịch bảo trì máy in cho chi nhánh Quận 7 sáng thứ Năm’.
- Mô hình quyết định: trả về yêu cầu gọi
tao_lich_henvới chi nhánh, ngày, buổi. Nếu thiếu thông tin, mô hình có thể hỏi lại người dùng. - Ứng dụng thực thi: kiểm tra tham số, kiểm tra quyền, gọi phần mềm lịch hoặc API, nhận kết quả.
- Trả kết quả cho mô hình: mô hình đọc kết quả và trả lời ‘Đã đặt lịch 9h thứ Năm, mã phiếu BT-332’.
Một câu hỏi có thể dẫn tới nhiều lượt gọi liên tiếp. AI agent thực chất là vòng lặp này chạy nhiều lần: gọi công cụ, xem kết quả, quyết định bước tiếp theo cho đến khi xong việc.
Mô tả công cụ thế nào để AI chọn đúng
Chất lượng function calling phụ thuộc rất nhiều vào cách bạn mô tả công cụ. Mô hình chỉ đọc tên, mô tả và lược đồ tham số để quyết định. Mô tả mơ hồ dẫn tới gọi sai hàm hoặc điền sai tham số.
- Tên rõ nghĩa, một việc một công cụ:
tra_ton_khotốt hơnxu_ly_kholàm đủ thứ. - Mô tả khi nào dùng và khi nào không: ‘Dùng để tra số lượng tồn theo mã sản phẩm. Không dùng để tra giá.’
- Ràng buộc tham số chặt: dùng kiểu dữ liệu, danh sách giá trị cho phép (enum), định dạng ngày rõ ràng.
- Ít công cụ nhưng đúng: đưa 50 công cụ vào một lượt làm mô hình dễ nhầm và tốn token. Nhóm công cụ theo tình huống.
- Kết quả trả về gọn: chỉ trả trường cần thiết, không đổ nguyên bảng dữ liệu vào ngữ cảnh.
Ví dụ mô tả tốt
tra_don_hang: Tra trạng thái giao hàng của một đơn theo mã đơn dạng DHxxxx. Trả về trạng thái, đơn vị vận chuyển, ngày dự kiến. Một dòng mô tả cụ thể như vậy giúp mô hình hiểu đúng phạm vi.
Doanh nghiệp nhỏ dùng function calling vào việc gì
Function calling là nền tảng cho hầu hết ứng dụng AI ‘làm được việc’ chứ không chỉ trò chuyện. Một số tình huống phổ biến với công ty 20–50 người hoặc cửa hàng:
| Bộ phận | Công cụ AI được gọi | Mức rủi ro |
|---|---|---|
| Chăm sóc khách hàng | Tra đơn, tra bảo hành, tạo phiếu hỗ trợ | Thấp đến trung bình |
| Bán hàng | Tra tồn kho, tạo báo giá nháp, ghi lead vào CRM | Trung bình |
| Kế toán | Đọc hóa đơn, tra công nợ, đối chiếu sổ phụ | Trung bình đến cao |
| Nhân sự | Tra số ngày phép, nộp đơn nghỉ | Trung bình |
| IT nội bộ | Reset mật khẩu, kiểm tra trạng thái máy in, mở ticket | Cao nếu có quyền quản trị |
Phân biệt function calling, structured output và MCP
Ba khái niệm này hay bị nhầm vì đều liên quan đến dữ liệu có cấu trúc.
- Structured output: ép mô hình trả về dữ liệu JSON đúng lược đồ, ví dụ trích xuất thông tin từ hóa đơn. Không có bước gọi công cụ, kết quả chính là sản phẩm cuối.
- Function calling: mô hình trả về yêu cầu gọi công cụ, ứng dụng thực thi, kết quả quay lại mô hình. Đây là vòng tương tác hai chiều.
- MCP (Model Context Protocol): giao thức mở để đóng gói công cụ và dữ liệu thành ‘máy chủ MCP’ mà nhiều ứng dụng AI dùng chung. MCP vẫn dựa trên cơ chế tool use bên dưới, nó chỉ chuẩn hóa cách kết nối.
Nói ngắn gọn: structured output trả lời câu hỏi ‘dữ liệu có dạng gì’, function calling trả lời ‘cần làm gì tiếp theo’, MCP trả lời ‘công cụ được cung cấp theo chuẩn nào’. Một hệ thống thực tế thường dùng cả ba.
Công cụ không cần lập trình
Nếu không có lập trình viên, các nền tảng như n8n, Make, Dify hay Flowise cho phép khai báo công cụ bằng giao diện kéo thả. Bên dưới chúng vẫn dùng function calling của mô hình.
Rủi ro bảo mật khi cho AI gọi công cụ
Khi AI có quyền gọi công cụ, câu trả lời sai không còn chỉ là chữ sai, mà có thể thành hành động sai. Các rủi ro chính:
- Prompt injection: nội dung độc hại trong email, trang web hoặc tài liệu khiến mô hình gọi công cụ ngoài ý muốn, ví dụ gửi dữ liệu ra ngoài.
- Tham số sai: mô hình điền nhầm số lượng, mã khách hàng, ngày tháng.
- Quyền quá rộng: công cụ dùng tài khoản quản trị nên lỗi nhỏ thành sự cố lớn.
- Lộ dữ liệu: kết quả công cụ chứa thông tin khách hàng khác được đưa vào câu trả lời.
Nguyên tắc kiểm soát
- Ứng dụng luôn kiểm tra lại tham số và quyền của người dùng trước khi thực thi, không tin tuyệt đối vào mô hình.
- Tách công cụ chỉ đọc và công cụ ghi. Thao tác ghi, xóa, thanh toán cần người xác nhận.
- Dùng tài khoản dịch vụ quyền tối thiểu cho từng công cụ.
- Ghi log đầy đủ: ai hỏi, mô hình gọi công cụ gì, tham số gì, kết quả ra sao.
- Giới hạn số lượt gọi trong một phiên để tránh vòng lặp vô tận.
Các bước triển khai function calling cho một quy trình đầu tiên
Đừng bắt đầu bằng một agent làm mọi thứ. Chọn một quy trình hẹp, tần suất cao, rủi ro thấp.
- Chọn việc: ví dụ trả lời khách hỏi tình trạng bảo hành theo số serial.
- Liệt kê công cụ cần: thường chỉ 2–3 công cụ chỉ đọc là đủ cho giai đoạn đầu.
- Viết mô tả và lược đồ tham số: rõ ràng, có ví dụ giá trị hợp lệ.
- Xây lớp thực thi: gọi API phần mềm hiện có, kiểm tra quyền, xử lý lỗi và trả thông báo dễ hiểu khi không tìm thấy dữ liệu.
- Chuẩn bị bộ câu hỏi kiểm thử: 30–50 câu thật từ khách, gồm cả câu mơ hồ và câu cố tình gây nhiễu.
- Chạy thử nội bộ: xem mô hình gọi đúng công cụ, đúng tham số bao nhiêu phần trăm.
- Mở dần: cho một nhóm khách nhỏ dùng, theo dõi log, rồi mới thêm công cụ ghi.
Đo hiệu quả bằng tỷ lệ gọi đúng công cụ, tỷ lệ câu hỏi phải chuyển người, thời gian phản hồi và số sự cố do tham số sai.
Khi nào không nên dùng function calling
Function calling không phải lúc nào cũng là lựa chọn tốt nhất.
- Quy trình cố định, ít biến thể: nếu luôn là ‘nhận form, ghi vào Google Sheets, gửi email’, một workflow n8n hoặc Apps Script thông thường rẻ hơn và ổn định hơn, không cần mô hình chọn công cụ.
- Thao tác không thể đảo ngược: chuyển tiền, xóa dữ liệu, gửi hợp đồng. Nếu bắt buộc dùng, phải có người duyệt từng lần.
- Hệ thống nguồn không có API ổn định: phần mềm cũ chỉ thao tác qua giao diện sẽ khiến lớp thực thi rất mong manh.
- Không có người theo dõi log: nếu không ai kiểm tra định kỳ, lỗi tham số có thể tích tụ lâu mới phát hiện.
Cách tiếp cận hợp lý là dùng quy trình cố định cho phần lặp lại và để AI quyết định ở những điểm cần hiểu ngôn ngữ tự nhiên, như phân loại yêu cầu hoặc trích xuất thông tin từ tin nhắn khách.
Hãy bắt đầu với công cụ chỉ đọc và log mọi lượt gọi trong ít nhất hai tuần trước khi cấp quyền ghi. Đọc log thật là cách nhanh nhất để biết mô tả công cụ của bạn có đủ rõ hay chưa.
Muốn đưa AI vào công việc của doanh nghiệp? PCTech tư vấn, đánh giá mức sẵn sàng AI và triển khai chatbot, AI agent, tự động hóa cho doanh nghiệp.
10 câu hỏi, 2 phút, nhận mức độ và việc nên làm tiếp theo. Dùng thử ngay
Câu hỏi thường gặp
Function calling có phải là AI tự chạy code không?
Không. Mô hình chỉ sinh ra yêu cầu gọi hàm kèm tham số. Ứng dụng của bạn quyết định có thực thi hay không và thực thi thế nào.
Mô hình AI nào hỗ trợ function calling?
Phần lớn mô hình thương mại lớn và nhiều mô hình mở hiện hỗ trợ tool use. Mức độ chính xác khác nhau theo mô hình và phiên bản, nên kiểm tra tài liệu chính thức và tự thử với bộ câu hỏi của bạn.
Function calling có tốn thêm token không?
Có. Danh sách công cụ, mô tả, lược đồ tham số và kết quả trả về đều nằm trong ngữ cảnh nên tính token. Càng nhiều công cụ và kết quả càng dài thì chi phí càng tăng.
Có thể dùng function calling với mô hình chạy cục bộ không?
Có, nhiều mô hình mở chạy qua Ollama hoặc vLLM hỗ trợ tool calling. Mô hình nhỏ thường gọi sai tham số nhiều hơn, nên cần kiểm thử kỹ và kiểm tra tham số chặt hơn.
Function calling khác AI agent thế nào?
Function calling là cơ chế một lần gọi công cụ. AI agent là hệ thống dùng cơ chế đó nhiều lần trong vòng lặp, tự lên kế hoạch và quyết định bước tiếp theo.
Làm sao ngăn AI gọi công cụ nguy hiểm?
Không cấp công cụ nguy hiểm nếu chưa cần, dùng quyền tối thiểu, kiểm tra tham số ở phía ứng dụng và bắt buộc người xác nhận với thao tác ghi, xóa, thanh toán.
Bài viết liên quan
- MCP là gì? Kết nối AI với dữ liệu doanh nghiệp
- Structured output là gì? Yêu cầu AI trả kết quả dạng JSON, bảng
- AI Agent hoạt động thế nào? Vòng lặp suy nghĩ, hành động, kiểm tra
- AI Agent là gì? Khác chatbot thế nào
- Prompt injection là gì? Rủi ro bảo mật khi tích hợp AI
- API AI là gì? Cách doanh nghiệp gọi mô hình AI qua API và tính phí
- Xây AI agent bằng n8n: kiến trúc và ví dụ cho doanh nghiệp nhỏ
- Agentic workflow là gì? Khi nào dùng agent, khi nào dùng quy trình cố định