AI 编码 Agent 离危险操作只差一步?Kastra 用三层治理策略让每个工具调用都在掌控之中
“我们的 Cursor Agent 差点在生产库上执行
DELETE FROM customers WHERE status='test'。”——这是 Kastra 在 HN 上收到的最真实也最让人后背发凉的反馈。当 AI 编码 Agent 的能力越来越强,一次错误的工具调用就可能酿成大祸。Kastra 是一个专为 Claude Code、Cursor、Codex 设计的执行治理(Execution Governance)系统,在 Agent 的工具调用被执行之前,按策略决定是 放行(Allow)、拦截(Block) 还是 等待人工审批(Hold)。
为什么 AI Agent 需要执行治理?
Claude Code、Cursor、Codex 这类 AI 编码 Agent 的核心能力就是调用工具——执行 Shell 命令、读写文件、访问数据库、调用 API。但它们没有内置的”此操作是否安全”判断能力。当你说”帮我清理测试数据”时,Agent 可能真的对生产数据库发起 DELETE 操作。
传统方案要么完全信任 Agent(风险极高),要么手动审批每一个操作(效率极低)。Kastra 的思路是:根据预设策略自动决策,简单规则自动执行,高风险操作走审批,可疑操作直接拦截。
Kastra 的核心架构
Kastra 不是单一的 CLI 工具,而是由三个组件组成的治理体系:
| 组件 | 用途 | 工作模式 |
|---|---|---|
| kastra-edge | 桌面守护进程(Tauri 客户端) | 本地运行,管理策略、处理审批、维护审计链 |
| kastrahook | Agent 策略钩子 | 在每个工具调用前拦截,实时评估策略 |
| kastra-mcp | 只读 MCP 服务器 | 通过 OAuth 2.1 + PKCE 连接 Kastra 后端,提供治理状态查询 |
安装后,三者在本地协作:Agent 触发工具调用 → kastrahook 拦截请求 → 对照本地策略决策 → 需审批时推送到 kastra-edge 桌面应用 → 你点一下 Approve 或 Block。
安装方式非常简单:
brew install kastra-labs/tap/kastra-edge kastra-edge login kastra-edge install-mcp kastra-edge install-codex
安装后重启 Claude Code 即可生效。
三种决策模式
Kastra 对每个工具调用做出三种决策之一:
- Allow(放行):低风险操作,自动通过,不打断工作流
- Block(拦截):高风险操作,直接拒绝,Agent 会收到明确的阻断原因
- Hold(等待审批):边界操作,推送到 kastra-edge 桌面应用,你在 Mac 上点 Approve 或 Block
示例策略:如果规则设置 tool=exec 且命令匹配 ^gog gmail send,则触发 Hold——Agent 不能私自发送邮件,必须等你确认。
Claude Code 中的实战体验
Kastra 为 Claude Code 提供了两种集成方式。
方式 1:MCP 只读治理(OAuth 连接)
通过 /plugin marketplace 安装后,Claude Code 获得以下 slash 命令:
| 命令 | 作用 |
|---|---|
/kastra:governance-status | 查看治理快照:决策量、拒绝率、延迟、活跃事件 |
/kastra:policy-check | 查看指定环境的活跃策略、触发的规则、最近变更 |
/kastra:decision-audit | 搜索决策历史,解释”为什么被拦截” |
/kastra:verify-audit | 验证防篡改审计链的完整性 |
方式 2:本地 Edge 强制拦截(运行钩子)
MCP 方式是只读的——Agent 可以查看治理状态但不会被强制阻断。如果要真正强制执行策略(拦截 + 审批),需要在同一台机器上运行 kastra-edge 桌面应用:
kastra-edge login # 授权设备 kastra-edge install-mcp # 接入 kastra-mcp
此后,kastrahook 会在每个工具调用前拦截,根据策略决策。如需审批,kastra-edge 桌面应用会弹出通知,你点一下即可决策。
防篡改审计链
Kastra 的一个关键设计是所有治理决策都记录在防篡改审计链中。每条决策记录包含决策时间、策略版本、决策依据和加密签名。Agent 即使能修改自己的执行日志,也无法篡改 Kastra 独立记录的审计链。你可以随时用 /kastra:verify-audit 命令验证审计链的完整性。
OpenClaw 用户的集成
如果你使用的是 OpenClaw(另一个 AI Agent 框架),Kastra 也提供了专门的插件:
openclaw plugins install npm:@kastra_labs/openclaw
然后在 ~/.openclaw/openclaw.json 中配置超时(审批等待需要合理的钩子预算):
{
"plugins": {
"entries": {
"kastra": {
"enabled": true,
"hooks": { "timeouts": { "before_tool_call": 600000 } }
}
}
}
}
配置参考中也包含几个关键选项:failMode(Kastra 不可达时默认open放行,可改为closed阻断所有工具)、holdMaxWaitMs(最长等待审批时间,上限 540 秒)、governMessages(是否评估出站消息回复,默认关闭)。
总结
AI 编码 Agent 正在从”辅助编码”走向”自主执行”,而这个过程中,执行治理不是可选项而是必选项。Kastra 的三层策略(Allow/Block/Hold)在安全性和效率之间找到了一个务实的平衡点——日常操作不中断,危险操作被阻断,边界操作有审批。加上防篡改审计链,即使出了问题也能快速定位原因。
对于团队来说,Kastra 的最佳实践是:先以 Shadow 模式运行观察(记录策略评估结果但不实际拦截),确认策略规则合理后再切换到 Enforcement 模式。安全需要从第一天就考虑,而不是等出了事故再补救。
相关链接