Vouch
为 LLM Agent 打造的 git 原生、需人工审核的知识库:Agent 只能提议写入,由你审批落库。
- Star 数
- ★ 66
- 最近更新
- 3 个月前
- License
- MIT
- 主语言
- Python
- FA 评分
- 71/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Claude Code
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 同时使用多个 Claude Code 会话或多个 Agent 处理同一仓库,需要共享且可审计的项目记忆
- 不适合
- 只需要给单个 AI 会话做简单记忆的个人开发者
- 不愿配置任何 LLM 命令或 API 密钥的团队
- 希望知识写入完全自动、无需人工审批的场景
- 源码审查
- 71/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
Vouch 是一个以 Git 仓库为载体的知识库,专门解决多个 AI Agent 或团队成员同时写入同一份知识时的信任问题。它通过 MCP 工具(kb.*)、JSONL 工具服务和 vouch CLI 暴露接口:Agent 只能提交“提案”,通过 vouch review 人工审批后才会变成 .vouch/ 目录下的 YAML claim 与 Markdown 页面。每条 claim 必须引用经过内容哈希的源材料,未引用即校验失败;所有变更写入只追加的审计日志,记录谁提议、谁批准、引用何处、何时发生。vouch compile 可调用你配置的 LLM 命令(如 claude -p --model sonnet)把已批准的 claim 编译成交叉引用的主题页面,草稿中的 [claim: …] 与 [[wikilink]] 会机械校验后才进入审核队列。它提供 Docker 镜像、pipx 安装的 vouch-kb 包、浏览器控制台以及 Claude Code 的 hooks 集成。
Vouch 从你项目中的 .vouch/ 目录读取已批准的 claim、页面与源材料。它通过 MCP 工具 kb.search、kb.read_page、kb.context、kb.propose_* 以及 vouch serve --transport jsonl 接收 Agent 写入提案,提案暂存于 proposed/ 且被 gitignore。Agent 会话期间,PostToolUse/SessionEnd 等 hook 会把工具调用收集到临时缓冲区,并在会话结束时机械汇总成一个待审的 session-summary 页面。vouch review 逐条展示待审提案,vouch approve / reject 完成审批;审批者默认必须与提议者不同。已批准的 claim 必须引用经过内容哈希的源材料,否则视为校验错误。vouch compile 调用配置的 llm_cmd 生成带 [claim: …] 引用的主题页面,引用校验失败的草稿会被丢弃,通过的草稿同样进入审核队列。vouch recall 在 SessionStart 时输出已批准知识与页面标题的摘要,受 recall.max_chars 限制并在截断时给出提示。所有变更记入只追加的审计日志,最终以普通文件形式随 git clone 传播。
- 同时使用多个 Claude Code 会话或多个 Agent 处理同一仓库,需要共享且可审计的项目记忆
- 团队成员希望在代码评审之外,也评审 Agent 写入的项目知识
- 把长期项目上下文沉淀成可交叉引用、带出处的 wiki 页面,而不是散落的笔记
- 需要回答“这条结论是谁在什么证据下确认的”时,查阅审计日志
- 在 Docker demo 或 vouch console 中先在浏览器里体验提案—审核—统计流程
如何安装或部署这个 Agent?
推荐先用 Docker 体验完整界面:
docker run --rm -p 127.0.0.1:5173:5173 -v vouch-demo-data:/data ghcr.io/plind-junior/vouch-demo
# 打开 http://localhost:5173无需 Docker、只用 Python 的完整界面:
pipx install 'vouch-kb[web]'
vouch serve --transport http --port 8731 &
vouch consoleCLI 与 Claude Code 集成的常用安装方式(POSIX sh,无需 sudo):
curl -fsSL https://raw.githubusercontent.com/vouchdev/vouch/main/install.sh | sh或直接通过 pipx:
pipx install vouch-kb仅使用 MCP 服务或 CLI 时可使用镜像:
docker run -i --rm -v "$PWD:/data" ghcr.io/vouchdev/vouch:latest
docker run --rm -v "$PWD:/data" ghcr.io/vouchdev/vouch:latest status本地开发:
git clone https://github.com/vouchdev/vouch
cd vouch
python3 -m venv .venv && source .venv/bin/activate
pip install -e '.[dev,web]'
vouch --version
make check如何使用这个 Agent?
在你的项目中初始化知识库并接入 Claude Code:
cd /path/to/your/project
vouch install-mcp claude-code需要为所有项目统一安装时:
vouch install-mcp claude-code --global配置 compile 所需的 LLM 命令,写入 .vouch/config.yaml:
compile:
llm_cmd: "claude -p --model sonnet"正常使用 Claude Code 工作,会话会自动捕获;下次会话会提示有待审内容:
🔔 1 auto-captured session summary(ies) awaiting review — run `vouch review`.审批并编译 wiki:
vouch review
vouch compile
vouch review也可以只用 CLI 操作:
vouch pending
vouch show <id>
vouch approve <id>
vouch reject <id> --reason "..."把知识随代码提交:
git add .vouch/ && git commit -m "kb: approve session summary"这个 Agent 有哪些优点和局限?
- 严格的审核门:Agent 只能提案,审批者默认必须与提议者不同,未审批内容连检索也查不到
- claim 必须引用经过内容哈希的源材料,未引用是校验错误而非警告,证据可追溯到具体字节偏移
- 只追加的审计日志记录提议者、审批者、引用与时间,配合 Git 历史实现完整可审计性
- 已批准的知识是 .vouch/ 下的普通 YAML 与 Markdown 文件,随 git clone 传播并像代码一样评审 diff
- compile 生成的草稿在进入审核前会机械校验 [claim: …] 与 [[wikilink]],引用不成立的草稿直接丢弃
- 完整使用需要一个可用的 LLM 命令(如 claude -p),这属于额外的模型调用成本
- 安装路径较多(Docker、pipx、源码、全局/项目级 install-mcp),首次配置需要在多个选项中取舍
- 项目级 .mcp.json 在 VS Code 扩展中不会弹出审批提示,需要 install-mcp 写入本地作用域注册,容易误判为“已连接”
- recall 注入受 recall.max_chars 限制,知识库较大时只能看到被截断的摘要
- 尚未批准的知识对检索不可见,新知识库要经过若干会话与审批后才真正有用
这个 Agent 与同类方案有什么区别?
README 明确将自身与单条提示词、CLAUDE.md 段落、记忆文件或宿主内置自动记忆做对比:后者在单写入者场景足够且零成本,但当写入者多于一个时无法回答“谁基于什么证据决定这是真的”。Vouch 并不替代这些自动记忆,而是并行运行并在其前面加一道审核门。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Vouch 当前 | 71 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 66 | 3 个月前 | Python | Claude Code |
| MisakaNet 失败经验库 | 74 · 存在缺口 | MCP 服务器免费 | ★ 556 | 今天 | Python | ChatGPT · Codex · Claude Code |
| Claudexor | 76 · 表现良好 | 命令行工具免费 + 模型费 | ★ 523 | 今天 | TypeScript | Codex · Claude Code |
| ZCF - 零配置代码流程 | 71 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 6.1k | 10 天前 | TypeScript | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
信任面整体设计清晰:写入走 proposed/ 提案、approve 需 approved_by != proposed_by、审计日志 append-only、来源内容哈希、SECURITY.md 明确列出不防御的边界(approver 被社工、恶意 YAML、供应链输入)。但存在扣分点:默认配置 review.auto_approve_on_receipt: true 会让带字节偏移回执的 claim 自动通过,削弱了人工确认;approver_role: trusted-agent 可让 agent 自审;webapp 与 MCP 服务器可持有 bearer token 并访问网络 LLM 端点,敏感数据(KB 内容)会流向外部 LLM,文档未给出脱敏或数据流说明;依赖仅给出下限/上限范围,未见锁文件或漏洞扫描证据。因此 least_privilege=2、user_confirmation=3(默认门禁强,但自动回执例外)、data_flow_transparency=2、sensitive_data_handling=1、dependency_security=1、external_effects=2、rollback=2(supersede/archive/审计历史可回退,但无显式撤销命令)、source_attribution=3(内容哈希+审计事件+token 主体归因)。
自洽性较好:CLAUDE.md 明确三面(MCP/JSONL/CLI)共用 proposals/lifecycle,test_capabilities 强制方法表一致,版本号四处同步有测试约束。但文档存在版本漂移:docs/getting-started.md 与 docs/faq.md 仍称“未发布到 PyPI、0.1 才上”,而 README/pyproject 已是 1.5.0 且已上 PyPI,属自相矛盾。依赖可用性方面 pyproject 给出合理范围与 extras,但无锁文件、无 SBOM/审计证据。失败信息在 cli.py 有 _cli_errors 统一转 ClickException,server 有 RuntimeError 包装,属中等。故 self_consistency=2、dependency_availability=2、failure_messages=2。
受众与场景覆盖广:README 区分单写者/多写者、CLI/MCP/JSONL/Web/OpenClaw 多宿主,AGENTS.md 与 CLAUDE.md 分别面向不同 agent,docs/INSTALL_FOR_AGENTS.md 提供机器可读安装清单。能力边界有说明(不防御项、不支持网络服务、格式固定 YAML/MD)。触发精度方面 skills 的 description 写得具体(/auto-pr、/pr-precheck 触发条件明确),但 auto-pr 会驱动 claude/codex 对不受信第三方仓库自动开 PR,属高影响动作,边界虽声明 --autonomy edit 默认受限,仍偏激进。环境适配支持 3.11–3.13、Docker、pipx、源码,但 webapp 需 node 或预构建 wheel。故 audience_and_scenarios=3、capability_boundaries=2、trigger_precision=2、environment_fit=2。
信息架构优秀:README→AGENTS.md→CLAUDE.md→SPEC.md→ROADMAP.md 阅读顺序明确,llms.txt 索引,docs/ 分主题。安装说明详尽(Docker/pipx/源码/一键脚本)。示例与 FAQ 丰富(example-session、faq.md、getting-started)。已知限制诚实(不防御项、规模上限 ~10k claims、无托管、无跨 KB 同步)。LICENSE 为 MIT 且 pyproject 一致。扣分:CHANGELOG 未在包内出现,仅 AGENTS.md 提及需更新;版本号在文档间漂移(faq 说未上 PyPI);维护责任方面 SECURITY.md 联系邮箱为占位符 [email protected],且仓库 URL 混用 plind-junior/vouch 与 vouchdev/vouch,发布者身份未验证。故 naming_stability=2、versioning_changelog=1、maintenance_responsibility=1。
输出可用性中等:CLI 输出结构化、支持 --json、recall 有截断提示、review 队列清晰;但 webapp 默认 LLM_MODEL 为 gpt-5.4 这类未证实模型名,且 chat 依赖外部 LLM 端点。边际价值:README 诚实承认单写者场景一个 prompt 即可,vouch 的价值在多写者/审计,属真实但窄的增益。成本收益:需人工审批、需配置 LLM、需 git 提交,对单人项目成本偏高,对团队/多 agent 合理。故 output_usability=2、marginal_value=2、cost_benefit=2。
claim_traceability 强:每个 claim 必须引用内容哈希 source,compile 的 [claim: …] 引用机器校验,审计日志记录谁提议谁批准引用什么。cross_source_corroboration 中等:有 vouch doctor/lint 重哈希与悬空引用检查,但未见独立第三方复现或外部基准证据。fact_inference_separation 中等:vouch-ask skill 明确要求区分已审与 UNREVIEWED,webapp system prompt 要求不得用通用知识填补;但 auto_approve_on_receipt 让部分 claim 未经人工即成为“事实”,削弱了事实/推断分离。故 claim_traceability=3、cross_source_corroboration=2、fact_inference_separation=2。
- 默认 review.auto_approve_on_receipt: true 会让带回执的 claim 绕过人工审批,若你要求全部人工把关,请显式设为 false。
- approver_role: trusted-agent 允许 agent 自审,仅应在完全自主且接受审计日志为唯一保障时启用。
- webapp 与 MCP 服务器可持有 bearer token 并调用外部 LLM 端点,KB 内容会离开本机;请评估数据敏感度并自行加脱敏/网络边界。
- SECURITY.md 联系邮箱为占位符 [email protected],仓库 URL 混用 plind-junior/vouch 与 vouchdev/vouch,发布者身份未验证,安全报告渠道可能不可用。
- 文档版本漂移:faq/getting-started 仍称未上 PyPI、0.1 才发布,与 1.5.0 现状矛盾,安装指引可能误导。
- auto-pr skill 会驱动 claude/codex 对不受信第三方仓库自动开 PR,属高影响外部动作,建议先用 --dry-run 并审查 --autonomy 设置。
- 依赖仅范围锁定、无锁文件或漏洞扫描证据,生产使用前应自行审计依赖。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
Added - vouch install-mcp claude-code --global — install once for the whole machine. writes user-level hooks, /vouch-* commands, and a fenced CLAUDE.md snippet under ~/.claude/, and registers vouch as a *user-scope* MCP server (top-level mcpServers in ~/.claude.json), so every claude session in every folder gets capture + per-prompt recall into that folder's own project .vouch/ — the data stays per project; run vouch init once per project. a folder without a KB never captures anywhere: its session opens with a one-line "run …在 GitHub 查看 ↗ -
发布说明摘录
Added - vouch install-mcp <host> now bootstraps the KB when no .vouch/ is discoverable at or above the target, making install a one-command setup. previously it exited 0 with "0 failed" in a fresh project while every installed hook silently no-oped forever (|| true) and the mcp server exited 2 — with nothing ever telling the user to run vouch init. opt out with --no-init (a loud stderr warning then names the remedy); an ancestor KB is reported ("Using existing KB at …"), never shadowed by a second one; unknown hosts still fail …在 GitHub 查看 ↗ -
发布说明摘录
Added - vouch console: serve the vendored React web console straight from the installed package — a same-origin /proxy bridge (loopback-guarded) to vouch serve --transport http backends, reimplementing the vite dev-proxy in python. the built SPA is bundled into the wheel as vouch/web/console (conditionally, via a hatch build hook), so pip install 'vouch-kb[web]' then vouch console needs no node and no repo clone. - kb.activity read method (+ vouch activity CLI mirror): audit-log activity buckets for dashboards — per-day counts with proposal/decision …在 GitHub 查看 ↗
常见问题
它和直接写 CLAUDE.md 或使用宿主自动记忆有什么区别?
必须用 Claude 吗?换别的模型可以吗?
每次写入都要人工审批,会不会很麻烦?
知识存在哪里,是否会上传到第三方?
如果 Agent 提交了错误知识怎么办?
谢谢反馈,我们会据此改进页面。