カスタム CLI Docker サンドボックス
任意のエージェントCLIをDaguのDockerサンドボックスから実行する。
カスタムharness providerは、CLIバイナリ、固定引数、プロンプトの渡し方をDaguのharness.runステップに対応させます。社内エージェント、ラッパースクリプト、Dagu組み込みではないプロバイダに使います。
Docker内のカスタムプロバイダ
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_mode: argを使います。
プロンプトフラグが必要なCLIにはprompt_mode: flagを使います。
コンテナ内のharness.runではstdinのprompt modeは使いません。
01
プロバイダ定義
with.providerの名前はトップレベルharnessesのエントリと一致する必要があります。イメージ内のPATHに設定したbinaryが存在している必要があります。
02
プロンプトを引数で渡す
CLIが最後のコマンドライン引数としてプロンプトを受け取る場合はprompt_mode: argを使います。Daguは review-agent run "Review this repository." の形のコマンドを作ります。
03
プロンプトをフラグで渡す
CLIが名前付きのプロンプトフラグを要求する場合はprompt_mode: flagを使います。
flag prompt mode
harnesses:
review_agent:
binary: review-agent
prefix_args:
- run
prompt_mode: flag
prompt_flag: --prompt04
コンテナ要件
ランナーイメージにはproviderバイナリ、そのランタイム、必要な補助ツール、書き込み可能なhomeやcacheディレクトリが必要です。認証情報はcontainer.envまたはproviderが読むファイルのマウントで渡します。