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 :
| Composant | Ce quâil vous fournit | Page |
|---|---|---|
adk-devtools | Les outils de la boucle interne â read_file, write_file, edit_file, glob, grep, bash â limitĂ©s Ă un rĂ©pertoire dâespace de travail | Outils 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 LlmAgent | Harnais |
CLI (adk-rust code / goal / ultracode) | Commandes natives : tùches ponctuelles, mode objectif autonome et ultra-révision parallÚle | CLI |
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 |
| Exemples | Trois crates dâexemple exĂ©cutables | Exemples |
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
/goalCodex/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
- Outils de dĂ©veloppement â lâensemble dâoutils et le
Workspaceen bac Ă sable. - Harness â
CodingAgent, la boucle de planification et les modes dâautorisation. - CLI â
code,goal(durable/reprenable),ultracode. - Flux de travail â lâultra-rĂ©vision parallĂšle sur
adk-graph. - Exemples â trois crates dâexemple exĂ©cutables.
Consultez également la justification complÚte de la conception dans
docs/design/coding-agent.md.