Programmieragent
Erstelle Agenten, die an einer Codebasis arbeiten: Dateien lesen und bearbeiten, Befehle und Tests in einer Sandbox ausführen, mehrstufige Aufgaben planen, autonom auf ein Ziel hinarbeiten und parallele Prüfer koordinieren — alles nativ in ADK-Rust, bei jedem Modellanbieter.
Dies wird aus einigen fokussierten Komponenten zusammengesetzt und nicht aus einem monolithischen Framework:
| Baustein | Was er Ihnen bietet | Seite |
|---|---|---|
adk-devtools | Die Werkzeuge für die innere Schleife — read_file, write_file, edit_file, glob, grep, bash — auf ein Arbeitsbereichsverzeichnis beschränkt | Entwicklungswerkzeuge |
CodingAgent (in adk-agent, Feature coding) | Ein Harness mit einem Aufruf, der diese Werkzeuge, ein Planungswerkzeug write_todos und einen minimalen Prompt mit einem LlmAgent verbindet | Harness |
CLI (adk-rust code / goal / ultracode) | Native Befehle: einmalige Aufgaben, autonomer Zielmodus und parallele Ultra-Überprüfung | CLI |
Graph-Workflows (adk-graph) | Auf mehrere spezialisierte Agenten aufteilen und zusammenfassen – das „Ultra“-Muster | Workflows |
| Beispiele | Drei ausführbare Beispiel-Crates | Beispiele |
Neu bei ADK-Rust? Lies zuerst die Einführung und den Schnellstart. Dieser Abschnitt baut auf Agenten, Tools, Sitzungen und optional auf Speicher und Graphen auf.
Was du erstellen kannst
- Eine einmalige Programmieraufgabe — „den fehlschlagenden Test bestehen lassen“, „eine
/health-Route hinzufügen“. Der Agent untersucht das Problem, nimmt Änderungen vor, führt Tests aus und berichtet. - Autonomer Zielmodus — Gib ein Ziel und eine überprüfbare Erfolgsbedingung vor (einen Befehl, der mit 0 beendet werden muss); der Agent durchläuft wiederholt planen → handeln → überprüfen und korrigiert sich selbst, bis die Bedingung erfüllt ist oder das Budget aufgebraucht ist. Dauerhaft und fortsetzbar. (Im Stil von Codex/Hermes
/goal.) - Ultra-Review-Workflows — Implementiere zunächst und verteile die Aufgabe dann auf parallele Reviewer für Korrektheit, Sonderfälle und Stil, fasse deren Bewertungen zusammen und überarbeite die Implementierung, bis sie zustimmen. (Im Stil von 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"
Die Entwicklungstools sind auf Sandbox-Nutzung ausgelegt und haben keine umfangreichen Abhängigkeiten, sodass der Platzbedarf gering bleibt; adk-graph wird nur für die parallelen Workflows benötigt.
Schnellstart in 60 Sekunden
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(()) }
Du bevorzugst das Terminal? adk-rust code "make the failing test pass" erledigt dasselbe —
siehe den CLI.
Wie es weitergeht
- Entwicklungstools — das Toolset und die sandboxbasierte
Workspace. - Harness —
CodingAgent, die Planungsschleife und Berechtigungsmodi. - CLI —
code,goal(dauerhaft/fortsetzbar),ultracode. - Workflows — paralleles Ultra-Review für
adk-graph. - Beispiele — drei ausführbare Beispiel-Crates.
Siehe auch die vollständige Begründung des Designs in
docs/design/coding-agent.md.