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

LLM 숨겨진 에이전시 신호(Â)를 활용한 향상된 도구 호출
Tools

LLM 숨겨진 에이전시 신호(Â)를 활용한 향상된 도구 호출

개발자가 LLM이 AUC > 0.94로 도구 호출을 예측하는 선형 분리 가능한 숨겨진 상태 방향인 Â를 가지고 있음을 발견했습니다. 이 신호를 사용하여 도구 호출을 강제하면 Qwen3-1.7B 성능이 26.7%에서 85%로 향상되었으며(+58% 이득), 도구 미사용 실패가 43%에서 2.6%로 감소했습니다.

OpenClawRadar
HostedShell: 오픈클로 에이전트를 위한 웹 기반 배포 솔루션
Tools

HostedShell: 오픈클로 에이전트를 위한 웹 기반 배포 솔루션

HostedShell은 로컬 CLI 설정, 의존성 관리 및 수동 페어링을 제거하여 웹 콘솔을 통해 직접 터미널 접근과 파일 시스템 업데이트를 제공하는 OpenClaw의 호스팅 버전입니다.

OpenClawRadar
Cloudflare Dynamic Worker Loader: AI 에이전트를 Isolates로 샌드박싱하기
Tools

Cloudflare Dynamic Worker Loader: AI 에이전트를 Isolates로 샌드박싱하기

Cloudflare의 Dynamic Worker Loader API가 오픈 베타로 공개되었습니다. 이 API는 Workers가 V8 격리 환경을 사용하여 런타임에 지정된 코드로 새로운 Workers를 격리된 샌드박스에 인스턴스화할 수 있도록 하며, 컨테이너보다 100배 빠른 시작 속도와 전역 동시성 제한이 없습니다.

OpenClawRadar
OpenClaw 코어브레인 플러그인: AI 코딩 에이전트를 위한 지속적 메모리
Tools

OpenClaw 코어브레인 플러그인: AI 코딩 에이전트를 위한 지속적 메모리

CoreBrain이라는 새로운 플러그인이 OpenClaw의 메모리 문제를 해결합니다. 이 플러그인은 정보를 컨텍스트 윈도우 외부의 지식 그래프에 저장하고 모든 쿼리 전에 자동으로 주입하여 도구 호출과 선택적 메모리 호출의 필요성을 없앱니다.

OpenClawRadar