AACWorkflow Docs

환경 변수

로컬 CLI와 데몬이 읽는 AACWORKFLOW_* 환경 변수 — 여러분이 직접 설정할 수 있는 유일한 부분입니다.

AACWorkflow Cloud의 백엔드는 AACWorkflow가 중앙에서 운영합니다 — 서버 쪽에는 여러분이 설정할 것이 없습니다. 여러분이 실제로 설정하는 것은 자신의 기기에서 실행되는 로컬 CLI와 데몬 — 여러분의 AI 코딩 도구를 AACWorkflow Cloud에 연결하는 런타임입니다. 이 페이지는 데몬이 읽는 모든 변수를 나열합니다.

데몬 튜닝 파라미터

데몬은 사용자의 로컬 기기에서 실행되며, 그 설정도 로컬 환경 변수에서 읽습니다. 일반적으로 사용되는 것들:

변수기본값설명
AACWORKFLOW_SERVER_URLwss://api.aacworkflow.com/wsAACWorkflow Cloud의 WebSocket 주소
AACWORKFLOW_DAEMON_DEVICE_NAME호스트명Runtimes UI에 표시되는 장치 이름
AACWORKFLOW_AGENT_RUNTIME_NAME기본값런타임 표시 이름
AACWORKFLOW_DAEMON_HEARTBEAT_INTERVAL15s하트비트 간격
AACWORKFLOW_DAEMON_POLL_INTERVAL30s작업 폴링 간격
AACWORKFLOW_DAEMON_MAX_CONCURRENT_TASKS20최대 동시 작업 수
AACWORKFLOW_AGENT_TIMEOUT0에이전트 실행당 절대 벽시계 상한. 0은 상한 없음 — inactivity watchdog만이 긴 실행을 제한합니다. 하드 리소스/비용 상한이 필요하면 양의 Go 기간을 지정하세요
AACWORKFLOW_CODEX_SEMANTIC_INACTIVITY_TIMEOUT10mCodex 전용 inactivity watchdog 시간
AACWORKFLOW_CODEX_HANDSHAKE_TIMEOUT30sCodex app-server 시작 RPC 타임아웃
AACWORKFLOW_DAEMON_AUTO_UPDATEtruefalse/0/no/off로 설정하면 데몬의 CLI 자동 업데이트 폴링이 꺼집니다
AACWORKFLOW_DAEMON_AUTO_UPDATE_INTERVAL6h데몬이 새 CLI 릴리스를 GitHub에서 확인하는 주기
AACWORKFLOW_AGENT_IDLE_WATCHDOG30m실행 중인 도구가 없는 상태에 대한 전역 무응답 watchdog. 0은 프로바이더별 재정의를 포함해 watchdog 전체를 비활성화합니다
AACWORKFLOW_OPENCODE_IDLE_WATCHDOG10m첫 토큰이 오지 않거나 스트림이 멈췄을 때를 위한 OpenCode 전용 무응답 윈도우. 0AACWORKFLOW_AGENT_IDLE_WATCHDOG로 폴백하며, 더 큰 값이라도 그 전역 상한을 넘길 수 없습니다
AACWORKFLOW_AGENT_TOOL_WATCHDOG2h도구 호출이 진행 중일 때의 침묵 허용 시간. 0은 멈춘 도구에 대한 이 안전장치를 비활성화합니다
AACWORKFLOW_<PROVIDER>_PATHCLI 이름과 일치각 AI 코딩 도구 실행 파일의 경로 (예: AACWORKFLOW_CLAUDE_PATH)
AACWORKFLOW_<PROVIDER>_MODEL비어 있음각 AI 코딩 도구의 기본 모델
AACWORKFLOW_<PROVIDER>_ARGS비어 있음백엔드별 데몬 전역 기본 CLI 인자. 각 작업에 대해 각 에이전트 자체의 custom_args보다 먼저 적용됩니다. AACWORKFLOW_CLAUDE_ARGS, AACWORKFLOW_CODEX_ARGS, AACWORKFLOW_CODEBUDDY_ARGS를 지원

각 파라미터가 데몬 동작에 어떻게 영향을 미치는지에 대한 전체 설명은 데몬과 런타임을 참고하세요.

config.json에 데몬 설정 유지하기

위 표의 모든 데몬 키 — device_name, runtime_name, max_concurrent_tasks, poll_interval, heartbeat_interval, agent_timeout, codex_semantic_inactivity_timeout, codex_handshake_timeout, disable_auto_update, auto_update_check_interval — 는 프로파일의 ~/.aacworkflow/config.json(또는 ~/.aacworkflow/profiles/<name>/config.json)에 유지할 수도 있어, daemon start 마다 플래그를 다시 전달하거나 환경 변수를 export 할 필요가 없습니다.

aacworkflow config set device_name my-vm-custom-name
aacworkflow config set runtime_name worker-a
aacworkflow config set max_concurrent_tasks 8
aacworkflow config set poll_interval 10s          # Go 기간, 반드시 > 0
aacworkflow config set heartbeat_interval 30s
aacworkflow config set agent_timeout 1h           # 또는 0s로 벽시계 상한을 명시적으로 비활성화
aacworkflow config set codex_semantic_inactivity_timeout 15m
aacworkflow config set codex_handshake_timeout 45s
aacworkflow config set disable_auto_update true   # 단방향: 자동 업데이트를 끄는 용도로만 사용
aacworkflow config set auto_update_check_interval 12h

기간 키는 양수인 Go 기간(500ms, 10s, 1m30s 등)만 허용합니다. 0s, 음수, 파싱 불가능한 문자열은 config set 시점에 거부됩니다 — agent_timeout은 예외로, 여기서 0s는 "벽시계 상한을 명시적으로 비활성화" 하는 의미 있는 값입니다(음수는 여전히 거부됨). 이미 저장된 값을 지우고 환경 변수 / 내장 기본값으로 되돌리려면 빈 문자열을 전달하세요: aacworkflow config set poll_interval "".

disable_auto_update는 단방향 불리언입니다. true로 설정하면 데몬의 CLI 자동 업데이트 폴링이 꺼지고, false(또는 ""로 클리어)로 설정하면 결정을 AACWORKFLOW_DAEMON_AUTO_UPDATE에 다시 넘깁니다. config 파일에서 자동 업데이트를 강제로 켜는 데는 사용할 수 없습니다.

우선순위(위쪽이 우선): daemon start--flag > AACWORKFLOW_… 환경 변수 > config.json > 내장 기본값. systemd unit 등에서 설정한 라이브 환경 변수는 파일을 이깁니다. 명시적인 CLI 플래그는 둘 다 이깁니다.

같은 호스트에서 --profile <name>으로 여러 데몬을 실행할 때 특히 유용합니다: 프로파일마다 별도의 device_name을 지정하면 Runtimes UI에서 공유된 호스트명 아래로 뭉치지 않고 서로 다른 행으로 구분됩니다.

기본 에이전트 인자 (AACWORKFLOW_<PROVIDER>_ARGS)

백엔드에 대해 플릿 전역 기본값 계층의 CLI 플래그를 설정합니다. 각 에이전트의 custom_args를 일일이 수정하지 않고도 데몬의 모든 에이전트에 기본 비용·리소스 기준선(예: --max-turns)을 적용할 수 있는 편리한 방법입니다. 이는 넘을 수 없는 상한이 아니라 기본 계층입니다. 각 에이전트 자체의 custom_args가 뒤에 추가되어 이를 덮어쓸 수 있습니다(아래 우선순위 참고).

  • 우선순위: 기본 인자가 먼저 적용되고, 그다음 각 에이전트 자체의 custom_args가 추가됩니다. 값을 받는 플래그의 경우 다운스트림 CLI 자체의 인자 파서가 최종 적용 값을 결정합니다(대부분의 도구는 마지막 항목이 우선). 따라서 개별 에이전트는 데몬 기본값을 높일 수 있지만, 에이전트가 덮어쓰지 않은 부분에는 기본값이 계속 적용됩니다.
  • 파싱: 값은 POSIX 셸 단어 규칙으로 분할되므로 따옴표를 사용할 수 있습니다 — AACWORKFLOW_CLAUDE_ARGS='--append-system-prompt "multi word"'는 두 개의 토큰으로 파싱됩니다.
  • 안전성: 기본 인자 계층과 에이전트별 custom_args 계층 모두 동일한 blocked-flags 필터를 통과합니다. 따라서 프로토콜에 중요한 플래그(Claude의 -p, --output-format, --input-format, --permission-mode, --mcp-config 및 Codex의 --listen 등)는 어느 계층을 통해서도 주입할 수 없습니다.
  • 미설정/빈 값은 동작에 변화가 없음을 의미합니다.

다음