mattpocock/sandcastle
Orchestrate sandboxed coding agents in TypeScript with sandcastle.run()
해결하는 문제
Sandcastle은 격리된 샌드박스에서 AI 코딩 에이전트를 오케스트레이션하도록 설계된 TypeScript 라이브러리입니다. 에이전트를 컨테이너 내에서 실행하여 호스트 시스템에 대한 제어되지 않은 변경을 방지하고, git 브랜치를 관리하며 변경 사항을 메인 코드베이스로 병합하는 프로세스를 자동화합니다.
작동 방식
Sandcastle은 SandboxProvider 시스템을 사용하여 격리된 환경을 생성합니다. Docker, Podman, Vercel에 대한 내장 프로바이더를 지원하며, 사용자 정의 프로바이더 생성도 가능합니다. sandcastle.run()을 통해 에이전트가 호출되면, 라이브러리가 샌드박스화를 처리하고 구성 가능한 브랜치 전략을 적용하여 변경 사항을 격리한 후, 결과 커밋을 호스트로 병합합니다.
대상 사용자
AI 기반 코딩 워크플로우를 구축하는 개발자를 위한 도구입니다. 예를 들어, 여러 "AFK" 에이전트의 병렬화, 자동화된 리뷰 파이프라인 생성, 또는 복잡한 멀티 에이전트 시퀀스(예: 구현 에이전트 후 리뷰 에이전트 실행)를 오케스트레이션하는 경우에 적합합니다.
주요 특징
- 프로바이더 독립적 샌드박스: Docker, Podman, Vercel을 기본 지원하며, 로컬 개발을 위해 샌드박스 없이 실행하는 옵션도 제공합니다.
- 유연한 브랜치 관리: 에이전트의 변경 사항을 커밋하고 병합하는 방식을 관리하기 위한 구성 가능한 전략을 제공합니다.
- 재사용 가능한 샌드박스:
createSandbox()API를 사용하면 단일 웜 컨테이너 내에서 여러 에이전트나 반복 작업을 실행하여 시작 오버헤드를 방지할 수 있습니다. - 라이프사이클 훅: 호스트 및 샌드박스 측 훅을 지원하여 에이전트 시작 전 설정 명령(
npm install등)을 실행할 수 있습니다. - 프로그래밍 방식 제어: 스크립트, CI 파이프라인 및 사용자 정의 도구에 통합할 수 있는 완전한 JS API를 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트