无网关
- 每个通道都需要自己的代理集成
- 会话和身份在入口点间漂移
- 工具和权限在多个地方配置
- 操作员无法查看整个代理系统
多渠道代理操作
ADK Gateway 连接消息通道、网页应用和其他代理到 ADK-Rust 代理团队。它路由每个请求,恢复正确上下文,应用操作策略,并为开发者提供一个查看和控制系统的入口。
人员与系统
身份 · 路由器 · 运行器
代理团队
为什么需要网关?
ADK-Rust 代理可以推理、调用工具并流式传输事件。实际部署还必须回答实际问题: 请求从哪里到达?哪个代理应接收?应恢复谁的会话?该代理被允许做什么?
ADK Gateway 提供共享操作层。Telegram、Slack、WhatsApp、Discord、Matrix、webhooks 和面向代理的网页请求通过适配器进入。网关将它们转换为统一消息格式,应用访问规则,路由到系统或专门代理,并通过原始通道反馈进度。
网关不会将所有代理合并为一个助手。开发者可以将研究、支持、运营和编码代理分开管理——使用不同模型、工具、工作区、权限和频道绑定——同时通过一个控制界面操作。
架构
从左到右阅读架构。请求通过人工或代理通道进入。身份和路由决定归属。ADK-Rust 运行选定代理及其状态和功能。控制平面观察每一层,但不参与对话。
入口点
信任边缘
网关运行时
代理团队
能力
操作员控制平面
配置、批准、观察、恢复和审计完整请求路径。
跟踪一个请求
相同流程适用于所有支持的频道。仅适配器和传递格式不同;路由、会话、代理执行、策略和证据保持共享。
Telegram、Slack、WhatsApp、Discord、Matrix 和 Webhook 以不同格式到达。每个适配器将它们转换为相同的入站消息协议。
配对规则、允许列表、群组提及策略、多用户身份、速率限制和可选的 JWT 检查在请求到达代理之前执行。
路由检查频道、账户和个人或群组。最具体的匹配获胜;系统代理是最终后备。
Runner 在代理执行开始前附加正确的会话、用户上下文、内存、取消状态和模型回退链。
选定代理可使用其 Rust 工具、MCP 服务器、知识、工作流或获批的 ACP 编码代理。角色策略限制其调用权限。
类型化事件变成输入指示器、进度消息、图片或最终响应。指标、日志、任务历史和审计事件解释发生了什么。
Rust 中的路由
开发者可以将代理绑定到整个频道、该频道上的一个账户,或特定个人或群组。路由器先检查最具体的规则,然后可预测地回退。
示例为提高可读性简化了源实现。仓库测试精确、账户级、频道级、遗留和默认路由行为。
/// 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
}]
}嵌入式控制面板
React 控制面板编译进 Rust 二进制文件并在以下位置提供 /ui. It is the operator interface for configuration, agent lifecycle, approvals, sessions, memory, scheduled work, logs, and health.
选择模型提供商,存储凭据,连接通道账户,并在向用户开放前验证网关。
创建专家,分配工具和通道,启动或停止其进程,并定义哪些代理可以委派工作。
审查敏感工具调用、配对用户、终止会话、检查同意,并在任务不应继续时介入。
实时监控频道和代理,检查错误,搜索内存,跟踪运行中网关的健康状态。
打开协议边界
通道连接网关与人员。协议连接其与功能和其他软件。每个边界有不同职责,开发者可添加单个边界而无需重新设计整个运行时。
MCP
连接浏览器、计算机、媒体、数据和业务系统的能力服务器。网关可以添加、列出和移除配置的 MCP 服务器,无需将每个集成编译进二进制文件。
ACP
在受监督边界后运行支持的编码代理进程。工作区策略、权限请求、进度、成本、队列状态和任务历史对网关保持可见。
AWP
发布发现、能力、健康状况、同意、订阅和代理消息端点,方便其他软件理解如何与网关协作。
HTTP + WebSocket
入站 webhook 从其他应用带来工作。HTTP API 和实时 WebSocket 事件驱动嵌入式控制面板和外部操作工具。
当前边界: 该源在AWP界面下暴露其agent-message路由。页面不声明单独验证的完整A2A服务器界面或生产AWP商务实现。
治理
代理自主权应为配置的操作决策。ADK Gateway 在携带请求的同一路径上放置身份、权限、限制和证据。
配对、允许列表、多用户会话、JWT/JWKS 和角色映射确定请求发起者身份。
每个代理的允许和拒绝规则以及工具审批决定人员或代理可使用的功能。
速率限制、请求超时、取消、有界工具循环和健康策略限制工作持续时间。
审计事件、日志、指标、任务历史、工具结果和健康历史提供运营记录。
部署
开发者工作站、内部服务器或容器都可以运行相同的网关形态。会话存储可保存在内存中用于本地实验,或迁移到 SQLite、PostgreSQL、Redis 或 Firestore 用于部署系统。
Rust 服务嵌入已编译的 React 控制面板。安装或复制一个可执行文件,并将配置放置在旁边。
仓库包含 Dockerfile 及容器部署的卷和端口文档协议。
systemd 单元支持启动时自动运行、重启策略、就绪状态、日志和运维人员管理的环境文件。
launchd 定义运行持久本地网关,支持开发者和工作站代理。
迁移与验证
本页的产品功能来自本地 Gateway 源代码、配置、文档和测试套件。ADK-Rust v2 迁移现已通过其库、属性、集成、生成代理和控制面板验证。
渠道适配器、消息路由、代理注册、进程生命周期、会话、内存、RAG、计划任务、工具审批、访问控制、控制面板路由、AWP、MCP、ACP 集成、部署资产及测试均存在于已审查的仓库中。
每个 ADK 依赖项均解析到本地 2.0 工作区。Rust 2024 和 Rust 1.95 可跨所有目标和功能编译。所有 845 个库测试、276 个独立属性和集成测试以及 81 个控制面板测试均通过。
已验证的 v2 状态当前为本地源迁移,非已发布的 adk-gateway v2 crate。安装指南应继续区分源代码检出与 crates.io v1 版本。
每个消息提供者、模型提供者、外部 MCP 服务器、持久后端、身份提供者和生产部署仍需其运营者提供凭证、基础设施和安全审查。
多代理代码生成仍记录占位的 A2A 端点,AWP 商务已声明但未实现为完整交易系统。两者均未作为生产就绪版本呈现。
来源审核: 所有 ADK 依赖解析至本地 v2.0.0 工作区,项目目标为 Rust 2024,最低支持版本(MSRV)为 1.94,且支持所有目标/所有特性编译。验证通过 845 个库测试、276 个独立属性和集成测试,以及 81 个控制面板测试;crates.io 继续发布 v1 版本。
ADK Gateway 作为基于源码的软件呈现,而非网站托管服务。本地 v2 迁移已验证,crates.io 仍维持 v1。消息通道、模型提供者、外部 MCP 工具、持久化后端和生产安全依赖于操作员凭证和部署配置;实验性代码生成和 AWP 商务在源码文档中明确受限。
构建操作层
从验证的 v2 源开始。仓库包含网关、嵌入式控制面板、配置参考、频道指南、部署资产和理解及操作完整系统所需的测试套件。