LlmAgent
Raciocínio focado
Um modelo, instruções, ferramentas, retornos de chamada e saída transmitida — o pequeno e útil centro da maioria dos sistemas.
ADK-Rust reúne agentes tipados, ferramentas, estado durável, mídia em tempo real e protocolos abertos em um tempo de execução assíncrono — para que você possa passar de um agente focado para um sistema que pode operar com confiança.
Comece com a unidade de trabalho
Um agente é um componente assíncrono Rust. Ele recebe um contexto de invocação, executa trabalhos com modelos ou ferramentas e emite eventos tipados à medida que avança. Agentes LLM, fluxos de trabalho, agentes em tempo real, agentes de codificação e agentes Rust personalizados usam esse contrato compartilhado.
O que torna ADK-Rust atraente é que o agente continua sendo parte de um sistema de software que você pode compreender e controlar. Chamadas de modelo, entradas de ferramentas, alterações de estado, aprovações e eventos transmitidos têm contratos Rust explícitos. O mesmo tempo de execução pode oferecer suporte a um assistente focado, um fluxo de trabalho multiagente durável, uma experiência de voz em tempo real ou um agente que trabalha em vários serviços, preservando ao mesmo tempo o desempenho, a simultaneidade, a portabilidade e a disciplina operacional que as equipes Rust esperam.
Se você conhece LangGraph, Google ADK, OpenAI Agents SDK ou CrewAI, reconhecerá ferramentas, transferências, fluxos de trabalho, memória, proteções e rastreamento. ADK-Rust traz essas ideias para um tempo de execução nativo do Rust e as conecta com mídia em tempo real, execução de código, RAG, artefatos e protocolos abertos como MCP, A2A, ACP e AWP. A versão 2 expande essa base com agentes gráficos, em tempo real, codificação e CodeAct; esquemas de ferramentas com reconhecimento de provedor; modelos de projeto combináveis e compilação de carga adk; controles de estado e operacionais mais fortes; e uma trilha de eventos tipada consistente desde a primeira chamada de modelo até a produção.
Como ler a arquitetura
Siga o diagrama da esquerda para a direita. Uma superfície de produto envia uma solicitação para Runner. O Runner anexa o estado da sessão e o contexto de invocação e, em seguida, chama o agente selecionado. Modelos, ferramentas e estado apoiam o trabalho enquanto eventos tipados trazem progresso e resultados.
Runner, agentes, eventos tipados, loops de modelo/ferramenta, sessões, retornos de chamada, transferências e cancelamento.
MCP, A2A, ACP, AWP, HTTP, SSE e transportes em tempo real conectam sistemas separados e zonas de confiança.
Studio, UI, Playground e o plano de controle consomem ADK-Rust; eles não funcionam dentro do Runner.
Superfície da estrutura
ADK-Rust reúne todo o ciclo de vida do agente em uma única estrutura: compor o comportamento do agente, fornecer ferramentas, preservar o contexto, conectá-lo a outros sistemas e operá-lo com segurança na produção. Os grupos abaixo mostram como essas capacidades se encaixam.
Construir LLM, fluxo de trabalho, gráfico, tempo real e agentes de codificação; equipá-los com ferramentas tipadas, MCP, RAG, memória, sessões e artefatos; conecte-os por meio de REST, A2A, ACP e AWP; em seguida, adicione autorização, proteções, telemetria e avaliação para produção.
Compor capability
The main model-driven agent. Give it instructions, an LLM, tools, callbacks, and optional sub-agents; the Runner streams its work as typed events.
Agir capability
Turns a typed async Rust function into a model-callable tool and derives the argument schema from Rust types.
Lembre-se capability
Keep conversation events and application state together so a user can continue the same interaction over multiple turns.
Conectar capability
Exposes familiar HTTP endpoints for clients that send a request and receive a structured response.
Operar capability
Establishes who is calling the system through API keys, OAuth, OIDC, SSO, and application identity.
Construir capability
Generate working starting shapes for focused agents, tools, retrieval, APIs, workflows, realtime sessions, and custom logic.
Veja como funciona
O Runner resolve a sessão, cria o contexto de invocação, executa o agente, transmite o modelo e o trabalho da ferramenta, aplica mudanças de estado, persiste eventos duráveis e retorna o progresso ao chamador conforme ele acontece.
Essa mesma trilha pode alimentar um terminal, uma UI web, um cliente API, avaliação ou uma conversa em tempo real.
Siga um pedido real
Um cliente pergunta: “Por que meu pagamento falhou?” O Runner abre a sessão correta, transmite a saída do modelo e a atividade da ferramenta, registra alterações de estado e retorna cada evento útil para a interface. O usuário vê o progresso enquanto o operador obtém um registro completo da execução.
Componha o comportamento
Um roteador identifica o trabalho que deve ser feito. Os especialistas lidam com as partes que entendem melhor. Fluxos de trabalho sequenciais e paralelos controlam a ordem de execução, enquanto os pontos de verificação gráfica mantêm evidências, aprovações e progresso anexados ao mesmo trabalho.
LlmAgent
Um modelo, instruções, ferramentas, retornos de chamada e saída transmitida — o pequeno e útil centro da maioria dos sistemas.
Sequential · Parallel · Loop
Expresse ordem, simultaneidade, repetição e condições de saída diretamente no programa Rust.
GraphAgent
Ramificação, ponto de verificação, interrupção para uma pessoa e retomada após o andamento do processo ou conversa.
CodingAgent · CodeActAgent
Deixe um agente inspecionar, editar e executar código dentro de um espaço de trabalho e limite de sandbox que você controla.
RealtimeAgent
Transporte áudio, transcrições, quadros de vídeo, interrupções e ferramentas do lado do servidor em uma sessão ao vivo.
CustomAgent
Implemente o contrato do Agente para comportamento específico do produto escrito diretamente em Rust.
O sistema em torno do agente
Agentes úteis precisam de ferramentas, estado, interfaces, limites e evidências. ADK-Rust expõe cada peça por meio de interfaces Rust combináveis que você possui.
Um produto, várias responsabilidades
Em um produto de suporte ao cliente, o modelo elabora a resposta, as ferramentas inspecionam o pedido, a sessão transporta o contexto do cliente, a autorização controla os reembolsos, um artefato armazena o recibo e a telemetria registra o resultado. Cada responsabilidade permanece visível no tempo de execução.
Modelos de fronteira hospedados, modelos de roteamento rápido, Ollama local e inferência nativa de mistral.rs estão por trás de um contrato Llm comum.
Gemini · OpenAI · Anthropic · OpenRouter · DeepSeek · Groq · Ollama · Bedrock · Azure AI · endpoints compatíveis
Transforme uma função Rust tipada, servidor MCP, habilidade, sessão de navegador, agente de codificação ou processo em área restrita em um recurso que o tempo de execução pode inspecionar e chamar.
#[tool] · FunctionTool · MCP · ACP · habilidades · navegador · código
As sessões contêm o histórico de eventos. A memória recupera conhecimento útil. Artefatos preservam arquivos. Os pontos de verificação do gráfico tornam o trabalho longo retomável.
SQLite · PostgreSQL · Redis · MongoDB · Firestore · Neo4j · sessões criptografadas
ADK-Rust mantém áudio, transcrições, quadros de vídeo, chamadas de ferramentas, interrupções e alterações de contexto dentro de uma sessão de propriedade de Rust.
OpenAI Realtime · Gemini Live · Vertex Live · LiveKit · WebRTC opcional
Agrupe documentos, incorpore-os, pesquise armazenamentos de vetores, reclassifique resultados e isole a memória por projeto antes que o modelo responda.
Pipelines RAG · memória semântica · gráfico de conhecimento · cinco implementações de armazenamento de vetores
Autorização, retornos de chamada, proteções, perfis de sandbox, cancelamento, telemetria e avaliação formam o limite de execução da produção.
RBAC · OAuth/OIDC · confirmação de ferramenta · guarda-corpos PII · OpenTelemetry · avaliação
Escolha o limite
Comece com onde o recurso é executado.
Mantenha os subagentes dentro de um tempo de execução ADK-Rust quando eles compartilham implantação, estado e confiança. Introduza um protocolo quando o recurso, o agente, o espaço de trabalho de codificação ou o site tiver uma implantação, um processo, uma propriedade ou um limite de confiança próprio.
Mesmo processo Rust
Agente, subagente ou ferramenta
Ferramentas ou recursos externos
MCP
Agente implantado de forma independente
A2A
Processo de codificação ou IDE
ACP
Site legível pelo agente
AWP
Protocolo de Contexto do Modelo
What is MCP?
Uma maneira padrão de um servidor externo publicar ferramentas que um agente pode chamar e recursos que ele pode ler.
Protocolo agente para agente
What is A2A?
Um protocolo de rede para descobrir um agente remoto, enviar-lhe trabalho, acompanhar o progresso e receber resultados através de um limite HTTP.
Protocolo Agente Cliente
What is ACP?
Um protocolo que padroniza sessões entre agentes de codificação e os clientes que os hospedam, incluindo editores, CLIs e sistemas de orquestração.
Protocolo Web Agente
What is AWP?
Um protocolo da web por meio do qual um site publica quem é, o que os agentes podem fazer, quais políticas se aplicam e se seus serviços voltados para os agentes estão íntegros.
Início rápido do desenvolvedor
Comece com um projeto Rust pequeno e funcional. As etapas guiadas abaixo explicam o que o gerador adiciona, como compilar o projeto localmente e onde estendê-lo à medida que seu produto cresce.
O que você terá no final
Um agente Rust compilado com uma ferramenta tipada, uma sessão Launcher interativa, configuração de telemetria, pontos de integração de sessão e guardrail e uma resposta real do modelo no terminal. O projeto gerado é uma fonte Rust comum que você pode ler, alterar e estender.
Antes de começar
Duas coisas são necessárias em sua máquina
Rust 1.95 ou mais recente.
Instale com ferrugem ou atualize o conjunto de ferramentas estável.
Uma chave modelo API.
Este caminho usa GOOGLE_API_KEY; outro provedor pode ser selecionado posteriormente.
cargo-adk adiciona os comandos cargo adk usados para criar, inspecionar, construir e implantar projetos de agentes.
cargo install cargo-adkComece com um agente que possa chamar ferramentas Rust tipadas. Adicione observabilidade, estado de sessão e ganchos de proteção enquanto o projeto é gerado.
cargo adk new support-agent --template tools \
--addon telemetry --addon sessions --addon guardrailsO exemplo gerado usa Gemini por padrão. Copie o arquivo de exemplo seguro e coloque sua chave no arquivo .env não rastreado.
cd support-agent
cp .env.example .env
# set GOOGLE_API_KEY in .envcargo adk build verifica as dependências geradas, combinação de recursos, tipos Rust e lançamento binário sem implantar nada.
cargo adk buildInicie o console gerado, insira uma mensagem e observe o mesmo tempo de execução tipado que pode posteriormente alimentar um API, fluxo de trabalho ou produto em tempo real.
cargo runInstale uma vez
$ cargo install cargo-adkGerar o projeto
$ cargo adk new support-agent \
+ --template tools \
+ --addon telemetry \
+ --addon sessions \
+ --addon guardrailsConfigurar o modelo
$ cd support-agent
cp .env.example .env
# Add GOOGLE_API_KEY to .envVerifique e execute
$ cargo adk build
cargo run ADK-Rust — support-agent
Type a message to chat. Type 'exit' to quit.
You > Greet Ada casually.
[tool] greet({"name":"Ada","style":"casual"})
Hey Ada! What's up?
You > exit
Goodbye.Entenda o andaime
O modelo fornece a forma do agente de trabalho. Cada complemento contribui com os recursos de caixa necessários, importações, configuração e um local explícito para finalizar a integração.
Modelo
Gera um agente LLM com uma função #[tool] tipada e a conexão de esquema necessária para chamadas de ferramenta de modelo.
Add-on
Permite a integração do OpenTelemetry para que o trabalho do modelo, da ferramenta e do tempo de execução possa ser rastreado.
Add-on
Adiciona conexão de serviço de sessão para que o estado da conversa possa sobreviver além de uma chamada de modelo.
Add-on
Adiciona o recurso e limpa ganchos para validação de entrada, verificações de saída e filtragem de conteúdo.
Escolha uma forma inicial diferente
Escolha a forma que corresponda ao primeiro trabalho útil. Os modelos geram fonte Rust editável, dependências, configuração de provedor e um ponto de entrada executável.
llmModelo de agenteGera um LlmAgentBuilder, configuração do modelo Gemini, instruções, Launcher com suporte de sessão e um terminal interativo.
Escolha isto quando
Escolha-o para assistentes, extração, classificação ou um loop focado de modelo e ferramenta.
Ponto de partida gerado
Um agente LLM · console transmitido · configuração do provedor
cargo adk new my-agent --template llmtoolsModelo de agenteAdiciona src/tools.rs com uma função #[tool] funcional, argumentos tipados, geração de esquema JSON e registro no agente LLM.
Escolha isto quando
Escolha-o quando o agente precisar calcular, recuperar dados, chamar a lógica de negócios ou executar uma ação.
Ponto de partida gerado
LlmAgent · Ferramenta de saudação · serde · esquemas · ferramenta adk
cargo adk new my-agent --template toolsragModelo de agenteCria um pipeline RAG com agrupamento de documentos, embeddings Gemini, um armazenamento de vetores na memória, um documento de amostra e RagTool.
Escolha isto quando
Escolha-o para documentação de produtos, políticas, coleções de pesquisas ou respostas baseadas em material privado.
Ponto de partida gerado
RagPipeline · chunker · embeddings · pesquisa vetorial · RagTool
cargo adk new my-agent --template ragapiModelo de agenteGera um servidor Axum com integridade, criação de sessão e endpoints de execução transmitidos em torno de um agente LLM.
Escolha isto quando
Escolha quando um aplicativo web, cliente móvel, serviço de back-end ou plataforma de automação ligará para o agente.
Ponto de partida gerado
Axum · Rotas REST · Respostas SSE · sessões na memória
cargo adk new my-agent --template apia2aAlias de padrãoResolve o padrão a2a-server e combina um agente LLM com recursos de servidor e sessão para acesso de agente para agente.
Escolha isto quando
Escolha-o quando outro agente precisar descobrir e chamar esse agente através de um limite de implantação ou propriedade.
Ponto de partida gerado
Servidor A2A · identidade do agente · manipulação de tarefas · sessões
cargo adk new my-agent --template a2agraphModelo de agenteAtiva o recurso gráfico e cria as importações e o ponto de partida do agente para nós, bordas, pontos de verificação, interrupção e retomada.
Escolha isto quando
Escolha-o para trabalhos de longa duração com ramificações, etapas de aprovação, recuperação ou estado de execução durável.
Ponto de partida gerado
Recurso gráfico · agente de fluxo de trabalho · ponto de partida da topologia
cargo adk new my-agent --template graphrealtimeModelo de agentePermite suporte em tempo real e cria um ponto de partida conciso para o agente de voz com importações em tempo real e configuração do provedor.
Escolha isto quando
Escolha-o para conversa natural, interrupção, tradução ao vivo, ferramentas de áudio ou quadros de vídeo recebidos.
Ponto de partida gerado
Recurso em tempo real · instruções de voz · ponto de partida do transporte
cargo adk new my-agent --template realtimesequentialModelo de fluxo de trabalhoGera agentes pesquisadores e escritores dentro de um SequentialAgent para que cada etapa receba o trabalho produzido pela etapa anterior.
Escolha isto quando
Escolha quando o processo tiver fases claras, como coletar, analisar, redigir, revisar e publicar.
Ponto de partida gerado
Dois agentes LLM · execução ordenada · trilha de invocação compartilhada
cargo adk new my-agent --template sequentialparallelModelo de fluxo de trabalhoGera dois agentes especialistas dentro de um ParallelAgent e reúne seu trabalho por meio de um fluxo de trabalho pai.
Escolha isto quando
Escolha-o quando várias investigações puderem começar a partir da mesma entrada e serem concluídas de forma independente.
Ponto de partida gerado
Dois agentes LLM · execução simultânea · resultados agregados
cargo adk new my-agent --template parallelloopModelo de fluxo de trabalhoCria um trabalhador dentro de LoopAgent com um sinal de conclusão explícito e um limite de segurança de cinco iterações.
Escolha isto quando
Escolha-o para processos de elaboração, crítica, reparo, validação ou pesquisa que melhoram através de passagens repetidas.
Ponto de partida gerado
Construtor LoopAgent · agente de trabalho · instrução de conclusão · máximo de iterações
cargo adk new my-agent --template loopconditionalModelo de fluxo de trabalhoGera agentes técnicos e gerais dentro de um ConditionalAgent que seleciona um caminho da solicitação recebida.
Escolha isto quando
Escolha-o quando as categorias de trabalho precisarem de instruções, ferramentas, modelos ou especialistas de domínio diferentes.
Ponto de partida gerado
ConditionalAgent · duas rotas · Seleção baseada em LLM
cargo adk new my-agent --template conditionalcustomModelo de agenteCria um tipo MyAgent com os métodos de característica do Agente e uma função de execução pronta para sua própria lógica de execução e fluxo de eventos Rust.
Escolha isto quando
Escolha-o para orquestração determinística, máquinas de estado existentes, tempos de execução de domínio ou comportamento que precisa de controle Rust total.
Ponto de partida gerado
Esqueleto de características do agente · InvocationContext · Ponto de entrada do EventStream
cargo adk new my-agent --template customO registro CLI também inclui os dados específicos do provedor openai modelo, cinco padrões empresariais, o basic e a2a aliases e complementos de capacidade de composição.
cargo adk templatescargo adk addonsCompile o que você precisa
Primeiro escolha um modelo para a forma de execução do projeto. Em seguida, selecione uma camada de recursos para os recursos compilados no binário.
As camadas de recursos controlam dependências, tempo de compilação, superfície binária e a estrutura APIs disponível. Bancos de dados persistentes, MCP, gerenciadores de segredos de nuvem e transportes específicos em tempo real permanecem escolhas explícitas.
Agentes · Gemini · Runner · sessões
Um agente focado com a menor superfície padrão.
Ferramentas · memória · gráfico · servidor · autenticação · avaliação · telemetria
A maioria dos APIs, sistemas de fluxo de trabalho e produtos de agentes internos.
Base em tempo real · navegador · RAG · pagamentos · AWP
Produtos que precisam de interação e interoperabilidade mais ricas.
Áudio · execução de código · sandbox
Opte pelos recursos locais e de execução mais pesados.
adk-rust = { version = "2.0.0", features = ["standard"] }Construir com ADK-Rust
Seu primeiro marco útil é uma solicitação, uma chamada de ferramenta visível e uma sessão que você entende. O início rápido guiado cria esse caminho. A partir daí, adicione os fluxos de trabalho, o estado, os protocolos e os controles operacionais que seu produto exige.