Sin gateway
- Cada canal necesita su propia integración de agente
- Sesiones e identidades derivan entre puntos de entrada
- Las herramientas y permisos se configuran en varios lugares
- Los operadores no pueden ver todo el sistema de agentes
Operaciones de agentes multicanal
ADK Gateway conecta canales de mensajería, aplicaciones web y otros agentes a un equipo de agentes ADK-Rust. Enruta cada solicitud, restaura el contexto correcto, aplica la política operativa y ofrece a los desarrolladores un lugar para ver y controlar el sistema.
Personas y sistemas
Identidad · Router · Runner
Equipo de agentes
¿Por qué un gateway?
Un agente ADK-Rust puede razonar, llamar herramientas y transmitir eventos. Un despliegue real también debe responder preguntas prácticas: ¿Dónde llegan las solicitudes? ¿Qué agente debería recibirlas? ¿De quién se debe restaurar la sesión? ¿Qué puede hacer ese agente?
ADK Gateway proporciona esa capa operativa compartida. Telegram, Slack, WhatsApp, Discord, Matrix, webhooks y solicitudes web dirigidas a agentes entran a través de adaptadores. El gateway los convierte en una forma de mensaje única, aplica reglas de acceso, los enruta a un agente del sistema o especialista y entrega el progreso de vuelta por el canal original.
El gateway no fusiona todos los agentes en un solo asistente. Los desarrolladores pueden mantener separados los agentes de investigación, soporte, operaciones y codificación — con diferentes modelos, herramientas, espacios de trabajo, permisos y enlaces de canal — mientras los operan a través de una única superficie de control.
Arquitectura
Leer la arquitectura de izquierda a derecha. Las solicitudes entran por canales humanos o de agentes. La identidad y el enrutamiento deciden dónde pertenecen. ADK-Rust ejecuta el agente seleccionado con su propio estado y capacidades. El plano de control observa cada capa sin formar parte de la conversación.
Puntos de entrada
Borde de confianza
Tiempo de ejecución Gateway
Equipo de agentes
capacidades
Plano de control del operador
Configurar, aprobar, observar, recuperar y auditar la ruta completa de la solicitud.
Seguir una solicitud
El mismo flujo se aplica a cada canal soportado. Solo cambian el adaptador y formato de entrega; el enrutamiento, sesiones, ejecución de agentes, políticas y evidencia permanecen compartidos.
Telegram, Slack, WhatsApp, Discord, Matrix y webhooks llegan en diferentes formatos. Cada adaptador los convierte en el mismo contrato de mensaje entrante.
Las reglas de emparejamiento, listas de permitidos, política de menciones grupales, identidad multiusuario, límites de tasa y verificaciones JWT opcionales se ejecutan antes de que la solicitud llegue a un agente.
El enrutamiento verifica el canal, cuenta y persona o grupo. La coincidencia más específica gana; el agente del sistema es la última opción.
El Runner adjunta la sesión correcta, contexto de usuario, memoria, estado de cancelación y cadena de respaldo del modelo antes de que comience la ejecución del agente.
El agente seleccionado puede usar sus herramientas Rust, servidores MCP, conocimientos, flujos de trabajo o un agente de codificación ACP aprobado. La política de rol limita lo que puede llamar.
Los eventos tipeados se convierten en indicadores de escritura, mensajes de progreso, imágenes o una respuesta final. Métricas, registros, historial de tareas y eventos de auditoría explican lo ocurrido.
Enrutamiento en Rust
Un desarrollador puede vincular un agente a todo un canal, a una cuenta en ese canal o a una persona o grupo específico. El enrutador verifica primero la regla más específica y luego retrocede de forma predecible.
El ejemplo condensa la implementación fuente para mejorar la legibilidad. El repositorio prueba comportamientos exactos, a nivel de cuenta, canal, legado y enrutamiento por defecto.
/// 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
}]
}Panel de control embebido
El panel de control React se compila en el binario Rust y se sirve en /ui. It is the operator interface for configuration, agent lifecycle, approvals, sessions, memory, scheduled work, logs, and health.
Elige proveedores de modelos, almacena credenciales, conecta cuentas de canal y valida la puerta de enlace antes de abrirla a usuarios.
Crear especialistas, asignar herramientas y canales, iniciar o detener sus procesos y definir qué agentes pueden delegar trabajo.
Revisar llamadas a herramientas sensibles, emparejar usuarios, terminar sesiones, inspeccionar consentimiento e intervenir cuando una tarea no debe continuar.
Ver canales y agentes en tiempo real, inspeccionar errores, buscar en la memoria y seguir la salud del gateway en ejecución.
Abrir límites del protocolo
Los canales conectan la puerta de enlace con personas. Los protocolos la conectan con capacidades y otro software. Cada límite tiene un trabajo distinto, para que los desarrolladores puedan añadir uno sin rediseñar toda la ejecución.
MCP
Conectar servidores de capacidad para navegadores, computadoras, medios, datos y sistemas empresariales. La puerta de enlace puede agregar, listar y eliminar servidores MCP configurados sin integrar cada integración en su binario.
ACP
Ejecutar procesos de agente de codificación soportados detrás de un límite supervisado. La política del espacio de trabajo, solicitudes de permiso, progreso, costo, estado de cola e historial de tareas permanecen visibles para la puerta de enlace.
AWP
Publicar descubrimiento, capacidades, estado, consentimiento, suscripciones y un endpoint de mensajes de agente para que otro software entienda cómo trabajar con el gateway.
HTTP + WebSocket
Los webhooks entrantes traen trabajo desde otras aplicaciones. Las APIs HTTP y eventos WebSocket en vivo alimentan el panel de control embebido y las herramientas externas de operación.
Límite actual: la fuente expone su ruta agent-message bajo la superficie AWP. La página no reclama una superficie A2A verificada por separado, completa o una implementación de comercio AWP en producción.
Gobernanza
La autonomía del agente debe ser una decisión operativa configurada. ADK Gateway coloca identidad, autoridad, límites y evidencia alrededor de la misma ruta de ejecución que lleva la solicitud.
El emparejamiento, listas de permitidos, sesiones multiusuario, JWT/JWKS y mapeo de roles responden quién está haciendo la solicitud.
Las reglas de permitir y denegar por agente más la aprobación de herramientas determinan qué capacidades puede usar una persona o agente.
Limitación de tasa, tiempos de espera de solicitudes, cancelación, bucles limitados de herramientas y política de salud limitan cuánto puede continuar el trabajo.
Los eventos de auditoría, registros, métricas, historial de tareas, resultados de herramientas e historial de salud proporcionan un registro operativo.
Despliegue
Una estación de trabajo para desarrolladores, un servidor interno o un contenedor pueden ejecutar la misma forma de gateway. El almacenamiento de sesión puede permanecer en memoria para un experimento local o trasladarse a SQLite, PostgreSQL, Redis o Firestore para un sistema desplegado.
El servicio Rust incorpora el panel de control React compilado. Instale o copie un ejecutable y mantenga la configuración junto a él.
El repositorio incluye un Dockerfile y contratos documentados de volúmenes y puertos para despliegue en contenedores.
Una unidad systemd soporta inicio al arrancar, política de reinicio, disponibilidad, registros y archivos de entorno gestionados por el operador.
Una definición launchd ejecuta un gateway local persistente para agentes de desarrollador y estación de trabajo.
Migración y verificación
Las capacidades del producto en esta página provienen del código fuente local del Gateway, configuración, documentación y suites de prueba. La migración ADK-Rust v2 ahora pasa la verificación de biblioteca, propiedad, integración, agente generado y panel de control.
Adaptadores de canal, enrutamiento de mensajes, registro de agentes, ciclo de vida de procesos, sesiones, memoria, RAG, tareas programadas, aprobación de herramientas, control de acceso, rutas del panel de control, integración AWP, MCP, ACP, activos de despliegue y pruebas existen en el repositorio revisado.
Cada dependencia de ADK se resuelve en el espacio de trabajo local 2.0. Rust 2024 y Rust 1.95 compilan en todos los objetivos y características. Todas las 845 pruebas de biblioteca, 276 pruebas independientes de propiedades e integración, y 81 pruebas del panel de control pasan correctamente.
El estado v2 verificado es actualmente una migración local de código fuente, no un crate publicado adk-gateway v2. La guía de instalación debe continuar distinguiendo una revisión de código fuente de la versión v1 en crates.io.
Cada proveedor de mensajería, proveedor de modelos, servidor MCP externo, backend persistente, proveedor de identidad y despliegue en producción aún requieren credenciales, infraestructura y revisión de seguridad por parte de su operador.
La generación de código multi-agente aún documenta puntos finales A2A de marcador de posición, y el comercio AWP está declarado pero no implementado como un sistema de transacciones completo. Ninguno se presenta aquí como listo para producción.
Revisión de fuente: Todas las dependencias de ADK se resuelven en el espacio de trabajo local v2.0.0, el proyecto apunta a Rust 2024 con MSRV 1.94, y la compilación con todas las características y para todos los objetivos pasa correctamente. La verificación supera 845 pruebas de biblioteca, 276 pruebas independientes de propiedades e integración, y 81 pruebas del panel de control; crates.io continúa publicando la versión v1.
ADK Gateway se presenta como software respaldado por código fuente, no como un servicio alojado en un sitio web. La migración local a v2 está verificada, mientras que crates.io permanece en v1. Los canales de mensajería, proveedores de modelos, herramientas externas MCP, backends persistentes y la seguridad en producción dependen de las credenciales del operador y la configuración del despliegue; la generación experimental de código y el comercio AWP permanecen explícitamente limitados en la documentación fuente.
Construir la capa operativa
Comienza desde la fuente verificada v2. El repositorio contiene la puerta de enlace, panel de control embebido, referencia de configuración, guías de canal, activos de despliegue y suites de prueba necesarios para entender y operar el sistema completo.