Bên trong một AI Agent
Các bản demo AI agent trông rất tuyệt vời trong video. Nhưng chúng thường thất bại khi bạn đặt những câu hỏi thực tế.
Agent thực hiện sai việc. Nó quên mất các quyết định. Nó gọi những công cụ không tồn tại. Nó lặp đi lặp lại vô tận. Đây không phải là lỗi của mô hình (model). Đây là lỗi của quy trình làm việc (workflow).
Một agent là một quy trình phần mềm. Một mô hình ngôn ngữ sẽ chọn bước tiếp theo và gọi các công cụ. Trí thông minh nằm ở sự điều phối (orchestration), chứ không chỉ nằm ở riêng mô hình.
Mọi agent trong môi trường thực tế (production) đều dựa trên năm trụ cột:
- Lập kế hoạch (Planning): Suy nghĩ trước khi hành động.
- Sử dụng công cụ (Tool Use): Tương tác với thế giới.
- Bộ nhớ (Memory): Lưu trữ ngữ cảnh và các sự kiện.
- Các ràng buộc (Constraints): Thiết lập các giới hạn và ngân sách.
- Xác minh (Verification): Chứng minh công việc được thực hiện chính xác.
Các phong cách lập kế hoạch
Các agent ngây thơ thường nhảy thẳng vào hành động. Điều này dẫn đến hiện tượng ảo giác (hallucinations). Một agent tốt cần phải lập kế hoạch trước.
- Plan-then-execute: Mô hình viết một kế hoạch đầy đủ. Cách này dễ kiểm chứng (audit) nhưng khó thích ứng nếu thực tế thay đổi.
- ReAct (Reason + Act): Mô hình suy nghĩ, hành động và quan sát theo một vòng lặp. Cách này có khả năng thích ứng cao hơn nhưng tốn nhiều token và thời gian hơn.
Sử dụng công cụ
Không có công cụ, một agent chỉ là một chatbot. Một công cụ cần có tên, một JSON schema và một hàm (function).
Các mô hình chọn công cụ dựa trên mô tả. Nếu mô tả của bạn mơ hồ, agent sẽ thất bại. Hãy coi các mô tả như các bảng thông số kỹ thuật (spec sheets). Hãy xác định rõ công cụ dùng để làm gì và không dùng để làm gì.
Luôn luôn xác thực (validate) các lệnh gọi công cụ. Nếu mô hình gửi các tham số (arguments) sai, hãy từ chối lệnh gọi đó và gửi phản hồi lỗi ngược lại cho mô hình. Điều này giúp agent học hỏi ngay trong vòng lặp.
Bộ nhớ
Bộ nhớ không chỉ là một thứ duy nhất.
- Bộ nhớ làm việc (Working Memory): Cuộc hội thoại hiện tại và kết quả của các công cụ.
- Sổ nháp (Scratchpad): Nơi để agent tự viết ghi chú cho chính mình.
- Bộ nhớ dài hạn (Long-term Memory): Lưu trữ các sự kiện cho các phiên làm việc trong tương lai.
Đừng chỉ dựa dẫm vào các cơ sở dữ liệu vector (vector databases). Bộ nhớ dựa trên tệp (file-based memory) sử dụng các tệp markdown thường tốt hơn. Nó dễ dàng để kiểm chứng, chỉnh sửa và grep.
Các ràng buộc và An toàn
Các agent trong môi trường thực tế cần các rào chắn (guardrails). Hãy sử dụng bốn phương pháp sau:
- Danh sách cho phép công cụ (Tool allowlists): Chỉ cho phép các công cụ cụ thể đã được đặt tên.
- Ngân sách lặp (Iteration budgets): Giới hạn số bước để ngăn chặn vòng lặp vô tận.
- Ngân sách token (Token budgets): Giới hạn chi phí bằng cách khống chế tổng số token.
- Cổng phê duyệt (Approval gates): Yêu cầu sự cho phép của con người đối với các hành động quan trọng như gửi email hoặc xóa dữ liệu.
Xác minh
Đừng bao giờ tin một mô hình khi nó nói rằng một tác vụ đã hoàn thành. Theo mặc định, mô hình luôn tỏ ra tự tin.
Hãy sử dụng việc xác minh thực tế. Nếu một agent viết mã, hãy chạy các bài kiểm tra (tests). Nếu nó tạo ra JSON, hãy kiểm tra schema. Nếu nó thực hiện một tác vụ, hãy chạy một truy vấn để xác nhận thay đổi.
Các agent tốt nhất sử dụng việc xác minh ngay trong vòng lặp. Nếu một bài kiểm tra thất bại, hãy gửi lỗi ngược lại cho agent. Hãy để nó thử lại.
Đừng mải mê theo đuổi những câu lệnh (prompts) thông minh hơn nữa. Hãy bắt đầu xây dựng hệ thống hạ tầng (plumbing) tốt hơn.
Cộng đồng học tập tùy chọn: https://t.me/GyaanSetuAi
