9.2. Squad 컨테이너 모드¶
Squad 컨테이너 모드는 개별 Squad 에이전트를 격리된 컨테이너 내에서 실행하여 더 강력한 보안 경계와 재현 가능한 실행 환경을 제공합니다. Squad 내 에이전트별로 컨테이너 모드를 활성화할 수 있어, 일부 에이전트는 인프로세스로, 다른 에이전트는 컨테이너에서 실행할 수 있습니다.
사전 요구 사항¶
컨테이너 모드를 활성화하기 전에 컨테이너 실행 가이드를 완료하세요:
- 컨테이너 런타임 설치 (Docker 또는 Apple Container)
- 에이전트 러너 이미지 빌드 (
aigo-agent-runner:latest) - 마운트 허용 목록 설정
- 자격증명 프록시 실행 중 (에이전트에 외부 API 접근이 필요한 경우)
작동 방식¶
에이전트가 컨테이너 모드로 실행될 때:
sequenceDiagram
participant Host as Backend.AI GO 호스트
participant NS as 네임스페이스 관리자
participant C as 컨테이너
participant CP as 자격증명 프록시
Host->>NS: 세션 디렉터리 생성
NS->>C: 워크스페이스 마운트로 컨테이너 시작
C->>CP: API 요청 (플레이스홀더 자격증명 사용)
CP->>CP: 실제 자격증명으로 대체
CP-->>C: 실제 자격증명으로 전달된 요청
C->>Host: IPC: 메시지 전송 / 작업 생성
Host-->>C: IPC: 후속 메시지
C->>Host: IPC: 닫기 (작업 완료)
Host->>C: 컨테이너 중지 각 컨테이너는 다음을 수신합니다:
/workspace— Squad의 공유 워크스페이스 디렉터리 (메인 에이전트는 읽기-쓰기, 나머지는 읽기 전용)/workspace/extra/{name}— 설정한 추가 마운트/workspace/ipc— 호스트-컨테이너 통신을 위한 IPC 디렉터리.claude/— 에이전트의 SDK 세션 상태
1단계: Squad 생성 또는 편집¶
-
사이드바에서 Squad로 이동합니다.
-
새 Squad 클릭 또는 기존 Squad를 엽니다.
-
아직 설정하지 않았다면 Squad의 워크스페이스 디렉터리를 설정합니다.
2단계: 에이전트에서 컨테이너 모드 활성화¶
-
Squad 편집기에서 컨테이너화할 에이전트를 클릭합니다.
-
에이전트 설정 패널에서 실행 모드를 찾습니다.
-
드롭다운에서 컨테이너를 선택합니다 (기본값은 인프로세스).
-
컨테이너 설정 옵션이 나타납니다:
필드 기본값 설명 이미지 aigo-agent-runner:latest사용할 컨테이너 이미지 타임아웃 30분 최대 실행 시간 유휴 타임아웃 없음 출력이 없을 때 컨테이너를 종료하는 시간 추가 마운트 비어 있음 추가 호스트 경로 마운트
3단계: 그룹 네임스페이스 설정¶
그룹 네임스페이스는 컨테이너를 격리된 세션 그룹으로 구성합니다. 각 그룹은 고유한 세션 디렉터리와 지침 세트를 갖습니다.
그룹 네임스페이스 생성¶
-
설정 > 컨테이너 > 그룹으로 이동합니다.
-
새 그룹을 클릭합니다.
-
이름을 입력합니다 (파일시스템 안전 문자, 예:
dev-team). -
선택적으로 설명을 추가합니다.
-
생성을 클릭합니다.
그룹 지침 설정¶
그룹별 지침(CLAUDE.md에 해당)은 해당 그룹의 모든 컨테이너 세션에 주입됩니다:
-
그룹 목록에서 그룹 이름을 클릭합니다.
-
지침 편집을 클릭합니다.
-
지침을 입력합니다 (Markdown 지원).
-
저장을 클릭합니다.
4단계: Squad 실행¶
-
Squad 패널에서 실행을 클릭합니다.
-
작업 설명을 제출합니다.
-
플래너가 작업 그래프를 생성하고 에이전트에 작업을 할당합니다.
-
컨테이너 모드 에이전트에 작업이 할당되면:
DATA_DIR/sessions/{group}/아래에 세션 디렉터리가 생성됩니다- 워크스페이스와 IPC 마운트가 포함된 컨테이너가 시작됩니다
- 에이전트가 작업을 처리하고 IPC를 통해 결과를 전달합니다
- 작업이 완료되거나 타임아웃되면 컨테이너가 중지됩니다
컨테이너 실행 모니터링¶
Squad 모니터링 대시보드에서 컨테이너별 상태를 확인할 수 있습니다:
| 상태 | 설명 |
|---|---|
provisioning | 컨테이너 시작 중, 이미지 준비 중 |
running | 컨테이너가 활성화되어 처리 중 |
completed | 컨테이너가 성공적으로 완료됨 |
failed | 컨테이너가 오류로 종료됨 |
timeout | 컨테이너가 실행 시간 제한을 초과함 |
API 참조¶
| 엔드포인트 | 메서드 | 설명 |
|---|---|---|
/api/v1/container/queue/groups | GET | 모든 컨테이너 그룹 목록 |
/api/v1/container/queue/groups/{group} | GET | 컨테이너 그룹 상태 조회 |
/api/v1/container/queue/counts | GET | 그룹별 큐 수 조회 |
/api/v1/container/run-history | GET | 컨테이너 실행 기록 조회 |
/api/v1/container/metrics | GET | 현재 컨테이너 메트릭 |
/api/v1/container/analytics | GET | 집계된 컨테이너 분석 |