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.