
Agent Runtime Guard
io.github.DSHCorrectoverv1.0.0更新于 Oct 5, 2026
Agent 运行时全栈拦截: allow/deny tool calls, Ed25519 receipts, blocks RCE, theft, SSRF, injection. stdio.
概览
一个本地运行时防护层,拦截 AI 智能体的工具调用、shell 命令与网络请求,在执行前阻断危险动作。
- 功能
- Agent Runtime Guard 作为 fail-closed 的拦截层,位于智能体与危险操作之间。verify_tool_call 工具执行多维运行时校验与语义攻击链分析,覆盖命令注入、路径穿越、SSRF(含云元数据地址)、凭证外泄、混淆提权、数值溢出以及工具结果中的提示注入。issue_evidence 为放行和拦截的每次裁决生成可链的 Ed25519 签名收据,verify_receipt 可离线校验收据,audit_mcp_config 审计 MCP 配置风险,verify_intent_binding 比对实际参数与声明意图是否一致。
- 适用场景
- 当智能体接入了 shell、网络或云凭证类工具,且你希望在执行点就挡住危险动作、而不是事后审计时,适合安装。可用于 Claude Code、Cursor、Cline、Windsurf 等 MCP 客户端,也可通过透明 stdio 代理包住其他 MCP 服务器。
- 运行要求
- 需要本地 Node.js 18 或更高版本,通过 npx agent-runtime-guard 运行或配置为 stdio MCP 服务器。默认无需 API key、账号或环境变量,首次运行自动生成签名密钥。可选环境变量 CCS_KEY_DIR、CCS_PRIVATE_KEY、CCS_PUBLIC_KEY 用于固定持久密钥。
安装
在 SourceWeft 中
- 打开 控制台中的 Agent Runtime Guard,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Agent Runtime Guard · Agent 运行时全栈拦截
[IETF Internet-Draft] [npm version]
给 AI Agent 配一个运行时保安:它删库、偷密钥、闯内网、被注入诱导——当场拦下。 它是一道运行时拦截层,不是事后审计工具:危险动作在执行点就被挡住;每张 Ed25519 签名收据,都是拦截/放行时当场附带的裁决凭证。
你给 Agent 接上 shell、网络、云凭证这些工具后,最大的风险是:它手一抖,一条命令删掉整台机器;或被诱导,把密钥和数据偷偷传走。 一个容易点过的"确认弹窗"挡不住。
agent-runtime-guard 在 Agent 与危险操作之间站一道确定性的拦截层——工具调用、shell 命令、网络请求、输出结果全栈覆盖,危险动作在真正执行前被 fail-closed 拦下,无需人工点击。
- ✅ 零运行时依赖,纯 Node.js 标准库(Node ≥ 18),无 install 脚本
- ✅ 全栈拦截:命令注入 / 路径穿越 / SSRF(含云元数据)/ 凭证外泄 / 提示注入 / 跨工具攻击链
- ✅ fail-closed:判危险、验证器出错或超时,都不转发、不执行
- ✅ Ed25519 证据收据:每次决策双哈希 + 可链,第三方可离线验证
- ✅ 随处可用:MCP server(Claude Code / Cursor / Cline / Windsurf)、透明 stdio 代理、DeepSeek Harness 插件
⚡ 30 秒跑起来
把它加进任意 MCP 客户端的 mcpServers 配置:
无需 API key、账号或环境变量——首次运行自动生成 Ed25519 签名密钥(想固定持久密钥再设 CCS_KEY_DIR 或 CCS_PRIVATE_KEY/CCS_PUBLIC_KEY)。
三种用法
它拦什么
- 命令注入:shell 元字符、
curl|sh、rm -rf、eval() - 路径穿越:
../、/etc/passwd、/proc/self/ - SSRF:
169.254.169.254云元数据、localhost、私网地址——跨任何工具 - 跨工具攻击链:读敏感文件 → 网络外传 =
exfil_chain - 凭证外泄:API key、secret、credential 出现在参数或输出
- 混淆提权:hex/base64 编码、提权信号
- 数值安全:整数溢出(>2^53-1)、NaN/Infinity
- 提示注入:工具结果里的"忽略以上指令"等诱导
Tools
证据链
每次决策产生双哈希(content_hash + evidence_hash)与链指针(parent_evidence_hash)。任何第三方都能独立验证证据未被篡改,无需信任运营方。收据为 Ed25519 签名、JSON 形态,可用内置 verify_receipt 或任意 Ed25519 库离线验证。
FAQ(给 AI Agent 配运行时保安,常见疑问)
黑名单为什么永远拦不全? 危险命令可以用同义词、编码、拼接绕过,且新型调用不断出现。agent-runtime-guard 用语义判定(这段代码的意图是不是危险执行)而不是匹配关键词,未知攻击靠意图异常也能识别。
Bash(prefix*) 放行规则够安全吗? 不够。git status* 这类前缀规则会被 git status; rm -rf /、&&、管道拼接绕过。判定应基于 shell 解析后的实际命令结构,而不是字符串前缀。
安全判定能依赖宿主模型/远程分类器吗? 不建议。远程服务一挂,要么全部拒绝(业务瘫痪)要么被建议绕过(裸奔)。本层策略在本地、默认 deny,裁决与模型可用性完全解耦。
子 agent 一开权限会被放大吗? 会,这是真实出现过的问题:子 agent 把权限状态整个换成 allow-all。运行时权限状态应不可被子任务覆盖,并在每次实际调用时强制校验。
凭证为什么会自动泄露给子命令? 子进程默认继承父进程全部环境变量,provider key、云凭证随之暴露给 /run、/test 等本不需要它们的命令。应按白名单最小化传递环境变量。
拦了还是放了,事后怎么说清是谁的责任? 每次裁决都出 Ed25519 签名收据(含内容哈希、时间、原因码、链指针),任何第三方可离线验证。这是把"AI 干的"变成可审计责任链的关键。
🇨🇳 免费验证之外 · 支付宝 SkillPay
运行时验证与证据签发免费使用。如需人工深度审计或正式合规凭证,可在支付宝 SkillPay 货架获取:https://skillpay.alipay.com/public/correctover
协议背景
- IETF:draft-correctover-ccs —— 个人 Internet-Draft,不是 RFC,也不代表 IETF 背书,Datatracker 页面为权威状态
- 互补:VAP(范围/预算/目的)、Microsoft ACS(策略决策)、AP2(人工授权)
- 不替代:认证、支付网络、策略引擎
Links
- npm: https://www.npmjs.com/package/agent-runtime-guard
- GitHub: https://github.com/DSHCorrectover/agent-runtime-guard
- 透明代理: https://github.com/DSHCorrectover/agent-runtime-proxy
- IETF Draft: https://datatracker.ietf.org/doc/draft-correctover-ccs/
- PyPI 完整验证器: https://pypi.org/project/ccs-verifier/
License
Elastic License 2.0 (ELv2). See LICENSE.
来源:README.md,提交 97304ea
工具
0版本历史
1- v1.0.0最新Oct 5, 2026


