strands-agents/box

Run AI agents in a sandbox that restricts what they can execute, read, write, and reach on the network. Box combines OS isolation with default-deny Dogwood policies and credential injection that keeps secrets outside the agent. Written in Rust. Supports macOS on Apple silicon, with Linux support planned.

Strands Box – 무엇인가

Strands Box는 엄격하게 통제된 환경에서 AI 에이전트 프로그램을 실행할 수 있는 오픈소스 샌드박스 엔진입니다. 샌드박스는 운영 체제 수준에서 에이전트를 격리하고, 에이전트가 수행하려는 모든 작업(파일 읽기, 프로그램 실행, 네트워크 호출, 도구 호출)에 의미론적 정책(Dogwood 정책 언어로 작성)을 적용합니다.

왜 중요한가

로컬 머신에서 강력한 LLM 기반 에이전트를 실행하는 것은 위험할 수 있습니다. 에이전트가 실수로 민감한 파일을 읽거나 수정하고, 원치 않는 프로세스를 시작하거나, 외부 API를 호출할 때 자격 증명을 유출할 수 있습니다. Strands Box는 개발자가 에이전트가 수행할 수 있는 작업을 정확히 선언하고 런타임에 해당 규칙을 강제할 수 있는 방법을 제공하며, 에이전트의 기록에 따라 결정을 내릴 수 있습니다(예: "비밀 파일을 읽은 후 나가는 HTTP 요청을 차단").

핵심 기능(README에 설명된 대로)

기능 설명
파일 / 프로그램 / 네트워크 제한 직접적인 OS 수준 권한은 box.toml에 정의됩니다. 허용되지 않은 것은 에이전트가 보기도 전에 차단됩니다.
의미론적 및 시간 정책 Dogwood 규칙(permit / forbid)은 작업, 인수, 이전 작업, 경과 시간을 검사할 수 있습니다. 기본적으로 permit이 일치하지 않으면 모든 것이 거부됩니다.
통합 정책 엔진 동일한 Dogwood 엔진이 4개의 "게이트웨이"에서 사용됩니다: Strands Shell, Monty(Python), 송신 HTTP 게이트웨이, MCP 브로커. 이들 중 하나를 통해 수행된 작업은 공유 이벤트 기록에 기록되어 교차 도구 정책을 가능하게 합니다.
도구 호출 검사 송신 게이트웨이는 HTTP 메서드/경로를 검증합니다. MCP 브로커는 구성된 도구 호출과 인수를 검증합니다.
자격 증명 주입 요청이 허용되면 게이트웨이는 API 키 또는 AWS SigV4 서명을 추가할 수 있으며, 원시 비밀을 에이전트에 노출하지 않습니다.
결정 원격 측정 모든 정책 결정은 감사 또는 디버깅을 위해 OTLP 호환 JSON 라인(records.jsonl)에 기록됩니다.
플랫폼 지원 현재 Apple silicon이 장착된 macOS 15+에서 로컬로 실행됩니다.

작동 방식 – 빠른 흐름

  1. 에이전트는 box.toml에 나열된 권한만 가진 OS 샌드박스 내에서 실행됩니다.
  2. 에이전트가 파일을 읽거나, 프로그램을 실행하거나, 네트워크 요청을 하려면 Box 게이트웨이(Shell, Monty, egress, MCP) 중 하나와 통신합니다.
  3. 게이트웨이는 요청을 Dogwood Local Engine으로 전달하며, 엔진은 policy.dw 규칙을 요청 및 이벤트 기록과 비교하여 평가합니다.
  4. 엔진은 허용 또는 거부를 반환합니다. 허용되면 게이트웨이는 작업을 수행합니다(예: 자체 샌드박스에서 프로그램 실행, 주입된 자격 증명으로 HTTP 요청 전달). 거부되면 작업이 차단되고 결정 레코드가 기록됩니다.
  5. 모든 이벤트는 공유 기록에 저장되므로 이후 규칙은 이전 작업에 의존할 수 있습니다.

시작하기(README에서)

  • 사전 요구 사항 – Apple silicon이 장착된 macOS 15+, Node 22.21+(Homebrew 통해), Amazon Bedrock(us-west-2)의 Claude Opus 5에 대한 액세스.
  • 설치 – 제공된 download.sh 스크립트를 실행합니다. 체크섬을 확인하고 바이너리를 ./box-core에 추출합니다.
  • 실행 – ./box-core/box --version을 실행하여 확인한 다음 docs/user/getting-started.md 가이드에 따라 box.toml과 policy.dw를 만들고 에이전트를 시작합니다.
  • 직접 빌드 – 저장소를 클론하고 Cargo를 사용합니다(cargo build --release -p strands-box -p strands-box-containment). just를 통해 도우미 작업(build, test, lint 등)을 사용할 수 있습니다.

누가 사용할까요?

  • LLM 에이전트 개발자 – 자율 코드 생성 에이전트를 위한 안전한 실행 환경이 필요한 사람.
  • 보안 중심 팀 – 감사 로그와 에이전트가 접근할 수 있는 것에 대한 세밀한 제어를 원하는 팀.
  • 연구자 – 도구 사용 에이전트를 실험하고 여러 인터프리터에서 결정론적 정책 강제가 필요한 연구자.

라이선스

Apache 2.0 – 상업적 또는 학술적 용도로 무료입니다.


위의 모든 세부 사항은 저장소의 README에서 직접 가져온 것입니다. 추가 기능은 추론되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트