Tendril: ツールをその場で構築・登録する自己拡張エージェント
Tendril は自己拡張型のエージェンティックサンドボックスであり、Agent Capabilityパターン(モデルが自律的にツールを発見・構築・再利用するパターン)を実証しています。AWS Strands Agents SDKとTauriで構築されています。
動作の仕組み
あなたがTendrilに何か指示を出します。Tendrilは機能レジストリを確認します。該当するツールが存在すればそれを使い、存在しなければ自分でツールを作成し、登録し、実行します——すべてユーザーに尋ねることなく。次回同じことを頼めば、ツールはすでにそこにあります。
あなた: 「Hacker Newsのトップ記事を取得して」
Tendril: → searchCapabilities("fetch url hacker news") # 見つからない
→ registerCapability(fetch_url, code) # ツールを作成
→ execute("fetch_url", {url: "https://..."}) # 名前で実行
→ "トップ記事はこちら: ..."
あなた: 「次にLobstersを取得して比較して」
Tendril: → listCapabilities() # fetch_url を発見 ✓
→ execute("fetch_url", {url: "https://lobste.rs"}) # 再構築なしで実行
レジストリは使用とともに成長します。セッションを重ねるごとに賢くなっていきます。
エージェント設定
Tendrilの中核は、わずか3つのブートストラップツールを持つStrandsエージェントです。
import { Agent } from '@strands-agents/sdk';
import { BedrockModel } from '@strands-agents/sdk/models/bedrock';
const agent = new Agent({
model: new BedrockModel({ modelId: '...', region: '...' }),
systemPrompt: TENDRIL_SYSTEM_PROMPT(workspacePath),
printer: nullPrinter,
tools: [
listCapabilities(registry),
registerCapability(registry),
executeCode(registry, workspacePath, config),
],
});
システムプロンプトのルール
システムプロンプトは自律的な動作を強制します:
searchCapabilities(query)を呼び出して関連ツールの有無を確認- 見つかった場合:
loadTool(name)を呼び出し、次にexecute(code, args)を実行 - 見つからない場合: 自分でツールを構築しなければなりません
- 「ツールを作成しましょうか?」と尋ねてはいけません——とにかく構築する
- ツールが失敗した場合、エラーを読み、コードを修正し、再試行する
- ツールでライブ情報を取得できる場合、学習データからの回答は絶対にしてはいけない
アーキテクチャ
┌─────────────────────────────────────────┐ │ Tauri Shell (Rust) │ │ ACP Host ──stdin/stdout──► Agent │ │ (acp.rs) NDJSON (Node.js SEA)│ │ Events ◄── session/update ──┘ │ │ (events.rs) │ │ Tauri Events ──► React Frontend │ │ (TailwindCSS v4) │ └─────────────────────────────────────────┘Agent internals: Strands SDK ── BedrockModel ── Claude │ 4 bootstrap tools ┌────┴────┐ │ Registry │ ←→ index.json + tools/*.ts └─────────┘ ┌────┴────┐ │ Sandbox │ ←→ Deno subprocess (sandboxed)
エージェントループは agent.stream() 内で実行され、ACPプロトコルにブリッジし、think、act、observe の各フェーズをUIに公開します。
「ツールが多すぎる」問題の解決策
ほとんどのエージェントフレームワークは、モデルに大量のツールを与えて適切なものを選ぶことを期待します。Tendrilはこれを逆転させます——モデルは常に正確に3つのツールだけを見ます。レジストリを検索し、必要なものを構築し、レジストリは時間とともに成長します。ツールの表面は決して変わらず、機能だけが増えます。
📖 ソース全文を読む: HN AI Agents
👀 See Also

モバイルハーネス: Claudeエージェント向けモバイルアプリにブラウザ使用スキルをもたらす
Mobile Harnessは、Claude/エージェントがMobAIを実行レイヤーとして使用し、再利用可能なモバイルアプリスキル(Reddit、Instagram、TikTok)を提供します。実際のデバイス、エミュレータ、シミュレータで動作し、無料の日次クォータがあります。

Vibe Remote:どこからでもClaude Codeにアクセスできるモバイルブリッジ
Vibe Remoteは、携帯電話からClaude Code開発環境にリモートアクセスを提供するモバイルアプリです。Tailscaleや複雑なVPN設定を必要とせず、ユーザーはローカルの設定、Git履歴、ファイルツリーを維持できます。

Flue: 自律型コーディングエージェントを構築するためのTypeScriptフレームワーク
Flueは、自律エージェントを構築するためのプログラム可能なハーネスを提供するTypeScriptフレームワークで、スキル、セッション、サンドボックス化されたシェル実行、組み込みの仮想サンドボックスを備えています。Dosu、Greptile、CodeRabbit、Devin、Claude Codeなどのツールをカスタムエージェントロジックで置き換えることができます。

インク:Claude AIエージェントが主なユーザーであるデプロイメントプラットフォーム
Ink(ml.ink)は、ClaudeのようなAIエージェント向けに設計されたデプロイメントプラットフォームで、1回のツール呼び出しでのデプロイ、フレームワークの自動検出、コンピュート、データベース、DNS、シークレット、ドメイン、メトリクス、ログなどの統合サービスを特徴としています。