Tendril: Самодействующий агент, создающий и регистрирующий инструменты на лету
Tendril — это самодостаточная агентная песочница, демонстрирующая шаблон Agent Capability: модель автономно находит, создает и использует инструменты в разных сессиях. Построена на основе AWS Strands Agents SDK и Tauri.
Как это работает
Вы просите 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 — это агент 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 в интерфейс.
Решение проблемы «слишком много инструментов»
Большинство агентных фреймворков выдают модели большой набор инструментов и надеются, что она выберет правильный. Tendril переворачивает подход — модель всегда видит ровно три инструмента. Она ищет в реестре, создает то, что нужно, и реестр со временем растет. Поверхность инструментов не меняется; меняются возможности.
📖 Читать полный исходный код: HN AI Agents
👀 Смотрите также

Навык Claude Code рефакторит React-компоненты по принципу «Не заставляй меня думать»
Новый навык Claude Code автоматически рефакторит React-компоненты для удобства использования на основе принципов Стива Круга — убирает «пустую болтовню», выделяет основные CTA, исправляет пустые состояния и состояния ошибок, а также уточняет подписи.

MoltNow.app: Деплой OpenClaw в один клик
Новый сервис обещает упростить развёртывание OpenClaw до одного клика с кастомным UI и браузерной автоматизацией.

Открытый MCP-сервер памяти с графом знаний и функциями обучения
Открытый MCP-сервер, написанный на Rust, предоставляет постоянную память для ИИ-агентов с архитектурой графа знаний, геббовским обучением и гибридным поиском. Его размер составляет 7,6 МБ с задержкой менее миллисекунды, и он работает с любым MCP-совместимым клиентом.

Statespace: Создавайте интерактивные веб-приложения для агентов OpenClaw с помощью Markdown
Statespace — это бесплатный, открытый фреймворк для создания и обмена веб-приложениями, совместимыми с ИИ, которыми агенты OpenClaw могут управлять и взаимодействовать с ними, используя чистый Markdown. Он позволяет определять инструменты, компоненты и инструкции в Markdown-файлах, к которым агенты получают доступ через HTTP.