Agent de programmation

CrĂ©ez des agents qui travaillent sur une base de code : lisent et modifient des fichiers, exĂ©cutent des commandes et des tests dans un bac Ă  sable, planifient un travail en plusieurs Ă©tapes, progressent de maniĂšre autonome vers un objectif et orchestrent des rĂ©viseurs en parallĂšle — le tout natif de ADK-Rust, avec n’importe quel fournisseur de modĂšles.

Cet ensemble repose sur quelques composants ciblés plutÎt que sur un framework monolithique :

ComposantCe qu’il vous fournitPage
adk-devtoolsLes outils de la boucle interne — read_file, write_file, edit_file, glob, grep, bash — limitĂ©s Ă  un rĂ©pertoire d’espace de travailOutils de dĂ©veloppement
CodingAgent (dans adk-agent, fonctionnalité coding)Un harnais appelable en une seule fois qui relie ces outils + un outil de write_todos + une invite minimale à un LlmAgentHarnais
CLI (adk-rust code / goal / ultracode)Commandes natives : tùches ponctuelles, mode objectif autonome et ultra-révision parallÚleCLI
Flux de travail en graphe (adk-graph)Distribuer le travail Ă  des agents spĂ©cialistes en parallĂšle et synthĂ©tiser — le modĂšle « ultra »Flux de travail
ExemplesTrois crates d’exemple exĂ©cutablesExemples

Nouveau sur ADK-Rust ? Lisez d’abord l’Introduction et le DĂ©marrage rapide. Cette section s’appuie sur les agents, les outils, les sessions et, facultativement, la mĂ©moire et les graphes.

Ce que vous pouvez créer

  • Une tĂąche de programmation ponctuelle — « faire rĂ©ussir le test en Ă©chec », « ajouter une route /health ». L’agent explore, effectue les modifications, exĂ©cute les tests et rend compte des rĂ©sultats.
  • Mode objectif autonome — donnez un objectif ainsi qu’une condition de rĂ©ussite vĂ©rifiable (une commande qui doit se terminer avec le code 0) ; l’agent rĂ©pĂšte la boucle planifier → agir → vĂ©rifier en s’auto-corrigeant jusqu’à la rĂ©ussite ou l’épuisement du budget. Durable et reprenable. (Style /goal Codex/Hermes.)
  • Flux de travail d’ultra-rĂ©vision — implĂ©mentez, puis rĂ©partissez le travail entre des rĂ©viseurs parallĂšles de la correction, des cas limites et du style, synthĂ©tisez leurs verdicts et rĂ©visez jusqu’à leur approbation. (Style Claude Code ultracode/ultrareview.)

Installation

# 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"

Les outils de dĂ©veloppement sont conçus d’abord pour fonctionner en bac Ă  sable et n’ont pas de dĂ©pendances lourdes ; leur empreinte reste donc rĂ©duite. adk-graph n’est nĂ©cessaire que pour les flux de travail parallĂšles.

Démarrage rapide en 60 secondes

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(()) }

Vous prĂ©fĂ©rez le terminal ? adk-rust code "make the failing test pass" fait la mĂȘme chose — consultez le CLI.

Pour aller plus loin

  1. Outils de dĂ©veloppement — l’ensemble d’outils et le Workspace en bac Ă  sable.
  2. Harness — CodingAgent, la boucle de planification et les modes d’autorisation.
  3. CLI — code, goal (durable/reprenable), ultracode.
  4. Flux de travail — l’ultra-rĂ©vision parallĂšle sur adk-graph.
  5. Exemples — trois crates d’exemple exĂ©cutables.

Consultez également la justification complÚte de la conception dans docs/design/coding-agent.md.

Agent de programmation - Documentation ADK-Rust | ADK-Rust