mcpField
E
evr

evr

本地服务
github.com/evidence-readiness开发工具011 周前更新

关于 evr

evr 是用于检查 Agent 执行轨迹证据完整性的规范、检查器和 MCP 服务,面向 Agent 仪表化工程师及审查者。它判断重建所需证据是否存在,不验证证据真实性,也不判定故障是否发生。

主要功能

  1. 01检查轨迹证据是否齐备
  2. 02覆盖四类故障重建需求
  3. 03报告缺失字段及跨度类型
  4. 04支持文件、目录和内联 JSON
  5. 05提供命令行与 CI 检查

适用场景

  1. 01检查轨迹能否支持事后事件重建
  2. 02在 CI 中核验轨迹仪表化
  3. 03为轨迹补充缺失证据字段

MCP 相关

MCP 服务通过 stdio 向 Agent 提供轨迹就绪度检查、单项要求查询和分类要求列表。内联 JSON 在内存中处理,服务不提交或传输轨迹。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"brienbounded-evr": {
"command": "uvx",
"args": [
"evidence-readiness"
]
}
}
}
启动命令uvx evidence-readiness

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypievidence-readiness0.1.2

工具

3

收录的工具列表 · 更新于 3 周前

参数类型必填说明
trace_pathstring否指向 trace .json 文件或 trace 目录的路径(不包括 *manifest.json)。
require_classarray否将这些类别的证据要求纳入退出代码(可选值:config_drift、session_isolation_failure、cascade_contamination、prompt_injection)。
trace_contentstring否以 JSON 字符串形式提供的 trace 文档,仅在内存中检查,绝不写入磁盘。

详细介绍

evidence-readiness

检查 Agent 执行跟踪记录是否包含事后因果重建所需的证据。

当 AI Agent 导致损失时——例如配置更改不当、跨会话数据泄露、污染后的输出在 Agent 之间传播,或提示词注入——最终总有人需要根据跟踪记录重建原因。通用 Agent 插桩生成的跟踪记录无法支持这种重建:因为相关证据从未被记录。本仓库包含 evidence-readiness 规范(SPEC.md)、一个据此评估跟踪记录的检查器,以及展示符合要求的插桩效果的参考样例。

本项目是什么——不是什么

  • 检查的是证据是否存在,而不是证据是否真实。 捏造但内部一致的跟踪记录也能通过检查。本工具不验证任何内容,绝不能将检查结果转述为“此 Agent 是安全的”。
  • 绝不判断是否发生了故障。 它回答的是“此跟踪记录是否包含重建 X 类故障所需的内容”,而不是“是否发生了 X 类故障”。本工具不包含任何检测或评分逻辑。
  • 本仓库不包含重建引擎。 本规范已公开,便于评估该方法;重建引擎可依据 SOURCE_AVAILABILITY.md 中的条款进行检查。
  • 涵盖四类故障:config_drift、session_isolation_failure、cascade_contamination、prompt_injection。第五类(tool_misuse)经过调查后,因明确说明的结构性原因而未纳入——这是有记录的否定结论,并非遗漏(SPEC.md §8)。
  • 本规范是 OTel GenAI 语义约定的一种配置文件:包含核心 OTel 及有文档记录的扩展(SPEC.md §2)。它不代表任何标准组织的认可。

适用对象

  • 为 Agent 添加插桩的工程师,希望事后能够重建事件——将跟踪记录与符合要求的样例对比,查看需要添加哪些内容。
  • 审核人员(保险机构、审计人员、交易对手方),用于评估 Agent 系统的遥测数据是否足以支持追溯性损失裁定。
  • 编码 Agent:参见 llms.txt、spec.json(机器可读的规范导出文件,由程序生成,绝不手动维护),以及 src/evidence_readiness/mcp_server.py 中的 MCP 服务(配置见下文)。

快速开始(60 秒)

# from a clone of this repository
pip install .
evr check path/to/trace.json        # or a directory of traces
evr check --json path/to/traces/    # machine-readable report
evr check --require-class prompt_injection path/to/trace.json

本软件包没有任何运行时依赖;在任何 Python ≥3.10 环境中运行 pip install . 即可完成全部设置。等效的 uvx 用法均已测试:从克隆的仓库运行 uvx --from . evr check ./traces,或从软件包索引运行 uvx --from evidence-readiness evr check ./traces。

两种用法都需要 --from,末尾的 evr 也不可省略。 直接运行 uvx evidence-readiness ... 会执行以发行版命名的控制台脚本;该脚本是 MCP 服务(见下文),而不是检查器——它会读取标准输入、忽略参数,并成功退出,但不会检查任何内容。

退出代码不代表任何重建类别:0 表示满足所有要求 · 1 表示有一项或多项要求部分满足 · 2 表示有一项或多项要求未满足 · 3 表示输入格式错误(SPEC.md §9 是权威依据)。通用要求(EVR-R1..R6)决定退出代码;各类故障的证据就绪情况会单独报告,而 --require-class 会将指定类别的就绪情况纳入退出代码。对于每项未满足的要求,输出都会指出具体缺失字段及其所属的跨度类型。

每次运行结束时都会重申本 README 开篇所说的内容:存在,而非真实——证据存在并不意味着证据真实,通过检查的跟踪记录也不代表 Agent 安全。

CI:检查每个 PR(GitHub Action)

规范只需阅读一次;在每个 PR 上运行的检查会改变检测行为。将以下内容添加到生成你的跟踪记录的仓库中的工作流(发布后,evidence-readiness 是此仓库的所有者;在此仓库内部,使用 uses: ./.github/actions/readiness-check):

steps:
  - uses: actions/checkout@v4
  - uses: evidence-readiness/spec/.github/actions/readiness-check@main
    with:
      trace-path: traces/

这就是全部设置——默认 GitHub 运行器的 python3 已足够,Action 会自行安装(零依赖的)检查器。当检查器的退出码超过 minimum-passing-exit-level(默认为 0;退出码语义与上面的快速入门相同)时,此步骤会失败。可选的 required-classes 会将指定类别的证据要求纳入退出码。输出包括:exit-code、exit-meaning、report-path(完整 JSON 报告)和 per-class-readiness。PR 注释会指出每项未完成要求具体缺少的字段和跨度类型。每条注释都只针对跟踪记录遥测数据,而非 Agent:有注释的 PR 表示证据不完整,并非检测到了故障;运行结果干净也不代表 Agent 安全。此仓库自身的 CI(.github/workflows/ci.yml)会使用 fixtures/ 对该 Action 进行自测,并断言每个类别预期的——刻意设置为非零的——退出码。

MCP 服务(Agent 接口)

src/evidence_readiness/mcp_server.py 通过模型上下文协议(stdio)向 Agent 暴露检查器和要求数据。包含三个工具:check_trace_readiness(文件、目录或内联 JSON——内联内容会在内存中处理,绝不会写入任何位置)、get_requirement 和 list_class_requirements。

安装此软件包会提供三个控制台脚本;在复制下面的内容之前,务必弄清楚它们各自的用途:

脚本运行内容
evr检查器 CLI——这是供人使用的脚本
evr-mcpMCP 服务,通过 stdio 运行
evidence-readinessMCP 服务,通过 stdio 运行——与 evr-mcp 指向相同目标;脚本名称与发行包名称相同,以便将 <package> 解析为同名脚本的逐次调用运行器能够找到它

因此,evidence-readiness 不是检查器。在 shell 中输入它,会启动一个等待从 stdin 接收 JSON-RPC 的服务,看起来像是卡住了。请使用 evr。

如果已安装软件包,evr-mcp 控制台脚本就是完整配置:

{
  "mcpServers": {
    "evidence-readiness": {
      "command": "evr-mcp"
    }
  }
}

如果是克隆仓库且未安装任何内容,则通过路径运行模块:

{
  "mcpServers": {
    "evidence-readiness": {
      "command": "python3",
      "args": [
        "/absolute/path/to/evidence-readiness/src/evidence_readiness/mcp_server.py"
      ]
    }
  }
}

无论哪种方式都不需要依赖;第二种方式无需安装。它是仅限本地运行的:不会进行网络调用,不会向外发送信息,也不会持久化任何内容。 它刻意不提供提交工具——此服务绝不会传输任何内容;是否在任何位置提交跟踪记录是由人决定的,需遵循 CONTRIBUTING.md 中的免责声明,并由人判断是否需要编辑,而 Agent 无法做出这种判断。每个工具描述都包含“存在不代表真实”的声明,因此就绪结果不能被合理地转述为“此 Agent 是安全的”。

状态

规范已进行版本管理(SPEC.md 记录当前版本和更正日志),检查器也已根据规范实现,参考测试样例(fixtures/)、机器可读的导出文件(spec.json)、Agent 接口(llms.txt、MCP 服务)和 CI 操作(.github/actions/readiness-check/)均已就位。方法论和局限性论文已完成初稿(PAPER.md);其首页横幅标明了哪些章节已经过对抗性审读,哪些尚未审读。长期适用的披露政策见 SOURCE_AVAILABILITY.md;报告和轨迹提交条款见 CONTRIBUTING.md,脱敏指南见 REDACTION.md,发布验证说明见 RELEASING.md。更正记录在 CHANGELOG.md 中。本规范用于描述现状:每项要求都有一条验证记录中的观测结果作为依据;该记录涵盖 240 次重建尝试,其中 222 次为合成案例——每项要求的依据均来自实际检验该要求的具体案例,并非在全部 240 次尝试中测得的属性(18 个真实 Who&When 案例仅用于验证弃答方向;凡提及数量之处均会说明这一划分——SPEC.md §1)。

归属

Brien Buckman

采用 Apache-2.0 许可(参见 LICENSE)。

本仓库的开发记录实质内容均已公开:影响已发布内容的更正记录在 CHANGELOG.md 中,而与方法相关的开发缺陷记录则总结在 PAPER.md §8.6 中。这些文件起草和修订期间的提交历史未予公开。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。