一個能自主發現、建構和重複使用工具的代理沙盒,展示了 Agent Capability 模式——模型能在不同會話間自主發現、建構和重複使用工具。

使用 AWS Strands Agents SDK 和 Tauri 建構。

你要求 Tendril 做某事。它會檢查其能力註冊表。如果工具存在,它就會使用它。如果不存在,它就會自行編寫、註冊並執行——所有這些都不需要詢問。下次你需要相同的功能時,該工具已經準備就緒。

註冊表會隨著使用而增長。每次會話都比上一次更聰明。

Tendril 的核心是一個帶有三個啟動工具的 Strands agent。就這樣——三個工具統治一切。

agent.ts — 使用 Bedrock 模型和三個工具創建 Strands agent:

index.ts — 觀察代理循環並將其橋接到 ACP 協議:

loop/prompt.ts — 使代理自主運行的系統提示:

大多數代理框架會給模型一個大工具箱,並希望它能選對。Tendril 則反其道而行——模型始終只能看到恰好三個工具。它會搜索註冊表,建構所需內容,並且註冊表會隨著時間推移而增長。工具的表面積保持不變;改變的是能力。

通訊:透過 stdin/stdout 上的 NDJSON(換行分隔的 JSON)進行 JSON-RPC 2.0 通訊。代理是一個獨立進程——Tauri 主機將其作為 sidecar 啟動。

協議:實現 Agent Integrator Specification (ACP)——與 Claude Code 和類似代理主機使用的相同協議。

首次啟動時,選擇一個工作區文件夾。在設定中配置你的 AWS 設定檔和模型。

所有設定都位於 ~/.tendril/config.json:

allowedDomains:留空表示不受限制的網路。設定為 `["api.example.com"]` 可限制。

能力以純文件形式儲存在工作區中:

模型會編寫這些定義。你可以檢查、編輯或刪除它們——它們只是文件。