Function calling trong PHP: tự tay dựng vòng lặp để hiểu AI agent là gì

Function calling trong PHP: tự tay dựng vòng lặp để hiểu AI agent là gì

Function calling trong PHP: tự tay dựng vòng lặp để hiểu AI agent là gì
Function calling trong PHP: tự tay dựng vòng lặp để hiểu AI agent là gì

Nhiều developer đã quen với việc gọi một API ngôn ngữ lớn (LLM) để lấy kết quả trả về — nhưng lại mơ hồ khi nghe đến khái niệm AI agent là gì và tại sao nó khác với một lệnh gọi thông thường. Thực ra, cách nhanh nhất để hiểu bản chất của AI agent không phải là đọc định nghĩa lý thuyết, mà là tự tay dựng một vòng lặp nhỏ bằng PHP và quan sát cách model đưa ra quyết định qua từng bước.

Phân biệt một lệnh gọi LLM thường và một AI agent

Phân biệt một lệnh gọi LLM thường và một AI agent
Phân biệt một lệnh gọi LLM thường và một AI agent

Điểm khác biệt cốt lõi nằm ở cấu trúc luồng xử lý, không phải ở model AI bạn dùng.

  • Gọi LLM một lần: bạn gửi prompt, model trả về văn bản, luồng kết thúc. Không có trí nhớ, không có hành động tiếp theo.
  • AI agent có vòng lặp quan sát → quyết định → hành động: model nhận ngữ cảnh, quyết định gọi công cụ nào, nhận kết quả từ công cụ đó, rồi tiếp tục quyết định bước tiếp theo — hoặc dừng lại khi đã đủ thông tin để trả lời người dùng.

Hiểu đơn giản: một cuộc gọi LLM thường là một câu hỏi — một câu trả lời. Còn agent là một vòng đàm phán giữa model và các công cụ xung quanh nó, với mục tiêu được đặt ra từ đầu và kết thúc khi mục tiêu đó hoàn thành.

Về mặt thực tiễn, khái niệm này ngày càng xuất hiện nhiều trong các dự án website có quy trình phức tạp. Bạn có thể giải thích AI agent là gì một cách chi tiết hơn từ góc nhìn ứng dụng doanh nghiệp để có bức tranh đầy đủ trước khi đi vào code.

Dựng vòng lặp agent tối giản bằng PHP và function calling

Hầu hết các API LLM hiện nay đều hỗ trợ tính năng function calling (hoặc tool use): bạn khai báo danh sách các hàm có thể gọi, model sẽ quyết định khi nào và gọi hàm nào dựa trên nội dung cuộc hội thoại.

Khai báo danh sách tool

Trong PHP, bạn định nghĩa mỗi tool dưới dạng một mảng JSON schema mô tả tên hàm, mô tả chức năng và các tham số cần thiết:

  • name: tên hàm PHP sẽ được gọi khi model yêu cầu.
  • description: mô tả ngắn gọn để model biết khi nào nên dùng tool này.
  • parameters: schema JSON mô tả các input cần thiết.

Ví dụ thực tế: bạn có thể khai báo tool query_order_status nhận vào order_id và trả về trạng thái đơn hàng từ database, hoặc tool call_crm_api để lấy thông tin khách hàng từ hệ thống CRM nội bộ.

Xử lý tool_call và nạp kết quả lại cho model

Vòng lặp agent trong PHP hoạt động theo chuỗi sau:

  • Gửi message + danh sách tool cho model.
  • Nếu model trả về tool_call (yêu cầu gọi hàm cụ thể), PHP thực thi hàm đó với các tham số model cung cấp.
  • Kết quả hàm được nạp lại vào lịch sử hội thoại dưới dạng tool_result.
  • Gọi lại model với lịch sử đã bổ sung — model đọc kết quả và quyết định bước tiếp theo.
  • Lặp lại đến khi model trả về phản hồi cuối cùng mà không yêu cầu gọi thêm tool nào.

Một vòng lặp như vậy chỉ cần vài chục dòng PHP, nhưng nó minh họa rõ ràng toàn bộ kiến trúc của một AI agent hoạt động thật. Khám phá thêm các bài hướng dẫn kỹ thuật liên quan tại blog của chúng tôi để cập nhật các pattern phổ biến trong lập trình web hiện đại.

Quản lý trạng thái, giới hạn vòng lặp và chi phí token

Khi vòng lặp agent chạy thực tế, có ba vấn đề kỹ thuật cần giải quyết ngay từ đầu.

Đặt giới hạn số bước

Nếu không có max_steps, agent có thể rơi vào vòng lặp vô hạn khi model cứ tiếp tục yêu cầu gọi tool mà không đưa ra kết quả cuối cùng. Thực tế với hầu hết use case, từ ba đến mười bước là đủ — vượt quá ngưỡng này thường là dấu hiệu của vấn đề trong kịch bản hoặc dữ liệu đầu vào.

Ghi log mỗi bước để debug

Agent có nhiều bước chạy ẩn, debug sẽ rất khó nếu không ghi lại toàn bộ luồng. Log nên bao gồm: message gửi đi, tool nào được gọi, tham số là gì, kết quả trả về là gì và bao nhiêu token đã tiêu thụ. Đây là thông tin cần thiết để tối ưu cả chi phí lẫn hiệu suất.

Kiểm soát chi phí token

Mỗi vòng lặp agent đều gửi lại toàn bộ lịch sử hội thoại kèm kết quả tool. Điều này khiến số token tiêu thụ tăng lũy kế theo mỗi bước. Một số chiến lược kiểm soát phổ biến:

  • Tóm tắt lịch sử hội thoại sau mỗi vài bước thay vì giữ nguyên toàn bộ.
  • Giới hạn kết quả tool trả về chỉ lấy các trường thực sự cần thiết.
  • Dùng model nhỏ hơn cho các bước đơn giản, chỉ dùng model mạnh cho bước phán đoán phức tạp.

Nếu bạn đang xây dựng hệ thống có liên quan đến thiết bị và hạ tầng ghi nhận dữ liệu, có thể tham khảo thêm về dau ghi hinh camera questek như một ví dụ về hệ thống thu thập dữ liệu thực tế có thể làm nguồn đầu vào cho AI agent xử lý.

So sánh lệnh gọi LLM thường và AI agent

Tiêu chí Lệnh gọi LLM thường AI agent có vòng lặp
Số lần gọi API Một lần Nhiều lần, tùy bài toán
Khả năng gọi công cụ Không Có (function calling)
Xử lý bài toán nhiều bước Hạn chế Phù hợp
Chi phí token Thấp và cố định Tăng theo số bước
Cần giám sát/log Ít cần Bắt buộc
Phù hợp cho Tóm tắt, dịch, phân loại nhanh Tự động hóa quy trình, tra cứu đa nguồn

Kết luận: build nhỏ để nắm bản chất

Một vòng lặp PHP vài chục dòng đủ để developer thấy rõ cách agent thực sự vận hành: model không ‘biết’ mọi thứ — nó biết cách yêu cầu công cụ và tổng hợp kết quả để đưa ra quyết định tiếp theo. Hiểu được điều này sẽ giúp bạn thiết kế agent tốt hơn nhiều so với việc chỉ dùng framework mà không rõ bên trong làm gì.

Sau khi nắm vững nguyên lý, bạn mới nên chọn framework hay dịch vụ agent phù hợp với quy mô dự án. Còn nếu muốn xem thêm về các giải pháp số tổng thể cho doanh nghiệp — từ website đến tự động hóa quy trình bằng AI — đó cũng là hướng đi thực tế để rút ngắn thời gian từ nguyên mẫu đến sản phẩm hoạt động thật.

Đừng quên theo dõi thêm các tài nguyên về phu kien may tinh và thiết bị công nghệ để có cái nhìn toàn diện hơn về hạ tầng số hỗ trợ các ứng dụng AI trong thực tế.