프로젝트 소개
BareAgent는 Node.js용 경량·제로 의존성 에이전트 오케스트레이션 라이브러리로, AI 에이전트를 위한 think→act→observe 루프를 제공합니다. LangChain, CrewAI, AutoGen 같은 무거운 프레임워크와 달리 BareAgent는 모놀리식 프레임워크보다는 조합 가능한 구성 요소에 초점을 맞추며, 핵심(core)은 아무것도 임포트하지 않습니다.
주요 기능은 다음과 같습니다.
- **루프**: 목표가 완료될 때까지 실행되는 중앙 think→act→observe 사이클. 정책 거버넌스, 컨텍스트 엔지니어링, 트랜스크립트 정리를 위한 옵트인(opt-in) 확장 지점을 제공합니다.
- **Planner 및 runPlan**: 목표를 단계 DAG로 분해하고 의존성을 인지하여 병렬 웨이브로 단계를 실행하며, 단계별 재시도를 지원합니다.
- **recurse(RLM)**: 어려운 작업을 분해하고, 하위 작업을 팬아웃(fan-out)시키고, 결과를 검증한 후 최종 답변을 종합하는 재귀적 분해 프리미티브입니다. 모델 기반 스포닝, 강제 팬아웃, 데이터 기반 파티셔닝을 지원합니다. 모델이 말한 숫자에 의존하지 않고 코드가 직접 세는 스캔 기반 검색을 통해 말뭉치에 대한 정직한 계산을 포함합니다.
- **메모리**: 교체 가능한 Store 인터페이스(JSON, SQLite, litextx)를 통해 세션 간 영구 저장 및 재호출을 지원합니다.
- **거버넌스**: 선택적 bareguard 통합을 통해 모든 LLM 및 도구 호출에 단일 정책 게이트를 제공하며, 감사 로깅, 예산 상한, 인간 승인 체크포인트를 포함합니다.
- **복원력**: 백오프와 지터가 포함된 재시도, 서킷 브레이커, 프로바이더 장애 조치(failover)를 지원합니다.
- **프로바이더**: OpenAI 호환 API, Anthropic, Gemini, Ollama, CLIPipe 및 사용자 정의 프로바이더를 지원합니다. 모든 프로바이더는 프롬프트 캐시 계층 보고를 포함한 정직한 토큰/비용 메트릭으로 정규화된 형태를 반환합니다.
- **도구**: 모든 함수가 도구가 될 수 있습니다. 내장 웹 브라우징(barebrowse), 모바일 제어(baremobile), 셸 실행을 제공합니다. MCP Bridge는 IDE 구성에서 MCP 서버를 자동으로 발견합니다.
- **크로스 랭귀지**: stdin/stdout을 통한 JSONL로 Python, Go, Rust, Ruby, Java에서 하위 프로세스로 실행할 수 있습니다.
- **스트리밍**: 실시간 진행 상황을 위한 구조화된 JSONL 이벤트를 제공합니다.
- **평가자 및 정제(refine)**: 조건자(predicate), 루브릭 또는 에이전트형 비평가로 출력을 판정하며, 제한된 generate→evaluate→regenerate 루프를 사용합니다.
- **스케줄러**: 재시작 후에도 지속되는 작업과 함께 Cron 또는 상대적 트리거를 지원합니다.
- **체크포인트**: 자체 전송(BYOT) 방식을 지원하는 인간 승인 게이트입니다.
- **스폰**: 공유 감사 로그와 예산을 사용하여 하위 에이전트를 포크합니다.
- **디퍼(defer)**: 웨이커(waker)가 나중에 실행할 작업을 대기열에 넣습니다.
- **SkillRegistry**: 메타 도구 카탈로그를 통해 필요한 때에 스킬을 노출합니다.
- **stash**: 완료된 작업을 라이브 컨텍스트 창 밖으로 압축하거나 토큰 압박이 있을 때 자동으로 접어서 보관합니다.
이 라이브러리는 완전히 이해할 수 있을 만큼 가벼우면서도 바퀴를 다시 발명하지 않아도 될 만큼 완전하게 설계되었습니다. 필수 의존성 없이 제공되며, 선택적 피어(peer)로는 거버넌스를 위한 bareguard, SQLite 저장을 위한 better-sqlite3, 스케줄링을 위한 cron-parser가 있습니다. Apache 2.0 라이선스로 배포됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.