Tendril: 즉석에서 도구를 구축하고 등록하는 자체 확장 에이전트

✍️ OpenClawRadar📅 게시일: April 27, 2026🔗 Source
Ad

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

Ad

시스템 프롬프트 규칙

시스템 프롬프트는 자율적인 행동을 강제합니다:

  • 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 내부: Strands SDK ── BedrockModel ── Claude │ 4개의 부트스트랩 도구 ┌────┴────┐ │ Registry │ ←→ index.json + tools/*.ts └─────────┘ ┌────┴────┐ │ Sandbox │ ←→ Deno 하위 프로세스 (샌드박스)

에이전트 루프는 agent.stream() 내에서 실행되며 ACP 프로토콜에 연결되어 UI에 think, act, observe 단계를 표시합니다.

"너무 많은 도구" 문제 해결

대부분의 에이전트 프레임워크는 모델에게 많은 도구를 제공하고 올바른 것을 선택하길 기대합니다. Tendril은 이를 뒤집습니다 — 모델은 항상 정확히 세 개의 도구를 봅니다. 레지스트리를 검색하고 필요한 것을 구축하며 레지스트리는 시간이 지남에 따라 성장합니다. 도구 표면은 변하지 않고, 기능만 변합니다.

📖 전체 소스 읽기: HN AI Agents

Ad

👀 See Also

SmallClaw V1.0.3은 웹훅, n8n 자동화 및 MCP 서버 지원을 추가합니다.
Tools

SmallClaw V1.0.3은 웹훅, n8n 자동화 및 MCP 서버 지원을 추가합니다.

SmallClaw V1.0.3은 외부 서비스 트리거를 위한 웹훅 엔드포인트, n8n을 활용한 로컬 자동화 워크플로우, 도구 통합을 위한 MCP 서버 연결을 도입합니다. 이 업데이트는 작은 로컬 LLM으로 실행하는 도구의 초점을 유지합니다.

OpenClawRadar
Vibeyard를 사용한 AI 코딩 에이전트의 무음 도구 오류 감지
Tools

Vibeyard를 사용한 AI 코딩 에이전트의 무음 도구 오류 감지

Vibeyard는 AI 코딩 에이전트가 침묵하는 도구 실패를 감지하는 도구입니다. 이는 개발자에게 알리지 않고 대체 전략으로 전환하는 경우로, 세션 중에 이러한 비효율성을 표면화하고 반복되는 비효율적인 워크플로를 방지하기 위한 수정 사항을 제안할 수 있습니다.

OpenClawRadar
클로드 코드 LSP: 더 빠르고 정확한 코드 탐색을 위한 언어 서버 프로토콜 지원
Tools

클로드 코드 LSP: 더 빠르고 정확한 코드 탐색을 위한 언어 서버 프로토콜 지원

Claude Code는 기본적으로 LSP가 비활성화된 상태로 제공되지만, 이를 활성화하면 30-60초 걸리는 grep 검색에서 50ms 쿼리로 코드 탐색이 변하며 100% 정확도를 제공합니다. 설정에는 공식 문서가 아닌 GitHub 이슈를 통해 발견된 플래그가 필요합니다.

OpenClawRadar
매니페스트 라우터, 오픈클로 모델 관리를 위한 ZAI 구독 지원 추가
Tools

매니페스트 라우터, 오픈클로 모델 관리를 위한 ZAI 구독 지원 추가

Manifest 라우터가 이제 ZAI 구독을 지원하여 모든 ZAI 모델이 라우팅 계층에 표시되고 요청별로 자동 모델 선택이 가능해졌습니다. 이 도구는 베타 버전으로 무료, 오픈 소스이며 에이전트, 메시지, 모델별 비용을 추적할 수 있는 대시보드를 포함합니다.

OpenClawRadar