Agente de programação
Crie agentes que trabalhem em uma base de código: leiam e editem arquivos, executem comandos e testes em um ambiente isolado, planejem trabalhos com várias etapas, avancem iterativamente em direção a um objetivo de forma autônoma e coordenem revisores em paralelo — tudo nativo do ADK-Rust, em qualquer provedor de modelos.
Isso é composto por algumas peças focadas, em vez de uma estrutura monolítica:
| Componente | O que ele fornece | Página |
|---|---|---|
adk-devtools | As ferramentas do ciclo interno — read_file, write_file, edit_file, glob, grep, bash — delimitadas a um diretório de espaço de trabalho | Ferramentas de desenvolvimento |
CodingAgent (em adk-agent, recurso coding) | Um mecanismo de chamada única que conecta essas ferramentas + uma ferramenta de write_todos + um prompt mínimo a um LlmAgent | Mecanismo |
CLI (adk-rust code / goal / ultracode) | Comandos nativos: tarefas de execução única, modo de objetivo autônomo e ultra-revisão paralela | CLI |
Fluxos de trabalho em grafo (adk-graph) | Distribua para agentes especialistas em paralelo e sintetize — o padrão "ultra" | Fluxos de trabalho |
| Exemplos | Três crates de exemplo executáveis | Exemplos |
Novo no ADK-Rust? Leia primeiro a Introdução e o Início rápido. Esta seção se baseia em agentes, ferramentas, sessões e, opcionalmente, memória e grafos.
O que você pode criar
- Uma tarefa de programação pontual — "faça o teste com falha passar", "adicione uma rota
/health". O agente explora, edita, executa os testes e relata os resultados. - Modo de objetivo autônomo — forneça um objetivo + uma condição de sucesso verificável (um comando que deve terminar com código 0); o agente repete o ciclo planejar → agir → verificar, corrigindo-se até ser aprovado ou até o orçamento se esgotar. Durável e retomável. (Estilo Codex/Hermes
/goal.) - Fluxos de trabalho de revisão ultra — implemente e, em seguida, distribua o trabalho entre revisores paralelos de correção/casos extremos/estilo, sintetize seus veredictos e revise até que aprovem. (Estilo Claude Code
ultracode/ultrareview.)
Instalação
# 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"
As ferramentas de desenvolvimento priorizam o uso em sandbox e não têm dependências pesadas, portanto a presença permanece pequena; adk-graph só é necessário para os fluxos de trabalho paralelos.
Início rápido em 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(()) }
Prefere o terminal? adk-rust code "make the failing test pass" faz o mesmo —
consulte o CLI.
Próximos passos
- Ferramentas de desenvolvimento — o conjunto de ferramentas e o
Workspaceem sandbox. - Harness —
CodingAgent, o ciclo de planejamento e os modos de permissão. - CLI —
code,goal(durável/retomável),ultracode. - Fluxos de trabalho — revisão ultra paralela em
adk-graph. - Exemplos — três crates de exemplo executáveis.
Consulte também a justificativa completa do design em
docs/design/coding-agent.md.