AI 에이전트 자동화: agent-pool에서 파이프라인, 신호, 스케줄러 활용하기
agent-pool MCP 서버는 IDE와 Gemini CLI 내에서 분할형 에이전트 팀을 간편하게 관리할 수 있게 해줍니다. 워커들은 작업을 위임하며 하위 그룹을 형성합니다. 과거에는 조율 작업이 수동으로 이루어졌지만, 이제 파이프라인, 재시도 로직, 크론 스케줄러, SSH 러너까지 하나의 Google AI 구독으로 모두 이용 가능합니다.
핵심 과제는 무엇일까요? 기존 조율 도구는 의존 단계(분석 → 리팩터링 → 테스트)를 기다리는 동안 자원을 낭비합니다. 반면 파이프라인 데몬은 백그라운드에서 워커를 실행하며, 의존성을 자동으로 전파합니다.
작업 체인을 위한 파이프라인
create_pipeline 도구를 사용해 미리 단계를 정의합니다. 분리된 데몬은 트리거 시점에 워커를 시작합니다:
on_complete— 특정 단계 이후 실행.on_complete_all— 일정 그룹의 워커가 완료될 때까지 대기 (팬인).on_file— 파일 생성 이벤트에 반응.
예시 워크플로우:
┌─ frontend ─┐
research ─┤ ├── deploy
└─ backend ─┘
데몬은 IDE 재시작 후에도 유지되며, 작업의 지속성을 보장합니다.
신호와 재시도를 통한 커뮤니케이션
에이전트는 signal_step_complete로 완료를 알립니다. 데이터가 불완전하면 bounce_back을 통해 오류 사유와 함께 작업을 수정 요청으로 반환 — 마치 GitHub의 "변경 요청" 기능과 유사합니다.
maxBounces 제한은 무한 루프를 방지합니다. 워커는 피드백(예: "로그 누락")을 받고 문제를 해결한 후 다시 신호를 보냅니다.
크론 태스크 스케줄러
schedule_task는 에이전트를 크론 표현식(0 9 *)과 연결합니다. 스케줄러는 원자적 파일 잠금을 사용해 여러 IDE 세션에서도 중복 실행을 방지합니다.
결과는 .agents/scheduled-results/에 저장됩니다. 서버 모니터링이나 자동 리포팅에 이상적입니다.
원격 SSH 러너
agent-pool.config.json에 SSH 설정을 구성합니다:
{
"runners": {
"remote": {
"type": "ssh",
"host": "dev-server.company.com",
"user": "agent",
"geminiPath": "/home/agent/.nvm/versions/node/v22.0.0/bin/gemini"
}
}
}
작업을 위임합니다:
delegate_task(
prompt: "격리된 환경에서 테스트 실행",
runner: "remote"
)
로컬 세션이 종료된 후에도 작업은 계속됩니다. 에이전트는 브랜치에서 작업하고 변경 사항을 커밋하며, PR을 푸시합니다.
세션을 통한 컨텍스트 전달
Gemini CLI는 세션에 작업 이력을 저장합니다. session_id를 전달하면 이어질 수 있습니다:
# 분석
delegate_task(prompt: "src/auth/ 분석") -> task_1
# 결과
get_task_result(task_1) -> { session_id: "abc-123" }
# 이어하기
delegate_task(
prompt: "분석 결과를 바탕으로 테스트 작성",
session_id: "abc-123"
)
list_sessions 명령어로 활성 세션 목록을 확인할 수 있습니다.
접근 정책과 디렉터리 확장
policy로 도구 접근 권한을 제한합니다:
read-only— 파일 읽기만 허용.safe-edit— 쉘 명령어 실행 없이 파일 편집 가능.
예시:
delegate_task_readonly(
prompt: "src/auth/에 취약점 검토",
policy: "read-only"
)
include_dirs는 작업 디렉터리 외부의 경로까지 포함 가능하게 합니다.
에이전트 그룹과 파이프라인 통합
create_group은 설정을 묶습니다:
create_group({
name: "backend",
runner: "remote",
skill: "node-dev",
policy: "safe-edit",
max_agents: 3
})
delegate_to_group("backend", "auth 모듈 리팩터링", count: 2)
그룹은 .agents/groups.json에 저장됩니다. 파이프라인에서는 다음과 같이 사용합니다:
create_pipeline({
name: "빌드 및 테스트",
steps: [{
name: "run_tests",
group: "backend",
count: 3,
prompt: "테스트 스크립트 실행"
}]
})
데몬은 count만큼의 에이전트를 AGENT_INDEX와 함께 시작하고, 모든 작업이 완료될 때까지 기다립니다. 한 개라도 실패하면 즉시 실패 처리하고 나머지는 취소됩니다.
핵심 요약
- 파이프라인은 의존성 자동화로 조율자 부담을 줄입니다.
- 재시도 제한은 루프를 방지합니다.
- SSH 러너와 크론은 분산 실행을 가능하게 합니다.
- 정책과 그룹은 설정 중복을 줄입니다.
- 세션은 에이전트 간 전체 컨텍스트를 유지합니다.
— Editorial Team
아직 댓글이 없습니다.