도구 호출 샌드박스는 실행 파일·쓰기 경로·타임아웃 신호에 대한 계약입니다. 이 투 비 류 일회용 클라우드 격리 관점을 원격 맥에 안 옮기면 에이전트가 개발자 키체인을 물려받을 수 있습니다.
워크플로 퓨즈는 라마인덱스 워크플로 글, 저장소 분리는 원격 맥 IDE 브리지, 체크포인트는 랭그래프 체크포인트와 맞추면 됩니다.
결정 매트릭스
| 축 | 일회 클라우드 | 맥 로컬·원격 |
|---|---|---|
| 격리 | 새 가상 머신·폐기 | 전용 계정·볼륨·로그인 분리 |
| 권한 | 작업 단위 비밀 | 접근 제어·동의 팝업 회피 |
| 경로 | 고정 워크스페이스 | 세션 접두 루트와 임시 고정 |
| 타임아웃 | 벽시계·자원 한도 | 도구 퓨즈·그룹 킬·그래프 퓨즈 |
| 기본값 | 불신 코드 | 엑스코드·서명·메탈·규제 |
위협 모델 한 줄 표
| 벡터 | 자산 | 실패 | 통제 |
|---|---|---|---|
| 모델 셸 | 홈·키 | 삭제·유출 | 허용 바이너리·작업 폴더 고정 |
| 악성 입력 | 인접 저장소 | 경로 탈출 | 접두·실경로 검사 |
| 훅·망 | 외부 | 공급망 콜백 | 이그레스 거부·거울 |
| 정지 프로세스 | 워커 | 큐 정지 | 유예 킬·세션 만료 |
로컬 샌드박스 구성 스니펫
샌드박스 실행·시트벨트의 거부 우선을 러너가 전용 사용자·고정 루트·최소 환경으로 재구현합니다.
# 세션 부트
export SESSION_ID="${SESSION_ID:-$(uuidgen | tr '[:upper:]' '[:lower:]')}"
export AGENT_ROOT="$HOME/llm-agent-sand/$SESSION_ID"
mkdir -p "$AGENT_ROOT"/{workspace,tmp,cache,logs} && chmod 700 "$AGENT_ROOT"
cd "$AGENT_ROOT/workspace" || exit 1
export TMPDIR="$AGENT_ROOT/tmp" XDG_CACHE_HOME="$AGENT_ROOT/cache"
ulimit -t 180 2>/dev/null || true씨아이 게이트 연동
새 도구는 소유자·스키마·기본 타임아웃 없이 병합 금지, 가짜 워크스페이스 드라이런으로 쓰기 범위 단언, 야간 예산 합 초과 시 실패, 루프백 토큰 커밋 차단. 통과분만 원격 맥으로 승격합니다.
권한·경로·타임아웃 수락 검사
- 세션 접두가 모든 쓰기에 붙고 삭제 시 작업·임시·캐시 동반 삭제
- 임시·캐시가 에이전트 루트 안만 사용
- 도구별 벽시계와 만료 시 그룹 킬
- 그래프 퓨즈가 유휴 종료보다 짧음
- 원본 읽기 전용·푸시는 별도 승인
- 이그레스 기본 거부·프로필 허용만
- 로그 비식별·모델에는 구조화 오류
- 원격 노드에서 부하 두 배 한 시간 소크 시 좀비 없음
실패 모드 질문
허용 목록만? 링크·상대 경로·자식·환경이 뚫습니다. 작업 폴더와 출력 상한을 같이 씁니다.
클라우드가 더 안전? 불신 코드는 일회 가상 머신, 애플 빌드는 맥에 계약 복제.
부하에서? 고아 셸·스크래치·체크포인트가 먼저 깨집니다.
타임아웃 응답? 멱등만 재시도 힌트, 정책 위반은 종료 코드로 고정.
실행 정책 복붙
- 도구는 자동화 전용 계정만 사용
- 원격 호출마다 세션 식별자·에이전트 루트·도구 깊이 전달
- 클라이언트·하위 프로세스·그래프 타임아웃을 한 파일에 기록
- 씨아이 드라이런 통과 후에만 프로덕션 템플릿 승격
요약: 클라우드식 계약을 맥에 옮겨 표·검사·씨아이로 잠그면 도구 호출 샌드박스가 원격 맥에서도 감사 가능합니다.