Speakeasy Gram
为企业里每个 AI 代理提供统一的 MCP 网关与治理控制平面。
- Star 数
- ★ 275
- 最近更新
- 今天
- License
- AGPL-3.0
- 主语言
- Go
- FA 评分
- 53/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配ChatGPT · Claude Code
- 费用
- 有免费版,另有付费云服务
- 上手难度
- 高 · 需要较重的基础设施
- 开始前需要
- 典型场景
- 企业平台团队需要把多个 SaaS 厂商和内部系统的 MCP 服务器统一收口,只暴露一条受策略约束的访问路径。
- 不适合
- 希望完全离线、不接任何 SaaS 的小团队
- 只需要个人本地 MCP 客户端、不需要集中治理的用户
- 源码审查
- 53/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
Gram 是 Speakeasy 开源的 AI 控制平面,核心是一个企业级 MCP 网关。它把 MCP 服务器、Skills、Plugins 和 Assistants 集中分发到各团队,并依据企业 IdP(Okta、Azure AD、Google Workspace 等)按角色下发权限。系统通过 RBAC 与 OAuth 2.1 在团队、服务器、工具三个层级强制执行访问控制,并对每一次提示、响应和代理动作做实时检查与策略拦截。可观测性部分以 OpenTelemetry 为基础,按 token 或成本统计 AI 用量,支持预算、会话下钻和工具效能分析。技术栈为 Golang 后端、TypeScript 仪表盘、Goa 设计优先 API、Temporal 工作流与 OpenRouter LLM 网关。既提供托管的 app.getgram.ai 平台,也可用 ./zero 脚本在本地跑起完整服务。
Gram 读取并托管企业接入的 MCP 服务器、Skills、Plugins 与 Assistants 定义,把这些能力登记进统一的控制层;随后把来自 IdP 的角色映射为 RBAC 权限,在团队、服务器和工具级别限制谁能调用哪个 MCP 工具。运行时它拦截每一次代理请求,对提示、响应与工具调用执行策略检查,完成敏感数据阻断、脱敏或记录,并检测提示注入、PII 泄露和影子 AI 使用。所有工具调用、权限变更和访问事件写入日志并可检索,用量数据通过 OpenTelemetry 采集后按团队汇总 token 与成本,支撑预算与工具效果分析。分发环节将上述资源按角色同步给团队,OAuth 2.1 负责授权流程。
- 企业平台团队需要把多个 SaaS 厂商和内部系统的 MCP 服务器统一收口,只暴露一条受策略约束的访问路径。
- 安全团队希望在员工使用 Claude、ChatGPT、Cursor 等客户端调用 MCP 时实时阻断敏感数据外泄并留存审计记录。
- IT 管理员希望复用现有 Okta 或 Azure AD 角色,自动决定哪个团队能访问哪些 MCP 工具,而不手工维护账号。
- FinOps 或工程负责人需要按团队、会话追踪 token 消耗与成本,并为高消耗场景设置预算。
- 开发者想在本地复现一套带种子数据的完整环境,用于调试网关策略或开发仪表盘功能。
如何安装或部署这个 Agent?
本地开发依赖 Mise 与 Docker,仓库提供的 ./zero 脚本会引导安装缺失依赖、执行数据库迁移并启动全部服务。反复运行直到成功即可。
./zero脚本会安装依赖、运行待执行的数据库迁移,并启动仪表盘与各项服务。若未检测到 Mise 或 Docker,脚本会提示安装方式。
如需多分支并行开发,可为每个 git worktree 分配独立端口运行完整栈:
wt switch --create my-feature托管版本无需安装,直接在 https://app.getgram.ai/ 注册即可。
如何使用这个 Agent?
本地服务启动后,可直接向数据库写入一套贴近真实场景的种子数据——包含已部署的 API、代理会话、遥测、风险发现、团队成员和 API key:
mise seed该命令直接操作数据库,因此可以在服务尚未就绪时运行;重复执行会重置种子数据。
随后登录本地仪表盘,按 README 指引查看 MCP 接入、策略与用量面板。托管平台的使用入口为 https://app.getgram.ai/,文档位于 https://www.getgram.ai/docs/introduction。
这个 Agent 有哪些优点和局限?
- 把 MCP 接入、权限、策略与可观测性放在同一个控制平面里,避免每个团队各自维护 MCP 客户端配置。
- RBAC 与 OAuth 2.1 支持团队、服务器、工具三级粒度,并与 Okta、Azure AD、Google Workspace 等 IdP 同步。
- 以 OpenTelemetry 为基础统计 token 与成本,支持预算、会话下钻和工具效能分析,审计事件可检索。
- 同时提供托管版与开源自托管栈,本地用 ./zero 一条路径拉起完整环境。
- 自托管需要 Mise 与 Docker,并涉及数据库迁移、Temporal 工作流等多个服务,属于较重的基础设施投入。
- LLM 调用经由 OpenRouter 网关,计费依赖 Polar,托管路径与厂商生态绑定较深。
- 采用 AGPL-3.0,若二次分发或作为网络服务提供,需评估开源义务对商业场景的影响。
- 面向企业级治理场景,个人或小团队使用会感到配置与角色体系过重。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Speakeasy Gram 当前 | 53 · 缺口较多 | 自托管服务免费版 + 付费版 | ★ 275 | 今天 | Go | ChatGPT · Claude Code |
| Archestra | 71 · 存在缺口 | 自托管服务免费版 + 付费版 | ★ 4.4k | 今天 | TypeScript | Codex · Claude Code · OpenAI API · Claude API |
| Preloop | 84 · 表现良好 | — | ★ 81 | 今天 | Python | Codex · Claude Code |
| Kontext | 83 · 表现良好 | 命令行工具免费版 + 付费版 | ★ 232 | 今天 | Go | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示仓库确实实现了 RBAC、OAuth2.1、IdP 同步、按组织/服务器/工具分级权限,以及设备代理远程配置中 org:admin 才能读写、平台管理员专属的 update_channel/blocked_versions 等最小权限设计(least_privilege=2)。但用户确认层面只有零散描述:ZIP 安装会内嵌 hooks 凭据、需私下分发,文档承认本地用户设置可被用户修改、无法强制治理个人账户,缺少统一的破坏性操作确认与回滚机制(user_confirmation=1)。数据流方面 README 与 runbook 说明了遥测、OpenTelemetry、敏感数据拦截/脱敏/记录,以及 OpenClaw 插件会看到 gateway 密钥但会清洗,透明度较好(data_flow_transparency=2)。敏感数据处理有 PII/密钥检测与脱敏声明,但多为营销式断言,缺少具体实现证据(sensitive_data_handling=2)。依赖安全方面仅列出 Mise/Docker/Stripe/Temporal 等依赖,无锁文件、SBOM 或漏洞扫描证据(dependency_security=1)。外部副作用方面 runbook 明确会创建 Stripe 沙箱对象、写数据库、mint hooks key,但缺少统一的副作用确认与撤销(external_effects=1)。回滚方面仅提到删除测试时钟、删除合成组织、用 --force 覆盖安装,且研究文档指出损坏 ZIP 会破坏旧安装、无撤销保证(rollback=1)。来源归属方面 README 标注 Built by Speakeasy 并链接贡献者,但发布者身份未经验证、无签名或来源证明(source_attribution=1)。
自洽性较好:多份文档对 USI/RSI/RSC、Stripe 计费、OpenClaw 覆盖范围描述一致,且研究文档明确区分 supported/conditional/contradicted(self_consistency=2)。依赖可用性仅靠 ./zero 脚本引导安装 Mise/Docker,无版本锁定或离线方案,CLI 密钥约 90 天过期(dependency_availability=1)。失败信息方面 runbook 给出 stripe:status、plugins doctor、调试日志、按顺序排查清单,失败提示较充分(failure_messages=2)。
受众与场景覆盖企业管理员、开发者笔记本、服务器/CI 无设备代理安装,场景清晰(audience_and_scenarios=2)。能力边界有明确说明:OpenClaw 在 claude-cli 模式下覆盖不完整、ZIP 是快照非订阅源、本地设置可被修改(capability_boundaries=2)。触发精度方面 hook 触发依赖 allowConversationAccess 等配置,缺失时静默不触发,且版本限定为 2026.6.34 已资格验证、2026.7.1-2 未重新验证,触发条件不够精确(trigger_precision=1)。环境适配覆盖 macOS/Linux/Windows 差异并明确 Bash 假设、Cursor 团队管理账户需管理员开启本地导入(environment_fit=2)。
信息架构清晰,README 分 Observe/Secure/Connect/Distribute,docs 分 runbooks/research(information_architecture=2)。安装说明详尽,含 ./zero、mise seed、Stripe 设置、OpenClaw 安装步骤(install_notes=2)。命名稳定性不足:GRAM_HOOKS_* 已弃用改为 SPEAKEASY_AI_HOOKS_*,旧二进制只读旧名,存在命名漂移(naming_stability=1)。示例与 FAQ 有命令示例但缺少集中 FAQ(examples_and_faq=1)。已知限制记录充分,如 OpenClaw 覆盖陷阱、无夜间 canary、ZIP 更新行为(known_limitations=2)。许可证为完整 AGPL-3.0 文本(license=3)。版本与变更日志缺失,仅有零散版本表(versioning_changelog=1)。维护责任方面有 CONTRIBUTING、Slack、support 邮箱,但发布者未经验证、无明确 SLA 或维护者承诺(maintenance_responsibility=1)。
输出可用性较好:runbook 提供可直接执行的命令、SQL 校验与检查点(output_usability=2)。边际价值在于企业级 MCP 网关、集中治理与可观测性,对已有 IdP 的组织有增量价值(marginal_value=2)。成本效益方面需部署 Mise/Docker/Temporal/Postgres/Stripe 等完整栈,运维成本高,且 AGPL 对商业分发有约束,收益与成本比不够明确(cost_benefit=1)。
claim_traceability 较好:研究文档为每条声明标注 supported/conditional/contradicted/undocumented/code-derived 并引用官方文档(claim_traceability=2)。交叉佐证方面代码路径(repo.go、handler.go、generate.go)与官方文档相互印证(cross_source_corroboration=2)。事实与推断分离明确,文档反复声明未做端到端验证、截图是合成 UI 证据(fact_inference_separation=2)。
- 发布者身份未经验证,README 中的 SOC 2/ISO 27001 认证等声明无法从仓库文件独立核实。
- ZIP 安装包内嵌 hooks 凭据,文档承认本地用户设置可被修改、个人账户无法强制治理,存在凭据泄露与治理缺口。
- 研究文档指出损坏 ZIP 会破坏旧安装且无撤销保证,回滚能力有限。
- 依赖 Mise/Docker/Temporal/Postgres/Stripe 完整栈,无锁文件或漏洞扫描证据,CLI 密钥约 90 天过期。
- OpenClaw 在 claude-cli 模式下覆盖不完整且缺失 allowConversationAccess 时静默不触发,版本仅 2026.6.34 已资格验证。
- AGPL-3.0 对商业分发与网络服务有源码开放义务,需评估合规影响。