MATE 智能体指挥中心
通过仪表盘改提示词、换模型、管权限,无需改代码或重新部署。
- 源仓库
- antiv/mate
- Star 数
- ★ 108
- 最近更新
- 3 天前
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 53/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API · Claude API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 运维或平台团队需要一个统一的智能体控制面,集中管理多团队、多项目的智能体层级与权限。
- 不适合
- 只需要一个单文件脚本、不想运行 Web 服务的个人开发者
- 不想承担数据库和运维维护的团队
- 源码审查
- 53/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
MATE 是建立在 Google ADK 之上的生产级多智能体编排引擎(同时支持 LangGraph),通过 FastAPI 提供 Web 仪表盘与后端。智能体配置存放在数据库中,可在可视化画布上创建层级、绘制父子关系、挂载工具与 MCP 节点,并支持版本历史与一键回滚。它通过 LiteLLM 接入 50+ 厂商模型,记录每次调用的美元成本与四类 token 用量,并提供按用户、智能体、项目的 RBAC、预算、告警与审计日志。内置 Eval 框架与 Playground,可对智能体跑测试集并按版本追踪分数与回归。部署方式为 Docker 镜像或源码自托管,数据库默认 SQLite,也可用 PostgreSQL、MySQL 8。
MATE 以 auth_server.py 启动 FastAPI 服务,默认在 8000 端口暴露仪表盘。它从数据库读取智能体定义(模型、指令、父子层级、工具、MCP 服务器、记忆块、RBAC 角色),在对话时通过 LiteLLM 调用所选模型,并将每次模型调用的美元成本与 prompt/response/thoughts/tool-use 四类 token 用量写入日志,供 /dashboard/usage 分析。它把每个根智能体暴露为 MCP 服务器(/agents/{name}/mcp/*)和 A2A 端点(/a2a/{agent}),并提供 OpenAI 兼容的 /v1 桥接与可嵌入的 <script> 聊天组件。Eval 框架自动调用在线智能体,用精确匹配、语义相似度或 LLM 裁判打分,并在版本回退超过 5 分时触发回归 webhook。启动时自动执行数据库迁移。
- 运维或平台团队需要一个统一的智能体控制面,集中管理多团队、多项目的智能体层级与权限。
- 产品团队想在不重新部署的情况下迭代提示词与模型,并用版本回滚兜底。
- 需要在对外网站(客服、销售、文档站)部署聊天机器人,且每个站点有独立外观与访问规则。
- 合规或财务团队要按智能体、项目、用户追踪 LLM 成本并设置预算告警。
- 想把智能体接入 Claude Desktop、Cursor 或兼容 OpenAI 的 IDE 客户端。
- 需要在发布前用自动化测试集对提示词改动做回归验证的团队。
如何安装或部署这个 Agent?
最快方式:从已发布的镜像运行 Docker 容器。
docker run -d --name mate -p 8000:8000 \
-e AUTH_PASSWORD=change-me -e GOOGLE_API_KEY=your-key \
-e DB_PATH=data/my_agent_data.db -v mate-data:/app/data \
ghcr.io/antiv/mate:latest或从源码安装:
git clone https://github.com/antiv/mate.git && cd mate
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.lock
cp .env.example .env
# 设置 GOOGLE_API_KEY(或其他受支持提供方的密钥)、AUTH_USERNAME 和 AUTH_PASSWORD也可以使用 docker-compose up --build 构建完整栈(需在 .env 中设置 AUTH_PASSWORD)。
运行时需要 Python 3.10+(源码方式)、一个 LLM 提供方 API 密钥,默认数据库为 SQLite,迁移在启动时自动执行。
如何使用这个 Agent?
启动服务后打开 http://localhost:8000,使用 AUTH_USERNAME / AUTH_PASSWORD 登录(留空时为 admin / mate;MATE_ENV=production 会拒绝该默认值)。
源码方式启动:
python auth_server.py
# Dashboard: http://localhost:8000登录后默认进入 /dashboard/workroom,从卡片中选择一个根智能体开始对话。在 /dashboard/agents 用可视化画布创建智能体、绘制父子连线、配置工具和 MCP 服务器。
把智能体作为 MCP 服务器暴露:
export MCP_EXPOSED_AGENTS=creative_agent,support_agent客户端使用仪表盘账户菜单生成的 Personal Access Token 认证:
curl -H "Authorization: Bearer mate_pat_..." https://your-mate-instance.com/mcp嵌入网站聊天组件:
<script
src="https://your-mate-instance.com/widget/mate-widget.js"
data-key="wk_abc123..."
data-server="https://your-mate-instance.com"
></script>常用环境变量包括 DB_TYPE、GOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRET 与 GITHUB_CLIENT_ID/GITHUB_CLIENT_SECRET(SSO)、RATE_LIMIT_ENABLED、ALERTS_ENABLED、CSP_MODE、OTEL_TRACING_ENABLED、AUDIT_RETENTION_DAYS。
这个 Agent 有哪些优点和局限?
- 智能体配置存在数据库里,提示词、模型、权限都可在仪表盘即时修改并一键回滚,无需重新部署。
- 通过 LiteLLM 支持 50+ 模型提供方,包括 Ollama、LM Studio、llama.cpp 等本地服务。
- 内置按智能体的 RBAC、美元成本统计、预算告警与审计日志,覆盖生产治理需求。
- Eval 框架与 Playground 可对同一提示词或测试集并排比较模型、指令与历史版本的分数、延迟和成本。
- 每个智能体可作为 MCP 服务器和 A2A 端点暴露,并提供 OpenAI 兼容的
/v1桥接。 - 单条
<script>标签即可在任意网站嵌入按 key 隔离的聊天组件。
- 是以 Google ADK 为核心的较重服务,需要运行 FastAPI 进程和维护数据库(默认 SQLite,也可用 PostgreSQL/MySQL 8)。
- 按项目文档,依赖清单中
google-adk与 SQLAlchemy 被手工固定在 2.1 以下,升级受上游变更约束。 - 高级功能(SSO、告警、OpenTelemetry、MCP 暴露、A2A)需要额外的环境变量和服务配置。
- 成本统计依赖价格表或手工设置的价格,未知价格的调用只会标注而不会计为 0。
- UI 以英文为主;演示向导界面为塞尔维亚语,非英语团队需要适应。
这个 Agent 与同类方案有什么区别?
README 明确与「直接使用原始 Google ADK」对比:原始 ADK 修改提示词或模型需要改代码并重新部署,而 MATE 可在仪表盘即时修改;原始 ADK 不带按智能体的 RBAC、成本统计、预算、Eval 套件和嵌入组件,这些由 MATE 提供。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| MATE 智能体指挥中心 当前 | 53 · 缺口较多 | 自托管服务免费 + 模型费 | ★ 108 | 3 天前 | Python | OpenAI API · Claude API |
| EDDI 对话式 AI 编排平台 | 68 · 存在缺口 | 自托管服务免费 + 模型费 | ★ 389 | 今天 | Java | OpenAI API |
| DashClaw | 65 · 存在缺口 | 命令行工具免费 | ★ 316 | 1 个月前 | TypeScript | Codex · Claude Code |
| Agent Swarm | 47 · 缺口较多 | Agent 插件 / 技能免费 + 模型费 | ★ 1k | 今天 | TypeScript | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示分层鉴权(DashboardAuthzMiddleware、平台专属路径、workspace 隔离、RBAC 三层)与 CSP 文档较扎实,故 least_privilege 给 2;但默认 AUTH_PASSWORD=mate、TRUSTED_PROXY_HOSTS=*、WIDGET_ORIGIN_STRICT=false、CSP 默认 report-only 等不安全默认削弱了最小权限,扣分。user_confirmation 仅见 RESUMABILITY 的 human-in-the-loop 工具审批(默认关闭),无普遍确认机制,给 1。data_flow_transparency 有配置参考与 CSP/数据流说明,但缺少端到端数据流向图,给 2。sensitive_data_handling 有 MATE_SECRET_KEY 加密、PAT 哈希、审计日志,但未设密钥时明文存储并仅告警,扣分至 2。dependency_security 有 requirements.lock 哈希锁定与月度升级工作流,但未见漏洞扫描证据,给 2。external_effects 涉及代码执行、浏览器工具、MCP stdio、告警外发等副作用,仅靠平台专属限制,缺少统一确认/回滚,给 1。rollback 有代理版本历史一键回滚,但仅限配置层,给 2。source_attribution 有作者与案例链接,但发布者身份未经验证、无来源溯源机制,给 1。
self_consistency 文档与配置参考、CSP 文档相互一致,给 2。dependency_availability 有锁定文件、多数据库驱动、Docker 镜像,给 2。failure_messages 文档提及部分错误(403/404/409),但缺少系统性错误信息规范,给 1。
audience_and_scenarios 明确区分 user/dev 文档与三类空间,给 2。capability_boundaries 有平台专属能力清单与 workspace 边界,给 2。trigger_precision 有触发器与告警,但触发精度与去重证据薄弱,给 1。environment_fit 支持 SQLite/PostgreSQL/MySQL、Docker、多 LLM 提供商,给 2。
information_architecture 有 docs 目录、order、covers 元数据,给 2。install_notes 有 Quick Start、Docker、依赖说明,给 2。naming_stability 未见命名稳定性承诺,给 1。examples_and_faq 有示例与演示,但无 FAQ,给 1。known_limitations 有 Known gaps 与不安全默认说明,给 2。license 标注 Apache-2.0,给 2。versioning_changelog 有 CHANGELOG 链接与发布徽章,但内容未在证据中,给 1。maintenance_responsibility 有作者与月度依赖工作流,但发布者未验证、责任归属不清,给 1。
output_usability 有仪表盘、API、MCP、A2A、嵌入组件,输出可用性较好,给 2。marginal_value 相对裸 ADK 提供治理、成本、评测等增量价值,给 2。cost_benefit 有成本追踪与预算,但部署与运维复杂度高、默认不安全配置增加隐性成本,给 1。
claim_traceability README 声称 1400+ 测试与生产使用,但证据中无测试文件或案例细节,给 1。cross_source_corroboration 多份文档相互印证部分配置,但关键声明缺乏独立佐证,给 1。fact_inference_separation 文档混有营销声明与事实,未明确区分推断,给 1。
- 默认配置不安全:AUTH_PASSWORD=mate、TRUSTED_PROXY_HOSTS=*、WIDGET_ORIGIN_STRICT=false、CSP 默认 report-only,生产部署前必须收紧。
- 未设置 MATE_SECRET_KEY 时密钥明文存储,仅有启动告警。
- 代码执行、浏览器工具、MCP stdio 等高风险能力仅靠平台专属限制,缺少统一确认与回滚。
- README 声称 1400+ 测试与生产使用,但证据中无测试文件或案例细节,需独立验证。
- 发布者身份未经验证,维护责任与更新路径不明确。
常见问题
软件本身收费吗?
支持哪些数据库?
python shared/migrate.py status 查看待执行迁移。智能体可以脱离 MATE 单独运行吗?
如何保证改动不引入回归?
能否接入 Claude Desktop 或 Cursor?
MCP_EXPOSED_AGENTS 暴露指定智能体后,客户端用仪表盘生成的 Personal Access Token(Authorization: Bearer mate_pat_...)访问 /agents/{name}/mcp/*。