콘텐츠로 이동

코드 에이전트, 위임, 파이프라인

delegate, swarm, llm_task, execute_pipeline을 사용하여 코딩 CLI에 위임하고 멀티 에이전트 및 멀티 스텝 작업을 오케스트레이션합니다.

작업이 단일 도구 호출보다 클 때 — 멀티 파일 리팩터링, 리서치 후 요약 체인, 병렬 서브태스크 팬아웃 — 에이전트는 작업을 인라인으로 처리하지 않고 다른 곳에 위임할 수 있습니다. 이 페이지에서는 두 가지 도구 계열을 설명합니다.

  • 코드 에이전트 도구 (claude_code, claude_code_runner, codex_cli, gemini_cli, google_agents_cli, opencode_cli) — 자체 에이전트 루프를 실행하는 외부 코딩 CLI에 코딩 작업을 위임합니다.
  • 오케스트레이션 도구 (delegate, swarm, llm_task, execute_pipeline) — Revka의 자체 서브 에이전트를 조율하거나, 도구 없이 LLM 호출을 실행하거나, 여러 도구를 한 번에 체인으로 연결합니다.

이 페이지의 모든 도구는 설정을 통해 활성화되며 기본적으로 비활성화되어 있습니다. 각 도구는 카탈로그의 나머지 도구와 동일한 보안 정책을 따릅니다. 자율성 수준, 시간당 액션 예산, 워크스페이스 경로 제한이 모두 스폰 전에 적용됩니다. 에이전트 간 조율에 대한 전체적인 개요는 에이전트, 팀 & 스웜에이전트 스폰 & 조율을 참고하십시오.

이 도구들은 호스트에 설치된 별도의 코딩 CLI에 작업을 위임합니다. CLI는 자체 에이전트 루프(파일 읽기, 편집, 셸 명령 실행)를 Revka 워크스페이스 내부로 해석되는 작업 디렉터리 안에서 실행합니다. .. 또는 심볼릭 링크를 통해 워크스페이스 외부로 해석되는 작업 디렉터리는 거부됩니다.

인증은 기본적으로 CLI 자체의 세션에 위임됩니다. claude_code, codex_cli, gemini_cli, opencode_cli 모두 바이너리의 기존 OAuth/로그인 세션을 사용합니다. env_passthrough에 키 변수를 명시적으로 나열하지 않는 한 Revka에서 API 키를 읽지 않습니다(예: Claude Code를 API 키 과금으로 전환하려면 ANTHROPIC_API_KEY를 나열).

6가지 도구 공통 제한: 기본 실행 타임아웃 600초(코딩 작업은 장시간 실행됨)와 2MB 출력 상한 (max_output_bytes, 기본값 2097152).

Claude Code(claude -p)에 코딩 작업을 위임합니다. 파일 편집, Bash 실행, 구조화된 출력, 멀티턴 세션을 지원합니다.

{
"prompt": "Refactor the authentication module to use JWT",
"working_directory": "src/auth"
}
필드타입기본값설명
promptstring— (필수)위임할 코딩 작업.
allowed_toolsstring[]["Read","Edit","Bash","Write"]이 호출에 사용할 Claude Code 도구 허용 목록을 재정의합니다.
system_promptstring설정에서 가져옴이 호출의 시스템 프롬프트를 재정의하거나 추가합니다.
session_idstringID로 이전 Claude Code 세션을 재개합니다.
json_schemaobject이 JSON Schema에 맞는 구조화된 출력을 요청합니다.
working_directorystring워크스페이스 루트작업 디렉터리. 워크스페이스 내부로 해석되어야 합니다.

산문 대신 기계 파싱 가능한 출력을 원할 때는 json_schema를, 이전 멀티턴 실행을 계속하려면 session_id를 전달하십시오.

[claude_code]
enabled = true
timeout_secs = 600
allowed_tools = ["Read", "Edit", "Bash", "Write"]
max_output_bytes = 2097152
# Opt in to API-key billing instead of the CLI's OAuth session:
env_passthrough = ["ANTHROPIC_API_KEY"]

tmux 세션에서 Claude Code 작업을 스폰하며, Slack에 실시간 진행 상황 업데이트와 SSH 핸드오프 링크를 제공합니다. claude_code와 달리 이 도구는 즉시 세션 ID와 연결 명령을 반환하며 작업은 백그라운드에서 계속 실행됩니다. Slack에서 모니터링하고 SSH로 연결하려는 장시간 마이그레이션 작업에 적합합니다.

{
"prompt": "Migrate database schema to v3",
"slack_channel": "C0123456789"
}
필드타입기본값설명
promptstring— (필수)위임할 코딩 작업.
working_directorystring워크스페이스 루트작업 디렉터리. 워크스페이스 내부로 해석되어야 합니다.
slack_channelstring진행 상황 업데이트를 게시할 Slack 채널 ID.
[claude_code_runner]
enabled = true
ssh_host = "myhost.example.com" # used to build the SSH handoff link
tmux_prefix = "zc-claude-" # tmux session name prefix
session_ttl = 3600 # seconds before auto-cleanup

러너는 도구 실행 이벤트를 Revka 게이트웨이에 다시 전송하며, 게이트웨이는 Slack 메시지를 제자리에서 업데이트합니다. 반환된 연결 명령으로 ssh에 접속한 후 tmux attach로 라이브 세션을 보거나 인계받을 수 있습니다.

Codex CLI(codex -q)에 코딩 작업을 위임합니다. 파일 편집과 Bash 실행을 포함한 전체 Codex 에이전트 루프를 실행합니다.

{ "prompt": "Add unit tests for the parser module", "working_directory": "src/parser" }
필드타입기본값설명
promptstring— (필수)위임할 코딩 작업.
working_directorystring워크스페이스 루트작업 디렉터리. 워크스페이스 내부로 해석되어야 합니다.
[codex_cli]
enabled = true
timeout_secs = 600
max_output_bytes = 2097152
env_passthrough = ["OPENAI_API_KEY"] # optional; defaults to the CLI's own session

Gemini CLI(gemini -p)에 코딩 작업을 위임합니다. codex_cli와 동일한 구조입니다.

{ "prompt": "Convert this Python script to use async/await", "working_directory": "scripts" }
필드타입기본값설명
promptstring— (필수)위임할 코딩 작업.
working_directorystring워크스페이스 루트작업 디렉터리. 워크스페이스 내부로 해석되어야 합니다.
[gemini_cli]
enabled = true
timeout_secs = 600
max_output_bytes = 2097152
env_passthrough = ["GOOGLE_API_KEY"] # optional

Google Agent Platform에서 ADK / A2A 에이전트를 위한 Google Agents CLI(agents-cli) 라이프사이클 명령을 실행합니다. 다른 코드 에이전트 도구와 달리, 자유 텍스트 프롬프트가 아닌 argv 방식의 명령 배열을 받으며 허용 목록에 등록된 서브커맨드 집합으로 제한됩니다. 임의 셸 실행이 아닙니다.

지원되는 서브커맨드: setup, create, scaffold, install, lint, run, eval, deploy, publish, infra, data-ingestion, playground, update, login --status, info. 비대화형 ADK 프로젝트 프롬프트에는 agents-cli run을, 라이프사이클 작업에는 deploy, eval run, publish gemini-enterprise를 사용하십시오.

{ "command": ["scaffold", "--template", "rag"], "working_directory": "my-agent" }
필드타입기본값설명
commandstring[]— (필수)서브커맨드와 해당 인수.
working_directorystring워크스페이스 루트작업 디렉터리. 워크스페이스 내부로 해석되어야 합니다.
[google_agents_cli]
enabled = true
timeout_secs = 600 # deploy/eval commands can be long
max_output_bytes = 2097152
env_passthrough = [] # uses the binary's own Google Cloud / AI Studio creds by default

OpenCode CLI(opencode run)에 코딩 작업을 위임합니다. codex_cli와 동일한 구조입니다.

{ "prompt": "Implement a binary search tree in Rust" }
필드타입기본값설명
promptstring— (필수)위임할 코딩 작업.
working_directorystring워크스페이스 루트작업 디렉터리. 워크스페이스 내부로 해석되어야 합니다.
[opencode_cli]
enabled = true
timeout_secs = 600
max_output_bytes = 2097152
env_passthrough = [] # uses the CLI's own session by default

[agents.<name>] 설정에 정의된 명명된 서브 에이전트에 서브태스크를 위임합니다. 기본적으로 서브 에이전트는 단일 프롬프트를 실행하며, 설정에서 agentic = true로 지정하면 자체 도구 허용 목록으로 전체 도구 호출 루프를 실행합니다. delegate는 백그라운드 실행(즉시 task_id 반환)과 여러 에이전트에 대한 병렬 팬아웃도 지원합니다.

{
"agent": "researcher",
"prompt": "Summarize the top 5 recent papers on diffusion models",
"background": false
}
필드타입기본값설명
actionstringdelegatedelegate | check_result | list_results | cancel_task.
agentstring— (delegate 시 필수)[agents.<name>] 설정의 에이전트 이름.
promptstring— (delegate 시 필수)서브 에이전트에 전달할 작업 프롬프트.
contextstring프롬프트 앞에 추가할 컨텍스트.
backgroundbooleanfalse블로킹 대신 즉시 task_id를 반환합니다.
parallelstring[]동일한 프롬프트로 동시에 실행할 에이전트 이름 목록.
task_idstringcheck_result / cancel_task 시 사용 (백그라운드 delegate가 반환한 값).

백그라운드 워크플로우: background: truedelegate를 호출하고 반환된 task_id를 저장한 후, 나중에 해당 task_idaction: "check_result"를 호출합니다. action: "list_results"로 모든 백그라운드 작업을 조회하고, action: "cancel_task"로 실행 중인 작업을 중지할 수 있습니다.

서브 에이전트는 설정에서 정의됩니다. 재진입 위임 루프 방지를 위해 delegate 도구 자체는 서브 에이전트 허용 목록에서 제외되며, max_depth로 중첩 위임을 제한합니다.

[agents.researcher]
provider = "openrouter"
model = "anthropic/claude-sonnet-4-6"
system_prompt = "You are a research assistant."
agentic = true # enables the tool-call loop
allowed_tools = ["web_search", "http_request", "file_read"]
max_iterations = 8
agentic_timeout_secs = 600
# Global delegate defaults (used unless overridden per-agent):
[delegate]
timeout_secs = 120 # non-agentic calls
agentic_timeout_secs = 300 # agentic loops

[agents.<name>]의 전체 스키마는 설정: 프로바이더, 에이전트 & 라우팅을 참고하십시오.

명명된 에이전트 스웜을 오케스트레이션하여 작업을 협력적으로 처리합니다. delegate가 단일 에이전트를 대상으로 하는 반면, swarm은 설정에 정의된 전략에 따라 여러 에이전트를 조율합니다.

  • sequential — 파이프라인 방식. 각 에이전트의 출력이 다음 에이전트의 입력이 됩니다.
  • parallel — 팬아웃 후 팬인 방식. 모든 에이전트가 동시에 실행되고 결과가 합산됩니다.
  • router — LLM이 작업을 처리할 에이전트를 선택합니다.
{
"swarm": "research-team",
"prompt": "Analyze the competitive landscape for AI code assistants"
}
필드타입기본값설명
swarmstring— (필수)[swarms.<name>] 설정의 스웜 이름.
promptstring— (필수)스웜에 전달할 작업 프롬프트.
contextstring추가 컨텍스트.
[swarms.research-team]
agents = ["researcher", "coder"] # names from [agents.<name>]
strategy = "sequential" # sequential | parallel | router
timeout_secs = 300
# router_prompt = "..." # used when strategy = "router"

관련 오케스트레이션에 대한 내용은 에이전트, 스킬 & 팀 API내장 워크플로우 & 오케스트레이션 패턴을 참고하십시오.

도구 접근 없이 LLM을 통해 프롬프트를 실행하고 응답을 반환합니다. 선택적으로 JSON Schema에 대한 출력 유효성 검사를 수행합니다. 구조화된 추출, 분류, 요약, 변환 — 즉, 순수한 프롬프트 입력/답변 출력 호출에 적합한 도구입니다. 작업에 도구가 필요한 경우에는 delegate를 사용하십시오.

{
"prompt": "Extract the company name and founding year from: <text>",
"schema": {
"type": "object",
"properties": {
"company": { "type": "string" },
"founded": { "type": "integer" }
},
"required": ["company", "founded"]
}
}
필드타입기본값설명
promptstring— (필수)전송할 프롬프트.
schemaobjectJSON Schema. 설정 시 모델이 일치하는 JSON을 반환하도록 지시됩니다.
modelstringdefault_model이 호출에 사용할 모델을 재정의합니다.
temperaturenumberdefault_temperaturetemperature를 재정의합니다 (0.02.0).

재정의가 없으면 llm_task는 루트 설정의 default_provider, default_model, default_temperature를 사용합니다.

단일 호출로 멀티 스텝 도구 파이프라인을 실행합니다. 스텝은 기본적으로 순차적으로 실행되며, 이전 스텝의 출력을 {{step[N].result}} 인터폴레이션으로 참조할 수 있습니다. parallel: true로 설정하면 모든 스텝이 동시에 실행되지만 병렬 모드에서는 스텝 간 인터폴레이션이 작동하지 않습니다. 정해진 실행 순서가 없기 때문입니다.

{
"steps": [
{ "tool": "web_search_tool", "args": { "query": "Rust async runtimes 2026" } },
{ "tool": "llm_task", "args": { "prompt": "Summarize these results:\n{{step[0].result}}" } },
{ "tool": "file_write", "args": { "path": "out/summary.md", "content": "{{step[1].result}}" } }
]
}
필드타입기본값설명
stepsarray— (필수)각 요소는 { "tool": "<name>", "args": { ... } } 형식입니다.
parallelbooleanfalse모든 스텝을 동시에 실행합니다. 이 모드에서는 {{step[N].result}} 인터폴레이션이 작동하지 않습니다.

{{step[N].result}} 인터폴레이션: N은 이전 스텝의 0 기반 인덱스입니다. 현재 스텝 실행 전에 해당 스텝의 텍스트 결과로 플레이스홀더가 교체됩니다. args 객체 내 어디서든 — 문자열, 중첩 객체, 배열 모두 — 작동합니다. 이전 스텝만 참조할 수 있으며, 순차 실행이 인터폴레이션을 가능하게 합니다.

[pipeline]
enabled = true
max_steps = 20
# Allowlist: steps referencing a tool not on this list are rejected before execution.
allowed_tools = ["web_search_tool", "llm_task", "file_read", "file_write", "shell"]
목적사용 도구
외부 코딩 CLI의 전체 에이전트 루프에 코딩 작업 위임claude_code, codex_cli, gemini_cli, opencode_cli
Slack 진행 상황 + SSH 핸드오프로 장시간 코딩 작업을 백그라운드에서 실행claude_code_runner
Google ADK / Agent Platform 라이프사이클 명령 실행google_agents_cli
구성된 단일 서브 에이전트 실행 (도구 포함, 백그라운드 또는 병렬 가능)delegate
전략에 따라 여러 구성된 에이전트 조율swarm
도구 없이 LLM 호출 (선택적 스키마 검증 포함)llm_task
여러 도구를 한 번의 호출로 체인, 결과를 다음 스텝에 전달execute_pipeline