环境变量
本地 CLI 和守护进程读取的 AACWORKFLOW_* 环境变量——这是你唯一需要配置的部分。
AACWorkflow Cloud 的后端由 AACWorkflow 集中运维——服务端没有任何东西需要你来配置。你真正会配置的是跑在你自己机器上的 aacworkflow CLI 和守护进程——把你的 AI 编程工具接到 AACWorkflow Cloud 的那个 runtime。这一页列出守护进程会读的每一个变量。
守护进程的调节参数
守护进程跑在你本地机器上,配置也是读本地环境变量。常用的几个:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
AACWORKFLOW_SERVER_URL | wss://api.aacworkflow.com/ws | AACWorkflow Cloud 的 WebSocket 地址 |
AACWORKFLOW_DAEMON_DEVICE_NAME | 主机名 | 运行时页面显示的设备名 |
AACWORKFLOW_AGENT_RUNTIME_NAME | 内置默认 | 运行时显示名 |
AACWORKFLOW_DAEMON_HEARTBEAT_INTERVAL | 15s | 心跳频率 |
AACWORKFLOW_DAEMON_POLL_INTERVAL | 30s | 任务轮询频率 |
AACWORKFLOW_DAEMON_MAX_CONCURRENT_TASKS | 20 | 并发任务上限 |
AACWORKFLOW_AGENT_TIMEOUT | 0 | 单次任务的绝对墙钟上限;0 = 不设上限,任务只受看门狗约束(活跃任务不会因为跑得久被杀)。想要硬性成本/资源天花板时再设一个正值 |
AACWORKFLOW_CODEX_SEMANTIC_INACTIVITY_TIMEOUT | 10m | Codex 专用的静默看门狗窗口 |
AACWORKFLOW_CODEX_HANDSHAKE_TIMEOUT | 30s | Codex app-server 启动 RPC 超时 |
AACWORKFLOW_DAEMON_AUTO_UPDATE | true | 设为 false/0/no/off 关闭守护进程的 CLI 自动更新轮询 |
AACWORKFLOW_DAEMON_AUTO_UPDATE_INTERVAL | 6h | 守护进程轮询 GitHub 检查 CLI 新版本的间隔 |
AACWORKFLOW_AGENT_IDLE_WATCHDOG | 30m | 空闲看门狗:backend 持续静默(无消息、消息队列为空、且没有工具在途)这么久就 force-stop。0 = 关闭整套看门狗,包括 provider 专用阈值 |
AACWORKFLOW_OPENCODE_IDLE_WATCHDOG | 10m | OpenCode 首 token 未到或流式回复中断时的专用无消息阈值;0 = 回退到 AACWORKFLOW_AGENT_IDLE_WATCHDOG,更大的值不能放宽全局阈值 |
AACWORKFLOW_AGENT_TOOL_WATCHDOG | 2h | 工具在途时的静默上限:某个工具调用发出后长时间无任何输出(疑似卡死的子进程)这么久就 force-stop。0 = 关闭该兜底(在途工具永不被停) |
AACWORKFLOW_<PROVIDER>_PATH | 对应 CLI 名 | 各 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 —— 都可以持久化到 profile 对应的 ~/.aacworkflow/config.json(或 ~/.aacworkflow/profiles/<name>/config.json),这样就不用每次 daemon start 都重传 flag 或 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 文件强制开启自动更新。
优先级从高到低:--flag(daemon start 命令行)> AACWORKFLOW_… 环境变量 > config.json > 内置默认。运行时环境变量(如 systemd unit 里设的)优先级高于 config 文件;显式命令行 flag 又高于两者。
当你在同一台机器上用 --profile <name> 起多个 daemon 时,尤为好用:给每个 profile 独立设置 device_name,运行时页面就能看到独立的机器,而不是全部挤在同一个主机名下。
默认智能体参数(AACWORKFLOW_<PROVIDER>_ARGS)
为某个后端设置一层全机队默认的 CLI 参数——可以方便地给一台守护进程上的所有智能体应用一个默认的成本或资源基线(例如 --max-turns),而不必逐个修改每个智能体的 custom_args。这是一层默认值,而不是不可突破的硬上限:每个智能体自己的 custom_args 会追加在后面,并可以覆盖它(见下方优先级)。
- 优先级: 默认参数先生效,随后追加各智能体自己的
custom_args。对于带取值的参数,由下游 CLI 自己的参数解析器决定最终生效值(多数工具采用「后者覆盖」),因此单个智能体可以调高某个守护进程默认值,但在智能体没有覆盖的地方,默认值依然生效。 - 解析: 取值按 POSIX shell-word 规则切分,因此引号可用——
AACWORKFLOW_CLAUDE_ARGS='--append-system-prompt "multi word"'会解析为两个 token。 - 安全: 默认参数层和各智能体的
custom_args层都会经过同一套 blocked-flags 过滤,因此协议关键标志(如 Claude 的-p、--output-format、--input-format、--permission-mode、--mcp-config,以及 Codex 的--listen)无法从任何一层注入。 - 未设置 / 为空 表示不改变行为。