关于 buddie
buddie 会将 AI Agent 报告中的可验证说法与来源页面、代码仓库、GitHub 和命令记录核对,并提供按授权范围收集的设备诊断。适合需要证据核验的 Agent 用户;无法核验的说法会标记为未核验。
主要功能
- 01核对引用与原文
- 02检查仓库和 GitHub 说法
- 03对照命令记录验证测试结果
- 04按授权范围收集设备诊断
- 05生成核验回执
适用场景
- 01核对报告引文与引用页面
- 02验证 PR 或 CI 状态
- 03将测试结果与会话记录对照
- 04向 Agent 提供实测系统与运行时信息
MCP 相关
通过 stdio MCP 服务向客户端提供核验和环境诊断工具。其他集成也可通过 MCP 调用这些检查。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 1 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| path | string | 否 | 要检查的 Markdown 文件,而非文本 |
| text | string | 否 | 报告内容(Markdown);或提供路径 |
| fetch | boolean | 否 | 获取尚未存储的引用 URL 快照 |
| repos | array | 否 | 用于检查锚点的仓库检出目录(默认:服务器 cwd 所在目录或其下的 git 仓库;在 Codex 中没有默认值,因此请传入工作区路径) |
| store | string | 否 | 快照存储区(默认:$VERBATIM_STORE 或 ./.verbatim) |
| access | string | 否 | 无法读取页面时使用的 verbatim --access,例如 'default' |
| github | boolean | 否 | 向 GitHub 查询 pr:/ci: 锚点 |
| numbers | enum | 否 | 引文中在其来源里不存在的句子编号:gap、fail 或 offgap | fail | off |
| transcript | string | 否 | 用于 run: 锚点的 Claude Code 会话 jsonl |
详细介绍
为什么选择 Buddie?
Agent 完成任务后,会告诉你 CI 已通过、某个来源支持它的摘要,或者你的笔记本电脑配备了 CUDA 和 Python 3.12。它说得信心十足,而且往往确实正确。但当它出错时,错误就藏在一句笃定的话里。
Buddie 将可核查的内容与单纯的声明区分开来。它会依据证据本身核查有证据支持的声明,为 Agent 提供对你机器的真实观察结果,而不是猜测;对于无法核查的内容,则标记为未经核查。在已发表的深度研究报告中,929 条可核查引文有 212 条被篡改,或并未出现在其引用的页面上;Buddie 标记出了其中 207 条(研究)。
Buddie 的功能
验证。 Buddie 会依据证据核查有证据支持的声明:将引文与其链接页面进行比对,将文件或提交与代码库进行比对,将已合并的 PR 或绿色 CI 运行与 GitHub 进行比对,将测试结果与会话中记录的命令进行比对。核查过程不涉及任何语言模型,因此 Agent 无法通过争辩改变核查结论。
发现不匹配。 在 Claude Code 和 Codex 中,Buddie 的钩子会在 Agent 的回答送达你之前进行核查。当某项声明不成立时,回答会连同原因一起发回 Agent,让它修正声明,或明确说明哪些内容尚未验证。其他客户端则通过 MCP 或命令行调用相同的核查,并自行决定如何处理结果。
观察。 在建议命令之前,Agent 可以向 Buddie 查询任务所需的机器信息:操作系统、CPU、内存、GPU、Python、运行时和工具。Buddie 只读取你已授权的类别,不会修改任何内容,并会记录每个值的观察方式。
实际演示
验证 Agent 的说法
Agent 报告称它修复了一个日期解析器,并且测试套件全部通过。它用一个小锚点标记这项说法,⚓ run:pytest -q => 41 passed,Buddie 可以对此进行检查。会话记录记录了测试命令实际输出的内容:
从克隆的仓库中亲自运行;报告和会话记录位于 examples/work:
cd buddie/examples/work
buddie verify report.md --transcript session.jsonl --no-github
BLOCK anchor line 3 ⚓ run:pytest -q => 41 passed: output has no '41 passed'; it ends: ….......................................... 1 failed, 40 passed in 3.1s
note pr:/ci:/run: anchors show what happened (PR state, checks on a commit, a command and its output), not that the code is correct
buddie FAIL: effects 0/1 hold, 1 broken
这些文件是教学用 fixture:Buddie 会读取记录的输出,而不是重新运行 pytest。--json receipt.json
还会生成一份回执,注明判定所依据的证据。引述、PR 和 CI 示例,以及各集成会检查什么:验证指南。
了解环境
有人要求 Agent 设置本地开发环境。它没有猜测操作系统、GPU 或 Python 版本,而是向 Buddie 查询三个类别,这些类别已获用户授权:
buddie snapshot --category system.os --category hardware.gpu --category software.python \
--task "configure local development environment" --json diagnostics.json
buddie snapshot: diagnostics of 3 categories (grants active, policy absent; these govern the categories only)
system.os: collected
name: Windows 11 [os_interface]
hardware.gpu: collected
adapters: [model NVIDIA GeForce GTX 1650, source nvidia_smi_gpus, vendor NVIDIA, vram_bytes 4294967296] [fixed_program]
software.python: collected
buddie_runtime: implementation cpython, pip True, venv True, version 3.14.6 [buddie]
摘自 buddie 2.0.0 的一次运行:所示行未经编辑,机器上观察到的其他值则未列出。diagnostics.json 保存完整文档,包含每个值的获取方法和时间。
尚未授权的类别会被报告为拒绝访问,且不会运行相应的收集器。Buddie 无法读取的值会标记为不可用,并说明原因。诊断功能只读,不会安装任何内容;它能为 Agent 提供更准确的信息,但不能保证 Agent 下一条命令就是正确的。类别、授权和文档。
开始使用
Buddie 需要 Python 3.11 或更高版本,且没有依赖项。
Claude Code
推荐的入门方式。该插件提供答案检查、MCP 工具(包括环境诊断),以及针对会话记录的 run: 检查:
/plugin marketplace add tsyyan/buddie
/plugin install buddie@buddie
它会安装此仓库的默认分支。要允许诊断,请将选定的类别保存为 environment.toml,并放在 ~/.config/buddie/(Windows 上为 %APPDATA%\buddie\)中。以上述示例为例:
version = 1
allow = ["system.os", "hardware.gpu", "software.python"]
roots = []
等级、入门模式以及钩子会读取的内容:Claude Code 指南。
其他集成
- Codex: 运行
codex plugin marketplace add tsyyan/buddie,然后运行codex plugin add buddie@buddie,并在/hooks中启用其钩子。 检查会在Stop时运行;run:声明仍未勾选。Codex 指南 - 任意 MCP 客户端:
uvx buddie serve会启动 stdio 服务。没有门控机制:由 Agent 调用这些工具。 集成 - 命令行和 CI: 运行
pip install buddie,然后运行buddie verify REPORT.md --json receipt.json。遇到FAIL时会以 1 退出;遇到GAPS和EMPTY时以 0 退出,因此要求结果为PASS的 CI 步骤应读取回执中的 outcome。 - Claude Desktop: 使用 Releases 中的
.mcpb捆绑包,无需门控机制。 桌面指南
所有界面的详细说明:开始使用。
发布状态
| 版本 | |
|---|---|
| 此处介绍的发布版本:PyPI、GitHub Releases、桌面捆绑包、MCP Registry | 2.0.2 |
从 2.0.1 升级无需进行任何操作:2.0.2 新增了本地反馈工具(feedback_start、
feedback_resolve、feedback_accept)、GitHub 引用检查和带版本号的公开发布说明。从
2.0.0 升级无需进行任何操作;2.0.1 修复了 MCP 服务在代码页不是
UTF-8 的 Windows 系统上读取输入的方式。从 1.1.1 升级时,1.x 配置无需进行任何改动。具体有哪些差异及其原因,请参阅
变更日志。
文档
| 主题 | 阅读 |
|---|---|
| 在所有界面上安装 | 开始使用 |
| 各项集成的功能 | 集成 |
| 检查、结果和回执 | 验证、回执 |
| 环境诊断 | 环境 |
| 安全与隐私 | 限制、安全、隐私 |
| 贡献 | CONTRIBUTING.md |
| 其他所有内容 | 文档索引 |
局限性
Buddie 不是事实检测器。它会根据自己能够读取的证据,检查其识别形式的声明,例如带链接的引述,以及关于文件、PR、CI 和命令的锚定声明。释义和未锚定的声明不会被检查。PASS 仅涵盖已检查的内容,GAPS 和 EMPTY 不代表通过。
答案检查仅适用于 Claude Code 和 Codex,它会返回答案,而不是锁定答案:Agent 会修正声明,或披露该声明尚未验证。以你的用户身份运行的 Agent 可以编辑本地证据、设置和诊断授权文件;只有管理员的受保护策略能够设定它无法提高的限制。
Buddie 在本地运行,不会调用模型,也不会收集遥测数据。它会获取报告引用的页面,并调用 GitHub 来核查 PR 和 CI 声明。所有局限性 · 安全边界 · 隐私
Apache-2.0 · 更新日志 · 引用 · 问题
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。