Agente de programación
Construye agentes que trabajen en una base de código: lean y editen archivos, ejecuten comandos y pruebas en un entorno aislado, planifiquen trabajos de varios pasos, iteran de forma autónoma hacia un objetivo y coordinen revisores en paralelo, todo de forma nativa en ADK-Rust y con cualquier proveedor de modelos.
Esto se compone de unas pocas piezas especializadas en lugar de un marco monolítico:
| Componente | Lo que te proporciona | Página |
|---|---|---|
adk-devtools | Las herramientas del ciclo interno — read_file, write_file, edit_file, glob, grep, bash — delimitadas a un directorio de espacio de trabajo | Herramientas de desarrollo |
CodingAgent (en adk-agent, funcionalidad coding) | Un arnés de una sola llamada que conecta esas herramientas + una herramienta de write_todos para la planificación + un prompt mínimo con un LlmAgent | Arnés |
CLI (adk-rust code / goal / ultracode) | Comandos nativos: tareas de una sola ejecución, modo de objetivos autónomos y revisión ultra paralela | CLI |
Flujos de trabajo de grafos (adk-graph) | Distribuye el trabajo entre agentes especialistas paralelos y sintetiza — el patrón «ultra» | Flujos de trabajo |
| Ejemplos | Tres crates de ejemplo ejecutables | Ejemplos |
¿Nuevo en ADK-Rust? Lee primero la Introducción y el Inicio rápido. Esta sección se basa en agentes, herramientas, sesiones y, opcionalmente, memoria y grafos.
Lo que puedes crear
- Una tarea de programación de una sola ejecución — «hacer que la prueba fallida pase», «añadir una ruta de
/health». El agente explora, edita, ejecuta pruebas e informa. - Modo de objetivo autónomo — proporciona un objetivo + una condición de éxito verificable (un comando que debe finalizar con 0); el agente repite el ciclo planificar → actuar → verificar y se autocorrige hasta que lo logra o se agota el presupuesto. Durable y reanudable. (Al estilo de Codex/Hermes
/goal). - Flujos de trabajo de revisión ultraexhaustiva — implementa y luego distribuye el trabajo entre revisores paralelos de corrección/casos límite/estilo, sintetiza sus veredictos y revisa hasta que den su aprobación. (Al estilo de Claude Code
ultracode/ultrareview).
Instalación
# 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"
Las herramientas de desarrollo priorizan el uso de un entorno aislado y no tienen dependencias pesadas, por lo que su tamaño se mantiene reducido; adk-graph solo es necesario para los flujos de trabajo paralelos.
Inicio rápido en 60 segundos
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(()) }
¿Prefieres la terminal? adk-rust code "make the failing test pass" hace lo mismo;
consulta CLI.
Próximos pasos
- Herramientas de desarrollo — el conjunto de herramientas y el
Workspaceaislado. - Arnés —
CodingAgent, el ciclo de planificación y los modos de permisos. - CLI —
code,goal(durable/reanudable),ultracode. - Flujos de trabajo — revisión ultraexhaustiva paralela sobre
adk-graph. - Ejemplos — tres crates de ejemplo ejecutables.
Consulta también la justificación completa del diseño en
docs/design/coding-agent.md.