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

コードベース上で作業するエージェントを構築できます。ファイルの読み取りと編集、サンドボックスでのコマンドやテストの実行、複数ステップの作業の計画、目標に向けた自律的な反復、並列レビュアーのオーケストレーションを、任意のモデルプロバイダー上で、すべてADK-Rustネイティブに行えます。

これはモノリシックなフレームワークではなく、いくつかの目的に特化した要素から構成されています。

構成要素提供されるものページ
adk-devtoolsワークスペースディレクトリを対象範囲とする内側のループ用ツール — read_filewrite_fileedit_fileglobgrepbash開発ツール
CodingAgentadk-agent内、機能 codingこれらのツールに加え、計画用write_todosツールと最小限のプロンプトをLlmAgentに接続する、1回の呼び出しで使えるハーネスハーネス
CLI (adk-rust code / goal / ultracode)ネイティブコマンド:単発タスク、自律目標モード、並列ウルトラレビューCLI
グラフワークフロー (adk-graph)並列の専門エージェントに分岐して統合 — 「ウルトラ」パターンワークフロー
実行可能な3つのサンプルクレート

ADK-Rust は初めてですか? まず 概要クイックスタート をお読みください。このセクションでは、エージェント、ツール、 セッション、および(必要に応じて)メモリグラフ を基礎とします。

構築できるもの

  • 一回限りのコーディングタスク — 「失敗しているテストを通す」「/health ルートを追加する」など。エージェントが調査、編集、テストの実行を行い、結果を報告します。
  • 自律的な目標モード — 目標と、検証可能な成功条件(終了コード 0 で終了する必要がある コマンド)を与えると、エージェントは合格するか予算を使い切るまで、 計画 → 実行 → 検証 のループを自己修正しながら繰り返します。永続化され、中断後に再開できます。 (Codex/Hermes /goal スタイル。)
  • 超レビューのワークフロー — 実装後、正確性、エッジケース、スタイルを確認するレビュー担当に 並列で処理を分散し、その判定を統合して、承認されるまで修正します。 (Claude Code ultracode/ultrareview スタイル。)

インストール

# The harness (pulls in the dev tools) + a model provider
adk-agent = { version = "2.1.0", features = ["coding"] }
adk-devtools = "2.1.0"
adk-model = { version = "2.1.0", features = ["gemini"] }
adk-runner = "2.1.0"
adk-session = "2.1.0"

開発ツールはサンドボックスを優先し、重い依存関係を持たないため、フットプリントは小さく保たれます。 並列の ワークフロー にのみ adk-graph が必要です。

60 秒で始める

use adk_agent::coding::CodingAgent;
use adk_devtools::Workspace;
use adk_runner::Runner;
use adk_session::{CreateRequest, InMemorySessionService, SessionService};
use adk_core::{Content, SessionId, UserId};
use std::sync::Arc;

# async fn run(model: std::sync::Arc<dyn adk_core::Llm>) -> anyhow::Result<()> {
// One call builds a coding agent over a confined workspace.
let coding = CodingAgent::builder()
    .model(model)
    .workspace(Workspace::new("./my-repo"))
    .build()?;

let sessions: Arc<dyn SessionService> = Arc::new(InMemorySessionService::new());
sessions.create(CreateRequest {
    app_name: "demo".into(), user_id: "u".into(),
    session_id: Some("s".into()), state: Default::default(),
}).await?;

let runner = Runner::builder()
    .app_name("demo")
    .agent(coding.agent())          // -> Arc<dyn Agent>
    .session_service(sessions)
    .build()?;

let mut events = runner
    .run(UserId::new("u")?, SessionId::new("s")?,
         Content::new("user").with_text("Add a function add(a,b) to add.py and run it."))
    .await?;
// stream `events`: FunctionCall / FunctionResponse / Text …
# Ok(()) }

ターミナルを使いたい場合は、adk-rust code "make the failing test pass" でも同じことができます — CLI を参照してください。

次に読むもの

  1. 開発ツール — ツールセットとサンドボックス化された Workspace
  2. ハーネスCodingAgent、計画ループ、権限モード。
  3. CLIcodegoal(永続化/再開可能)、ultracode
  4. ワークフローadk-graph 上での並列超レビュー。
  5. — 実行可能な 3 つのサンプルクレート。

docs/design/coding-agent.md の完全な設計根拠も参照してください。

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