Tendril: Um agente autoextensível que constrói e registra ferramentas em tempo real

✍️ OpenClawRadar📅 Publicado: April 27, 2026🔗 Source
Ad

Tendril é um sandbox agentivo autoexpansível que demonstra o padrão Agent Capability — o modelo descobre, constrói e reutiliza ferramentas autonomamente entre sessões. Construído com AWS Strands Agents SDK e Tauri.

Como funciona

Você pede para o Tendril fazer algo. Ele verifica seu registro de capacidades. Se uma ferramenta existir, ele a usa. Se não, ele escreve uma, registra e a executa — tudo sem perguntar. Da próxima vez que precisar da mesma coisa, a ferramenta já estará lá.

Você: "busque as principais notícias do Hacker News"
Tendril: → searchCapabilities("buscar url hacker news") # nada encontrado
         → registerCapability(fetch_url, código) # constrói uma ferramenta
         → execute("fetch_url", {url: "https://..."}) # executa pelo nome
         → "Aqui estão as principais notícias: ..."

Você: "agora busque Lobsters e compare" Tendril: → listCapabilities() # encontrado: fetch_url ✓ → execute("fetch_url", {url: "https://lobste.rs"}) # executa — sem reconstruir

O registro cresce com o uso. Cada sessão é mais esperta que a anterior.

Configuração do agente

O núcleo do Tendril é um agente Strands com apenas três ferramentas de inicialização:

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), ], });

Ad

Regras do prompt do sistema

O prompt do sistema impõe comportamento autônomo:

  • Chame searchCapabilities(query) para verificar se existe uma ferramenta relevante
  • Se encontrada: chame loadTool(nome) e depois execute(código, args)
  • Se NÃO encontrada: você DEVE construir a ferramenta você mesmo
  • NUNCA pergunte "gostaria que eu criasse uma ferramenta?" — apenas construa
  • Se uma ferramenta falhar, leia o erro, corrija o código e tente novamente
  • NUNCA responda com dados de treinamento quando uma ferramenta puder obter informações ao vivo

Arquitetura

┌─────────────────────────────────────────┐
│ 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)

O loop agentivo roda dentro de agent.stream() e faz a ponte com o protocolo ACP, expondo as fases think, act e observe para a interface.

A solução "muitas ferramentas"

A maioria dos frameworks de agente dá ao modelo um grande pacote de ferramentas e espera que ele escolha a certa. O Tendril inverte isso — o modelo sempre vê exatamente três ferramentas. Ele pesquisa um registro, constrói o que precisa, e o registro cresce com o tempo. A superfície de ferramentas nunca muda; as capacidades sim.

📖 Leia o código-fonte completo: HN AI Agents

Ad

👀 See Also

GLM 5 no Mac M3: Observações de Desempenho para Codificação Autônoma
Tools

GLM 5 no Mac M3: Observações de Desempenho para Codificação Autônoma

Um usuário relata executar o GLM 5 via quantização 4-bit do MLX em um Mac M3 com 512GB de RAM, considerando-o utilizável para codificação agentica com contexto abaixo de 50 mil tokens, mas observando desacelerações significativas além desse limite.

OpenClawRadar
OpenClaw Integra Recursos do Vazamento de Código do Claude
Tools

OpenClaw Integra Recursos do Vazamento de Código do Claude

Um usuário do OpenClaw fez seu bot analisar o código vazado do Claude (recriação em Rust por Instructkr) e portou seletivamente padrões arquiteturais específicos para sua configuração do OpenClaw. A integração foca em melhorias práticas como continuidade automática na inicialização, compactação de conversas e uma estrutura de ganchos pré-ferramenta/pós-ferramenta.

OpenClawRadar
SLayer: Uma Camada Semântica Open-Source para Agentes de IA que Aprende com Consultas
Tools

SLayer: Uma Camada Semântica Open-Source para Agentes de IA que Aprende com Consultas

SLayer é uma camada semântica leve e incorporável que permite que agentes de IA consultem bancos de dados, gerenciem modelos e aprendam com interações via MCP, REST, CLI ou Python.

OpenClawRadar
Clawpage: Uma Ferramenta que Converte Conversas do OpenClaw em Sites Estáticos
Tools

Clawpage: Uma Ferramenta que Converte Conversas do OpenClaw em Sites Estáticos

Um desenvolvedor criou o Clawpage, uma habilidade que transforma o histórico de sessões do OpenClaw em páginas web estáticas para preservar conversas valiosas, incluindo o vai e vem, a pesquisa e o processo de depuração. A ferramenta está disponível no GitHub.

OpenClawRadar