Sem gateway
- Cada canal precisa de sua própria integração de agente
- Sessões e identidades transitam entre pontos de entrada
- Ferramentas e permissões são configuradas em vários locais
- Operadores não podem ver todo o sistema de agentes
Operações de agente multicanal
ADK Gateway conecta canais de mensagens, aplicações web e outros agentes a uma equipe de agentes ADK-Rust. Ele roteia cada requisição, restaura o contexto correto, aplica políticas operacionais e oferece aos desenvolvedores um único lugar para ver e controlar o sistema.
Pessoas e sistemas
Identidade · Roteador · Executor
Equipe do agente
Por que um gateway?
Um agente ADK-Rust pode raciocinar, chamar ferramentas e transmitir eventos. Uma implantação real também precisa responder a questões práticas: Onde as solicitações chegam? Qual agente deve recebê-las? De quem deve ser restaurada a sessão? O que esse agente está autorizado a fazer?
ADK Gateway fornece essa camada operacional compartilhada. Telegram, Slack, WhatsApp, Discord, Matrix, webhooks e requisições web para agentes entram por adaptadores. O gateway os transforma em uma única forma de mensagem, aplica regras de acesso, roteia para um agente do sistema ou especialista e entrega o progresso de volta pelo canal original.
O gateway não funde todos os agentes em um único assistente. Desenvolvedores podem manter agentes de pesquisa, suporte, operações e codificação separados — com modelos, ferramentas, espaços de trabalho, permissões e vínculos de canal diferentes — enquanto os operam através de uma única superfície de controle.
Arquitetura
Leia a arquitetura da esquerda para a direita. Solicitações entram por canais humanos ou de agentes. Identidade e roteamento decidem onde pertencem. ADK-Rust executa o agente selecionado com seu próprio estado e capacidades. O plano de controle observa cada camada sem se tornar parte da conversa.
Pontos de entrada
Borda de confiança
Tempo de execução do Gateway
Equipe do agente
recursos
Plano de controle do operador
Configurar, aprovar, observar, recuperar e auditar todo o caminho da requisição.
Acompanhar uma solicitação
O mesmo fluxo se aplica a todos os canais suportados. Apenas o adaptador e formato de entrega mudam; roteamento, sessões, execução de agentes, política e evidências permanecem compartilhados.
Telegram, Slack, WhatsApp, Discord, Matrix e webhooks chegam em formatos diferentes. Cada adaptador os transforma no mesmo contrato de mensagem de entrada.
Regras de emparelhamento, listas de permissão, política de menção em grupo, identidade multiusuário, limites de taxa e verificações opcionais de JWT são executados antes que a solicitação alcance um agente.
O roteamento verifica canal, conta e pessoa ou grupo. A correspondência mais específica vence; o agente do sistema é o recurso final.
O Runner anexa a sessão correta, contexto do usuário, memória, estado de cancelamento e cadeia de fallback do modelo antes do início da execução do agente.
O agente selecionado pode usar suas ferramentas Rust, servidores MCP, conhecimento, fluxos de trabalho ou um agente de codificação ACP aprovado. A política de função limita o que ele pode chamar.
Eventos digitados se tornam indicadores de digitação, mensagens de progresso, imagens ou uma resposta final. Métricas, logs, histórico de tarefas e eventos de auditoria explicam o que aconteceu.
Roteamento em Rust
Um desenvolvedor pode vincular um agente a um canal inteiro, uma conta nesse canal ou uma pessoa ou grupo específico. O roteador verifica a regra mais específica primeiro e recua de forma previsível.
O exemplo condensa a implementação fonte para legibilidade. O repositório testa comportamento exato, em nível de conta, canal, legado e roteamento padrão.
/// Most-specific binding wins.
pub fn resolve_agent(&self, message: &InboundMessage) -> &str {
// 1. channel + account + person or group
if let Some(agent) = self.exact_binding(message) {
return agent;
}
// 2. channel + account, then channel-only
if let Some(agent) = self.account_binding(message)
.or_else(|| self.channel_binding(message))
{
return agent;
}
// 3. configured legacy rules, then the system agent
self.legacy_binding(message)
.unwrap_or(&self.default_agent_id)
}{
"agent": {
"model": {
"primary": "openai/gpt-5.4-mini",
"fallbacks": ["openai/gpt-5.4-nano"]
}
},
"channels": {
"telegram": {
"enabled": true,
"botToken": "${TELEGRAM_BOT_TOKEN}",
"dmPolicy": "pairing"
}
},
"user_agents": [{
"id": "support",
"name": "Customer support",
"tools": ["order_lookup", "refund_request"],
"channel_bindings": [{ "channel_type": "telegram" }],
"role": {
"allow": ["order_lookup", "refund_request"],
"deny": ["refund_issue"]
},
"auto_start": true
}]
}Painel de controle embutido
O painel de controle React é compilado no binário Rust e servido em /ui. It is the operator interface for configuration, agent lifecycle, approvals, sessions, memory, scheduled work, logs, and health.
Escolha provedores de modelo, armazene credenciais, conecte contas de canal e valide o gateway antes de abri-lo para usuários.
Criar especialistas, atribuir ferramentas e canais, iniciar ou parar seus processos e definir quais agentes podem delegar trabalho.
Revisar chamadas de ferramentas sensíveis, parear usuários, encerrar sessões, inspecionar consentimento e intervir quando uma tarefa não deve continuar.
Assista canais e agentes em tempo real, inspecione erros, pesquise na memória e acompanhe a saúde do gateway em execução.
Abrir limites do protocolo
Canais conectam o gateway às pessoas. Protocolos conectam-no a capacidades e outros softwares. Cada limite tem uma função distinta, para que desenvolvedores possam adicionar um sem redesenhar todo o runtime.
MCP
Conecte servidores de capacidade para navegadores, computadores, mídia, dados e sistemas de negócios. O gateway pode adicionar, listar e remover servidores MCP configurados sem precisar embutir cada integração em seu binário.
ACP
Executar processos de agente de codificação suportados atrás de uma fronteira supervisionada. Política do espaço de trabalho, solicitações de permissão, progresso, custo, estado da fila e histórico de tarefas permanecem visíveis para o gateway.
AWP
Publicar descoberta, capacidades, saúde, consentimento, assinaturas e um endpoint de mensagens do agente para que outros softwares possam entender como trabalhar com o gateway.
HTTP + WebSocket
Webhooks de entrada trazem trabalho de outras aplicações. APIs HTTP e eventos WebSocket ao vivo alimentam o painel de controle embutido e ferramentas externas de operação.
Limite atual: a fonte expõe sua rota agent-message sob a superfície AWP. A página não reivindica uma superfície A2A verificada separadamente, completa, nem uma implementação de comércio AWP em produção.
Governança
Autonomia do agente deve ser uma decisão operacional configurada. ADK Gateway coloca identidade, autoridade, limites e evidências ao redor do mesmo caminho de execução que carrega a requisição.
Emparelhamento, listas de permissão, sessões multiusuário, JWT/JWKS e mapeamento de funções respondem quem está fazendo a solicitação.
Regras de permissão e negação por agente, além da aprovação de ferramentas, determinam quais capacidades uma pessoa ou agente pode usar.
Limitação de taxa, tempos limite de solicitação, cancelamento, loops limitados de ferramentas e política de saúde limitam por quanto tempo o trabalho pode continuar.
Eventos de auditoria, logs, métricas, histórico de tarefas, resultados de ferramentas e histórico de saúde fornecem um registro operacional.
Implantação
Uma estação de trabalho de desenvolvedor, um servidor interno ou um container podem executar a mesma forma de gateway. O armazenamento de sessão pode ficar na memória para um experimento local ou migrar para SQLite, PostgreSQL, Redis ou Firestore para um sistema implantado.
O serviço Rust incorpora o painel de controle React compilado. Instale ou copie um executável e mantenha a configuração ao lado dele.
O repositório inclui um Dockerfile e contratos documentados de volume e porta para implantação em container.
Uma unidade systemd suporta inicialização na inicialização, política de reinício, prontidão, logs e arquivos de ambiente gerenciados pelo operador.
Uma definição launchd executa um gateway local persistente para agentes de desenvolvedor e estação de trabalho.
Migração e verificação
As capacidades do produto nesta página vêm da fonte local do Gateway, configuração, documentação e suítes de teste. A migração ADK-Rust v2 agora passa pela verificação de biblioteca, propriedade, integração, agente gerado e painel de controle.
Adaptadores de canal, roteamento de mensagens, registro de agentes, ciclo de vida de processos, sessões, memória, RAG, tarefas agendadas, aprovação de ferramentas, controle de acesso, rotas do painel de controle, AWP, MCP, integração ACP, ativos de implantação e testes existem no repositório revisado.
Toda dependência ADK resolve para o workspace local 2.0. Rust 2024 e Rust 1.95 compilam em todos os alvos e recursos. Todos os 845 testes de biblioteca, 276 testes independentes de propriedade e integração, e 81 testes do painel de controle passam.
O estado v2 verificado é atualmente uma migração local de código-fonte, não um crate adk-gateway v2 publicado. A orientação de instalação deve continuar a distinguir um checkout de código-fonte da versão v1 do crates.io.
Cada provedor de mensagens, provedor de modelo, servidor MCP externo, backend persistente, provedor de identidade e implantação em produção ainda precisam de credenciais, infraestrutura e revisão de segurança pelo seu operador.
A geração de código multiagente ainda documenta endpoints A2A temporários, e o comércio AWP está declarado mas não implementado como um sistema completo de transações. Nenhum deles é apresentado aqui como pronto para produção.
Revisão da fonte: Todas as dependências do ADK resolvem para o workspace local v2.0.0, o projeto tem como alvo Rust 2024 com MSRV 1.94, e a compilação para todos os alvos/todas as funcionalidades é bem-sucedida. A verificação passa em 845 testes de biblioteca, 276 testes independentes de propriedades e integração, e 81 testes do painel de controle; o crates.io continua publicando a versão 1.
O ADK Gateway é apresentado como software com origem em código-fonte, não como um serviço hospedado em website. A migração local para a versão 2 é verificada, enquanto o crates.io permanece na versão 1. Canais de mensagens, provedores de modelos, ferramentas externas MCP, backends persistentes e segurança em produção dependem das credenciais do operador e da configuração de implantação; geração experimental de código e comércio AWP permanecem explicitamente limitados na documentação fonte.
Construa a camada operacional
Comece pela fonte verificada v2. O repositório contém o gateway, painel de controle embutido, referência de configuração, guias de canal, ativos de implantação e suítes de teste necessários para entender e operar o sistema completo.