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:

ComponenteLo que te proporcionaPágina
adk-devtoolsLas herramientas del ciclo interno — read_file, write_file, edit_file, glob, grep, bash — delimitadas a un directorio de espacio de trabajoHerramientas 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 LlmAgentArnés
CLI (adk-rust code / goal / ultracode)Comandos nativos: tareas de una sola ejecución, modo de objetivos autónomos y revisión ultra paralelaCLI
Flujos de trabajo de grafos (adk-graph)Distribuye el trabajo entre agentes especialistas paralelos y sintetiza — el patrón «ultra»Flujos de trabajo
EjemplosTres crates de ejemplo ejecutablesEjemplos

¿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

  1. Herramientas de desarrollo — el conjunto de herramientas y el Workspace aislado.
  2. ArnésCodingAgent, el ciclo de planificación y los modos de permisos.
  3. CLIcode, goal (durable/reanudable), ultracode.
  4. Flujos de trabajo — revisión ultraexhaustiva paralela sobre adk-graph.
  5. Ejemplos — tres crates de ejemplo ejecutables.

Consulta también la justificación completa del diseño en docs/design/coding-agent.md.