自定义 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: --prompt
04

容器要求

Runner 镜像需要 provider 二进制、其运行时、预期的辅助工具,以及可写的 home 或 cache 目录。凭据通过 container.env 或挂载 provider 读取的文件传入。