Vouch

为 LLM Agent 打造的 git 原生、需人工审核的知识库:Agent 只能提议写入,由你审批落库。

Star 数
★ 66
最近更新
3 个月前
License
MIT
主语言
Python

30 秒速览

运行形态
命令行工具MCP 服务器网页应用
可在哪里用
通用 · 跨平台Claude Code
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
PythonpipxDocker(可选)Node.js(仅 make console 需要)LLM 命令,例如 claude -p --model sonnetShell / 命令行网络访问本地文件系统MCP Server
典型场景
同时使用多个 Claude Code 会话或多个 Agent 处理同一仓库,需要共享且可审计的项目记忆
不适合
  • 只需要给单个 AI 会话做简单记忆的个人开发者
  • 不愿配置任何 LLM 命令或 API 密钥的团队
  • 希望知识写入完全自动、无需人工审批的场景

这个 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 传播。

  1. 同时使用多个 Claude Code 会话或多个 Agent 处理同一仓库,需要共享且可审计的项目记忆
  2. 团队成员希望在代码评审之外,也评审 Agent 写入的项目知识
  3. 把长期项目上下文沉淀成可交叉引用、带出处的 wiki 页面,而不是散落的笔记
  4. 需要回答“这条结论是谁在什么证据下确认的”时,查阅审计日志
  5. 在 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 console

CLI 与 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?

FollowAgents 源码审查 · FARS-2.1
存在缺口
71/ 100 五分制 3.6 / 5
信任安全 19/29
可靠稳定 9/14
适用触发 14/18
规范维护 14/18
有效结果 9/13
证据核验 6/8
查看各维度的扣分理由
信任安全19 / 29 · 3.3/5

信任面整体设计清晰:写入走 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 主体归因)。

可靠稳定9 / 14 · 3.2/5

自洽性较好: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。

适用触发14 / 18 · 3.9/5

受众与场景覆盖广: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。

规范维护14 / 18 · 3.9/5

信息架构优秀: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。

有效结果9 / 13 · 3.5/5

输出可用性中等: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。

证据核验6 / 8 · 3.8/5

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 设置。
  • 依赖仅范围锁定、无锁文件或漏洞扫描证据,生产使用前应自行审计依赖。
证据充分度:低 评估于 2026年11月7日 审查版本 0530942a91bc
查看完整评分方法 →
你是这个项目的维护者?把 FARS 徽章加到 README

徽章显示当前的评审分数和结论,点击回到本页。重新评审后约一小时内更新。

FARS

[![FARS 评测](https://followagents.com/badge/vouch.svg?lang=zh)](https://followagents.com/zh/agents/vouch)
<a href="https://followagents.com/zh/agents/vouch"><img src="https://followagents.com/badge/vouch.svg?lang=zh" alt="FARS 评测"></a>

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v1.5.0
    发布说明摘录
    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 查看 ↗
  2. v1.4.0
    发布说明摘录
    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 查看 ↗
  3. v1.3.0
    发布说明摘录
    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 或使用宿主自动记忆有什么区别?
单写入者场景下几乎没有区别,README 也建议先用那些方案。区别出现在第二个写入者:Vouch 要求每条 claim 引用内容哈希的源、所有写入经人工审批、变更进入只追加审计日志,因此可以事后审计。
必须用 Claude 吗?换别的模型可以吗?
compile 只要求 .vouch/config.yaml 中配置一个能输出内容的 llm_cmd(示例为 claude -p --model sonnet),属于命令级集成。MCP 工具与 CLI 本身不绑定具体模型供应商。
每次写入都要人工审批,会不会很麻烦?
默认配置中 review.auto_approve_on_receipt 为 true,带回执校验的 claim 可跳过队列;进入 vouch review 的主要是会话摘要页、实体、关系以及无法引用来源的 claim。将该标志设为 false 可让所有写入都过审。
知识存在哪里,是否会上传到第三方?
已批准的知识是仓库中 .vouch/ 下的 YAML 与 Markdown 文件,随 Git 一起提交;待审草稿与 state.db 被 gitignore。只有 compile 步骤会调用你配置的 LLM 命令。
如果 Agent 提交了错误知识怎么办?
先经过审核门可以拒绝;已落库的错误可以用 supersede / contradict / archive 处理,旧版本仍保留在历史与审计日志中。
这页内容对你有帮助吗?
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。