AI Agent 总把流程走捷径?Stepgate 用可验证的步骤把执行关进护栏
AI Agent 最危险的时刻,往往不是回答错一个问题,而是它自称“完成”了一个不能省略步骤的流程:研究报告少查了一个来源,CVE 分析跳过了复核,或者 Jira 工单已经写入,却没人知道中间哪些工具调用真正发生过。把流程写进提示词,依然把决定权留给了模型。
Stepgate 提供了另一种思路:用一个 YAML stepfile 描述输入、允许访问的 API、按顺序执行的步骤和每一步的 gate,再通过 MCP 暴露给 Claude Code、Cursor 或其他 MCP 客户端。项目采用 Apache-2.0 许可证,使用 TypeScript 和 Node.js 构建;仓库 README 还明确要求 Node.js 22.18 或更高版本。
它解决的不是“模型不够聪明”
Stepgate 的核心边界很清楚:Agent 只能看到当前步骤,不能直接跳到后面的步骤;步骤只有在机械检查通过后才会继续。gate 可以使用 JSON Schema、JSONLogic 或 HTTP verifier 检查输出,也可以把 API 实际返回的数据拿来对照,降低模型凭空编造值的空间。
这让“流程”从一段建议变成了可执行的约束。机械步骤可以由服务器调用 API 并用模板生成结果,需要判断的部分仍交给模型;如果某一步失败,诊断信息会返回给模型,但重试依然受限,不会变成无限循环。
另一个值得注意的设计是凭据边界。stepfile 需要声明它允许访问的主机,服务器负责附加凭据并拒绝未声明的目标。Agent 不直接持有密钥,流程执行还会留下哈希链账本,记录步骤、工具调用、gate 判定和重试;修改记录后,可以用 stepgate --verify 检查链是否断裂。
接入 MCP 客户端
Stepgate 的 Quick Start 不要求在客户端安装额外插件。以 market-research 示例为例,MCP 配置可以这样写:
{
"mcpServers": {
"stepgate": {
"command": "npx",
"args": ["-y", "stepgate", "market-research"],
"env": {"TAVILY_API_KEY": "tvly-..."}
}
}
}
客户端连接后,Agent 会看到一个 market-research 工具。用户提供品牌和市场等输入,流程再按搜索、筛选、分析、报告的顺序推进。这里的重点不是示例本身,而是 stepfile 把“允许调用什么、必须产出什么、如何验收”集中到一个可迁移文件中。
如果要使用自己的流程,仓库文档建议把绝对路径指向 .stepfile.yaml 文件。这样可以先把团队已有的 SOP 改写成结构化步骤,再逐步补充校验规则,而不是一开始就重写整个 Agent。
本地运行、HTTP 服务与离线测试
Stepgate 默认可以通过 stdio 运行;需要以 HTTP 提供 MCP 服务时,README 给出了明确命令:
npx -y stepgate --http 3100 market-research npx -y stepgate --list npx -y stepgate --help
其中 --list 用来查看目录,--help 展示完整选项。开发 stepfile 时,--watch 可以在文件保存后重新加载;--test 用录制的案例离线检查 gate;--record-cases 则用于从真实运行中记录案例。这组命令把“流程修改”和“流程上线”分开,适合在 CI 中先验证,再接入生产 Agent。
什么时候值得使用
Stepgate 特别适合三类任务:一是研究、合规和安全分析,需要证明每个来源或检查步骤都执行过;二是会写入外部系统的自动化,例如 Jira、工单或审批流程;三是多工具链路较长、失败后需要知道从哪一步恢复的任务。
它并不能替代业务幂等设计,也不会自动判断所有结果是否正确。发送邮件、创建资源或执行支付等副作用操作,仍应配合幂等键、权限控制和人工审批。好的落地方式是先选一个边界清晰的流程,用 JSON Schema 或 HTTP verifier 固定可机械验证的部分,再把需要经验判断的部分留给模型。
AI Agent 的可靠性不只取决于模型回答得多像人。把步骤、权限、验收和审计移到运行时,才能让“完成”变成一个可检查的事实。Stepgate 的价值,正是用一个 MCP 服务器和一组可迁移的 stepfile,把这条边界具体化。