源代码可用ADK-Rust v2 测试矩阵验证

多渠道代理操作

在用户已工作的地方运行您的代理。

ADK Gateway 连接消息通道、网页应用和其他代理到 ADK-Rust 代理团队。它路由每个请求,恢复正确上下文,应用操作策略,并为开发者提供一个查看和控制系统的入口。

ADK Gateway 运行中

人员与系统

Telegram
Slack
WhatsApp
Discord
Matrix

身份 · 路由器 · 运行器

会话政策事件交付

代理团队

系统代理
支持代理
研究代理
编码代理
工具内存协议控件

为什么需要网关?

代理很有用。运营中的代理系统是一个产品。

ADK-Rust 代理可以推理、调用工具并流式传输事件。实际部署还必须回答实际问题: 请求从哪里到达?哪个代理应接收?应恢复谁的会话?该代理被允许做什么?

ADK Gateway 提供共享操作层。Telegram、Slack、WhatsApp、Discord、Matrix、webhooks 和面向代理的网页请求通过适配器进入。网关将它们转换为统一消息格式,应用访问规则,路由到系统或专门代理,并通过原始通道反馈进度。

网关不会将所有代理合并为一个助手。开发者可以将研究、支持、运营和编码代理分开管理——使用不同模型、工具、工作区、权限和频道绑定——同时通过一个控制界面操作。

无网关

  • 每个通道都需要自己的代理集成
  • 会话和身份在入口点间漂移
  • 工具和权限在多个地方配置
  • 操作员无法查看整个代理系统

使用 ADK Gateway

  • 通道适配器共享一个入站契约
  • 路由有意选择代理和会话
  • 功能和政策保持附着于代理角色
  • 一个控制面板显示代理、渠道、工作和健康状态

架构

围绕一组独立控制代理的单一网关。

从左到右阅读架构。请求通过人工或代理通道进入。身份和路由决定归属。ADK-Rust 运行选定代理及其状态和功能。控制平面观察每一层,但不参与对话。

入口点

  • Telegram · Slack
  • WhatsApp · Discord
  • Matrix · webhooks
  • AWP 请求

信任边缘

  • 配对 + 身份
  • 允许列表 + 角色
  • 速率限制
  • JWT / 单点登录

网关运行时

  • 消息路由器
  • ADK-Rust Runner
  • 会话 + 事件
  • 交付

代理团队

  • 系统代理
  • 专家代理
  • 图形化工作流
  • ACP 编码代理

能力

  • 模型 + 回退
  • Rust 工具 + MCP
  • 内存 + RAG
  • 工件 + 存储

操作员控制平面

配置、批准、观察、恢复和审计完整请求路径。

控制面板WebSocket 事件指标日志健康状况
接口与交付身份与运营策略路由与执行状态与能力

跟踪一个请求

从 Telegram 消息到合适的专业代理。

相同流程适用于所有支持的频道。仅适配器和传递格式不同;路由、会话、代理执行、策略和证据保持共享。

  1. 01Channel adapter

    接收单条消息格式

    Telegram、Slack、WhatsApp、Discord、Matrix 和 Webhook 以不同格式到达。每个适配器将它们转换为相同的入站消息协议。

  2. 02Access boundary

    识别谁可以继续

    配对规则、允许列表、群组提及策略、多用户身份、速率限制和可选的 JWT 检查在请求到达代理之前执行。

  3. 03消息路由器

    选择合适的代理

    路由检查频道、账户和个人或群组。最具体的匹配获胜;系统代理是最终后备。

  4. 04ADK-Rust Runner

    恢复对话

    Runner 在代理执行开始前附加正确的会话、用户上下文、内存、取消状态和模型回退链。

  5. 05Specialist agent

    仅使用分配的能力

    选定代理可使用其 Rust 工具、MCP 服务器、知识、工作流或获批的 ACP 编码代理。角色策略限制其调用权限。

  6. 06Delivery + evidence

    返回进度并保留记录

    类型化事件变成输入指示器、进度消息、图片或最终响应。指标、日志、任务历史和审计事件解释发生了什么。

Rust 中的路由

路由是明确且可测试的。

开发者可以将代理绑定到整个频道、该频道上的一个账户,或特定个人或群组。路由器先检查最具体的规则,然后可预测地回退。

示例为提高可读性简化了源实现。仓库测试精确、账户级、频道级、遗留和默认路由行为。

router.rs · simplified resolution order
/// 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)
}
gateway.json · agent, channel, and role
{
  "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.

设置

选择模型提供商,存储凭据,连接通道账户,并在向用户开放前验证网关。

首次运行向导模型回退通道连接测试已验证的 JSON 配置

指挥代理

创建专家,分配工具和通道,启动或停止其进程,并定义哪些代理可以委派工作。

代理生命周期通道绑定委派权限计划任务

保持控制

审查敏感工具调用、配对用户、终止会话、检查同意,并在任务不应继续时介入。

工具审批配对与角色会话终止AWP 同意

操作

实时监控频道和代理,检查错误,搜索内存,跟踪运行中网关的健康状态。

实时 WebSocket 仪表盘日志和指标内存浏览器组件健康状况

打开协议边界

连接工具、编码代理、网站和应用程序。

通道连接网关与人员。协议连接其与功能和其他软件。每个边界有不同职责,开发者可添加单个边界而无需重新设计整个运行时。

MCP

为代理提供外部工具

连接浏览器、计算机、媒体、数据和业务系统的能力服务器。网关可以添加、列出和移除配置的 MCP 服务器,无需将每个集成编译进二进制文件。

ACP

委派编码工作

在受监督边界后运行支持的编码代理进程。工作区策略、权限请求、进度、成本、队列状态和任务历史对网关保持可见。

AWP

暴露面向代理的网页界面

发布发现、能力、健康状况、同意、订阅和代理消息端点,方便其他软件理解如何与网关协作。

HTTP + WebSocket

集成与操作

入站 webhook 从其他应用带来工作。HTTP API 和实时 WebSocket 事件驱动嵌入式控制面板和外部操作工具。

当前边界: 该源在AWP界面下暴露其agent-message路由。页面不声明单独验证的完整A2A服务器界面或生产AWP商务实现。

治理

为代理提供在可见边界内工作的空间。

代理自主权应为配置的操作决策。ADK Gateway 在携带请求的同一路径上放置身份、权限、限制和证据。

01

身份

配对、允许列表、多用户会话、JWT/JWKS 和角色映射确定请求发起者身份。

02

权限

每个代理的允许和拒绝规则以及工具审批决定人员或代理可使用的功能。

03

限制

速率限制、请求超时、取消、有界工具循环和健康策略限制工作持续时间。

04

证据

审计事件、日志、指标、任务历史、工具结果和健康历史提供运营记录。

部署

选择网关运行位置。

开发者工作站、内部服务器或容器都可以运行相同的网关形态。会话存储可保存在内存中用于本地实验,或迁移到 SQLite、PostgreSQL、Redis 或 Firestore 用于部署系统。

01

单一二进制文件

Rust 服务嵌入已编译的 React 控制面板。安装或复制一个可执行文件,并将配置放置在旁边。

02

容器

仓库包含 Dockerfile 及容器部署的卷和端口文档协议。

03

Linux 服务

systemd 单元支持启动时自动运行、重启策略、就绪状态、日志和运维人员管理的环境文件。

04

macOS服务

launchd 定义运行持久本地网关,支持开发者和工作站代理。

迁移与验证

今天验证了什么?

本页的产品功能来自本地 Gateway 源代码、配置、文档和测试套件。ADK-Rust v2 迁移现已通过其库、属性、集成、生成代理和控制面板验证。

已验证源代码

网关产品架构

渠道适配器、消息路由、代理注册、进程生命周期、会话、内存、RAG、计划任务、工具审批、访问控制、控制面板路由、AWP、MCP、ACP 集成、部署资产及测试均存在于已审查的仓库中。

测试已验证

本地 ADK-Rust v2 迁移

每个 ADK 依赖项均解析到本地 2.0 工作区。Rust 2024 和 Rust 1.95 可跨所有目标和功能编译。所有 845 个库测试、276 个独立属性和集成测试以及 81 个控制面板测试均通过。

已发布版本

crates.io 仍为 v1

已验证的 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 源开始。仓库包含网关、嵌入式控制面板、配置参考、频道指南、部署资产和理解及操作完整系统所需的测试套件。