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

클로드 힌드사이트: 클로드 코드 세션을 위한 관찰 가능성 도구
Tools

클로드 힌드사이트: 클로드 코드 세션을 위한 관찰 가능성 도구

클로드 힌드사이트는 클로드 코드를 위한 오픈소스 관찰 가능성 계층으로, 도구 호출, 토큰, 오류를 탐색 가능한 대시보드에 캡처합니다. 제작자는 이를 사용해 단일 11시간 세션 동안 733번의 도구 호출과 692.8M 캐시 토큰으로 오픈소스 프로젝트를 리팩터링했습니다.

OpenClawRadar
InsForge: AI 코딩 에이전트를 위한 오픈소스 백엔드 플랫폼
Tools

InsForge: AI 코딩 에이전트를 위한 오픈소스 백엔드 플랫폼

InsForge는 AI 코딩 에이전트에 관리형 데이터베이스, 인증, 스토리지, 컴퓨트, 호스팅, AI 게이트웨이를 제공하는 오픈소스 백엔드 플랫폼(Apache 2.0)으로, CLI 또는 MCP를 통해 제어할 수 있습니다.

OpenClawRadar
클로드 파일 히스토리: 클로드 코드 세션 추적용 VS 코드 확장 프로그램
Tools

클로드 파일 히스토리: 클로드 코드 세션 추적용 VS 코드 확장 프로그램

Claude File History라는 VS Code 확장 프로그램은 파일을 다룬 모든 Claude Code 세션을 추적하여 과거 대화를 찾고, 논의 내용을 미리 보고, 더블 클릭으로 대화를 재개할 수 있게 해줍니다.

OpenClawRadar
OpenTrace: 75개 이상의 MCP 도구를 갖춘 셀프 호스팅 관찰 가능성 서버
Tools

OpenTrace: 75개 이상의 MCP 도구를 갖춘 셀프 호스팅 관찰 가능성 서버

OpenTrace는 75개 이상의 MCP 도구를 통해 로그, 사용자 분석 및 데이터베이스 인트로스펙션을 제공하는 셀프 호스팅 관찰 가능성 서버로, SQLite 저장소와 읽기 전용 Postgres 연결을 사용하는 $4 VPS에서 실행됩니다.

OpenClawRadar