自定义 CLI Docker 沙箱
从 Dagu Docker 沙箱运行任意 agent CLI。
自定义 harness provider 将 CLI 二进制、固定参数和 prompt 位置映射到 Dagu harness.run 步骤。它适合内部 agent、包装脚本或 Dagu 未内置的 provider。
Docker 中的自定义 provider
type: graph
harnesses:
review_agent:
binary: review-agent
prefix_args:
- run
prompt_mode: arg
steps:
- id: review
action: harness.run
container:
image: dagu-review-agent:local
pull_policy: never
working_dir: /workspace
volumes:
- .:/workspace:ro
env:
- REVIEW_AGENT_TOKEN=${REVIEW_AGENT_TOKEN}
with:
provider: review_agent
prompt: |
Review this repository.在顶层 harnesses 中定义 provider 二进制。
CLI 以参数接收 prompt 时使用 prompt_mode: arg。
CLI 需要 prompt 标志时使用 prompt_mode: flag。
容器化 harness.run 不使用 stdin prompt mode。
01
Provider 定义
with.provider 中的名称必须匹配顶层 harnesses 中的条目。镜像的 PATH 中必须存在配置的 binary。
02
以参数传递 prompt
当 CLI 接受最后一个命令行参数作为 prompt 时,使用 prompt_mode: arg。Dagu 会构建类似 review-agent run "Review this repository." 的命令。
03
以标志传递 prompt
当 CLI 需要命名 prompt 标志时,使用 prompt_mode: flag。
flag prompt mode
harnesses:
review_agent:
binary: review-agent
prefix_args:
- run
prompt_mode: flag
prompt_flag: --prompt04
容器要求
Runner 镜像需要 provider 二进制、其运行时、预期的辅助工具,以及可写的 home 或 cache 目录。凭据通过 container.env 或挂载 provider 读取的文件传入。