Tendril: Agent AI tự mở rộng, tự xây dựng và đăng ký công cụ của chính nó

27 tháng 4, 2026·4 phút đọc

Tendril là một sandbox agent tự mở rộng sử dụng AWS Strands Agents SDK và Tauri. Nó cho phép mô hình AI tự động khám phá, xây dựng và tái sử dụng các công cụ, giải quyết vấn đề quá tải chức năng trong các framework agent hiện tại.

Tendril: Agent AI tự mở rộng, tự xây dựng và đăng ký công cụ của chính nó

Tendril là một dự án mã nguồn mở mới lạ, giới thiệu một khái niệm gọi là "sandbox agent tự mở rộng" (self-extending agentic sandbox). Được xây dựng trên nền tảng AWS Strands Agents SDK và Tauri, dự án này minh họa cho Mô hình Khả năng Agent (Agent Capability pattern), nơi mô hình AI có khả năng tự khám phá, xây dựng và tái sử dụng các công cụ xuyên suốt các phiên làm việc mà không cần sự can thiệp của con người.

Cơ chế hoạt động: Tự động hóa hoàn toàn

Ý tưởng cốt lõi của Tendril rất đơn giản nhưng mạnh mẽ. Khi bạn yêu cầu Tendril thực hiện một tác vụ, nó sẽ kiểm tra thanh ghi khả năng (capability registry) của mình.

  • Nếu công cụ cần thiết đã tồn tại, nó sẽ sử dụng ngay lập tức.
  • Nếu chưa có, nó sẽ tự viết mã để tạo công cụ đó, đăng ký vào hệ thống và thực thi — tất cả diễn ra tự động mà không cần hỏi người dùng.

Ví dụ, khi bạn yêu cầu "lấy các tin tức nổi bật từ Hacker News", Tendril sẽ tìm kiếm công cụ liên quan. Nếu không thấy, nó sẽ tự xây dựng một công cụ fetch_url, đăng ký và chạy nó. Lần sau, khi bạn yêu cầu lấy tin từ Lobsters để so sánh, Tendril sẽ tìm thấy công cụ fetch_url đã có sẵn và chạy lại ngay lập tức mà không cần xây dựng lại. Điều này có nghĩa là mỗi phiên làm việc sẽ thông minh hơn phiên trước.

Giải quyết bài toán "quá nhiều công cụ"

Hầu hết các framework agent hiện nay thường cung cấp cho mô hình một "túi công cụ" khổng lồ và hy vọng nó chọn đúng cái để sử dụng. Tendril đảo ngược tư duy này: mô hình luôn nhìn thấy chính xác ba công cụ khởi tạo (bootstrap tools). Nó tìm kiếm trong thanh ghi, xây dựng những gì cần thiết, và thanh ghi này sẽ tăng trưởng theo thời gian. Bề mặt công cụ không bao giờ thay đổi, nhưng khả năng thì luôn mở rộng.

Kiến trúc và Tech Stack

Hệ thống được thiết kế với kiến trúc rõ ràng, bao gồm:

  • Tauri Shell (Rust): Đóng vai trò là vỏ bọc desktop, quản lý giao tiếp qua stdin/stdout với Agent.
  • Agent (TypeScript): Chạy dưới dạng Node.js SEA binary, sử dụng Strands SDK và AWS Bedrock (Claude).
  • Sandbox (Deno): Môi trường thực thi mã an toàn với quyền hạn được kiểm soát chặt chẽ.
  • Frontend: React 18 và TailwindCSS v4.

Giao tiếp giữa các thành phần sử dụng giao thức JSON-RPC 2.0 qua NDJSON trên stdin/stdout, tuân thủ Quy cách Tích hợp Agent (ACP) — cùng giao thức được sử dụng bởi Claude Code.

Ba công cụ "thống trị mọi thứ"

Trái tim của Tendril là một Strands agent chỉ được trang bị ba công cụ khởi tạo:

  1. listCapabilities: Liệt kê các công cụ hiện có trong thanh ghi.
  2. registerCapability: Xây dựng và lưu trữ một công cụ mới.
  3. executeCode: Thực thi mã trong môi trường sandbox Deno.

Hệ thống prompt được thiết kế để đảm bảo tính tự chủ: Agent không bao giờ hỏi "bạn có muốn tôi tạo công cụ này không?", mà sẽ tự động xây dựng. Nếu công cụ gặp lỗi, nó sẽ đọc thông báo lỗi, sửa mã và thử lại.

Cài đặt và sử dụng

Để chạy Tendril, người dùng cần cài đặt Node.js 22+, Rust toolchain và cấu hình thông tin xác thực AWS cho Bedrock. Dự án cung cấp lệnh make dev để nhanh chóng thiết lập môi trường phát triển, cài đặt các phụ thuộc, tải Deno và khởi chạy chế độ dev của Tauri.

Các khả năng (capabilities) được lưu trữ dưới dạng tệp tin đơn giản trong thư mục workspace, bao gồm index.json (thanh ghi) và các tệp .ts (triển khai công cụ). Người dùng có thể kiểm tra, chỉnh sửa hoặc xóa các công cụ này một cách dễ dàng vì chúng chỉ là những tệp mã thông thường.

Tendril đại diện cho một bước tiến thú vị trong việc phát triển các hệ thống AI tự chủ, biến chúng từ những trợ lý thụ động thành những nhà phát triển phần mềm chủ động, tự học hỏi và mở rộng khả năng của chính mình.

Bài viết được tổng hợp và biên soạn bằng AI từ các nguồn tin tức công nghệ. Nội dung mang tính tham khảo. Xem bài gốc ↗