コーディングエージェントの例

examples/ にある3つの実行可能なサンプルクレートは、それぞれが実際のAgent(モックなし)として機能し、生成されたコードを実行することで結果を独立して検証します。すべてデフォルトでGemini 3モデルを使用します。まずキーを設定してください:

export GOOGLE_API_KEY=…          # or GEMINI_API_KEY
# or: CODING_PROVIDER=openai OPENAI_API_KEY=…

coding_agent

4つのモードで動作するハーネス:

# Multi-language demo (Rust, Python, JavaScript) in a temp workspace:
cargo run --manifest-path examples/coding_agent/Cargo.toml

# Build a medium program over a persistent multi-turn session:
cargo run --manifest-path examples/coding_agent/Cargo.toml -- multiturn

# Scenario tour — increasing complexity, each independently verified:
cargo run --manifest-path examples/coding_agent/Cargo.toml -- tour

# A single task in your own directory:
cargo run --manifest-path examples/coding_agent/Cargo.toml -- ./some/dir "make tests pass"
  • demo — 言語をまたがるワンショットタスク(rustc/python3/node を記述して実行します)。
  • tour — 複雑さが増していく5つのシナリオ(hellomultifilefixtestdebugrefactor)。それぞれPASS/FAILの要約で自己検証されます。
  • multiturn — 1つのAgent/Runner/Sessionが、5ターンにわたってPython todo CLI を成長させ(追加/リスト → 完了 → 削除 → 堅牢なエラー → テスト)、自身の以前の作業に基づいて構築します。テストスイートを実行して検証されます。

読むべき点: CodingAgent ハーネス、plan→act→observe ループ、マルチターンコンテキストの保持。


coding_graph

超レビュー ワークフローadk-graph StateGraph として: 実装 → 並行する正確性/エッジケース/スタイルレビューア → 統合(遅延ファンイン) → 改訂ループ → 最終化。

cargo run --manifest-path examples/coding_graph/Cargo.toml

読むべき点: 1つのスーパーステップにおける並行Agent、add_deferred_node_fn ファンイン、 条件付き循環ルーティング。生成された関数をインポートし、仕様とエッジケースをアサートすることで検証します。


coding_goal

耐久性のあるチェックポイントを備えた自律的な /goal モード: バグのあるモジュールと失敗するテストをシードし、plan→act→verify を python3 test_stats.py がパスするまでループし、永続化されたチェックポイントを出力し、その後再開をデモンストレーションします(完了した目標はno-opです)。

cargo run --manifest-path examples/coding_goal/Cargo.toml

読むべき点: ベリファイアによってゲートされた目標ループ、アトミックな目標状態チェックポイント、再起動をまたいだ再開。


streaming_bash

単一の EventStream から LlmAgent のツールアクティビティをライブでレンダリングするWeb UI(Axum + WebSocket): bash の標準出力/標準エラーのストリーミングと、ワンショットの read_file / grep / glob の結果をそれぞれ独自のカードとして表示します。

cargo run --manifest-path examples/streaming_bash/Cargo.toml      # web UI
cargo run --manifest-path examples/streaming_bash/Cargo.toml -- cli

読むべき点: ToolContext::emit_progress ストリーミング、およびUIが任意のツールの出力を汎用的にレンダリングできるようにするファーストクラスの Event::tool_calls() / Event::tool_results() / event.tool_progress_stream() アクセサ。 Streaming Tool Progress を参照してください。


推奨されるパス

  1. coding_agent (tour) — ハーネスが複雑さの増すタスクを解決する様子をご覧ください。
  2. coding_agent (multiturn) — セッションを通じてプログラムを構築する様子をご覧ください。
  3. coding_goal — 自律的で、ベリファイアによってゲートされた、耐久性のある目標モード。
  4. coding_graph — 並行超レビューオーケストレーション。

CLI (code / goal / ultracode) は、これらのパターンをファーストクラスのコマンドとしてパッケージ化しています。

Coding Agent の概要に戻る

コーディングエージェントの例 - ADK-Rust ドキュメント | ADK-Rust