Bỏ qua đến nội dung chính

Agents and tools

📖 Nội dung bài học

Tóm tắt

Agent đại diện cho một sự chuyển dịch từ các quy trình công việc (workflow) có cấu trúc mà chúng ta thường làm việc. Trong khi workflow là lựa chọn hoàn hảo khi bạn biết chính xác các bước cần thiết để hoàn thành một tác vụ, agent lại tỏa sáng khi bạn không chắc chắn các bước đó nên là gì. Thay vì định nghĩa một trình tự cứng nhắc, bạn đưa cho Claude một mục tiêu và một bộ công cụ (tool), sau đó để nó tự tìm cách kết hợp các tool đó để đạt được mục tiêu.

Sự linh hoạt này khiến agent trở nên hấp dẫn để xây dựng các ứng dụng cần xử lý các tác vụ đa dạng, khó dự đoán. Bạn có thể tạo một agent một lần, đảm bảo nó hoạt động ổn định, và sau đó triển khai nó để giải quyết hàng loạt vấn đề khác nhau. Tuy nhiên, sự linh hoạt này đi kèm với những đánh đổi về độ tin cậy (reliability) và chi phí mà chúng ta sẽ tìm hiểu sau.

Tool tạo nên Agent như thế nào

Sức mạnh thực sự của agent nằm ở khả năng kết hợp các tool đơn giản theo những cách bất ngờ. Hãy xem xét một bộ tool về ngày giờ (datetime) cơ bản:

  • get_current_datetime - Lấy ngày và giờ hiện tại
  • add_duration_to_datetime - Cộng thêm thời gian vào một ngày nhất định
  • set_reminder - Tạo lời nhắc cho một thời điểm cụ thể

Những tool này khi đứng riêng lẻ có vẻ đơn giản, nhưng Claude có thể chuỗi (chain) chúng lại với nhau để xử lý các yêu cầu phức tạp một cách đáng ngạc nhiên:

Với câu hỏi "Mấy giờ rồi?", Claude chỉ cần gọi get_current_datetime. Nhưng với câu "11 ngày nữa là thứ mấy?", nó sẽ chain get_current_datetime sau đó là add_duration_to_datetime. Để đặt lời nhắc đi tập gym vào thứ Tư tới, nó có thể sử dụng cả ba tool theo trình tự.

Claude thậm chí có thể nhận ra khi nào nó cần thêm thông tin. Nếu bạn hỏi "Khi nào hạn bảo hành 90 ngày của tôi hết hạn?", nó biết rằng cần phải hỏi bạn đã mua món hàng đó khi nào trước khi tính toán ngày hết hạn.

Chưa

Đủ

Goal và bộ tool

Claude phân tích

Đủ thông tin?

Chọn và gọi tool

App thực thi tool

Tool result

Kết quả cuối cùng

Tool nên có tính trừu tượng

Bí quyết để xây dựng agent hiệu quả là cung cấp các tool có tính trừu tượng (abstract) hợp lý thay vì các tool quá chuyên biệt. Claude Code minh họa hoàn hảo cho nguyên tắc này.

Claude Code có quyền truy cập vào các tool chung, linh hoạt như:

  • bash - Chạy bất kỳ lệnh nào
  • read - Đọc bất kỳ file nào
  • write - Tạo bất kỳ file nào
  • edit - Chỉnh sửa file
  • glob - Tìm kiếm file
  • grep - Tìm kiếm nội dung trong file

Đáng chú ý là nó không có các tool chuyên biệt như "tái cấu trúc mã nguồn (refactor code)" hay "cài đặt thư viện phụ thuộc (install dependencies)". Thay vào đó, Claude tự tìm cách sử dụng các tool cơ bản để hoàn thành những tác vụ phức tạp này. Sự trừu tượng này cho phép nó xử lý vô số kịch bản lập trình mà các nhà phát triển chưa bao giờ lập kế hoạch cụ thể.

Best Practice: Các tool có thể kết hợp (Combinable Tools)

Khi thiết kế agent, hãy cung cấp các tool mà Claude có thể kết hợp một cách sáng tạo. Ví dụ, một agent tạo video cho mạng xã hội có thể bao gồm:

  • bash - Truy cập vào FFMPEG để xử lý video
  • generate_image - Tạo hình ảnh từ prompt
  • text_to_speech - Chuyển đổi văn bản thành âm thanh
  • post_media - Tải nội dung lên các nền tảng mạng xã hội

Bộ tool này cho phép thực hiện cả các workflow đơn giản (tạo và đăng video) và cả những trải nghiệm tương tác cao hơn, nơi agent có thể tạo một hình ảnh mẫu trước, chờ người dùng phê duyệt, sau đó mới tiến hành tạo video.

Agent có thể điều chỉnh cách tiếp cận dựa trên phản hồi và sở thích của người dùng, một điều rất khó đạt được với một workflow cứng nhắc. Sự linh hoạt này chính là điều làm cho agent trở nên mạnh mẽ trong việc xây dựng các ứng dụng động, có khả năng phản hồi theo người dùng.

🔁 Bài học liên quan

📚 Nguồn & ghi nhận

Bài học có hữu ích không?

Góp ý / Báo lỗiPhát hiện sai sót hoặc có ý tưởng cải thiện?