← 返回目录
W

witness

社区
本地记忆与自我进化引擎,见证你作为开发者的成长轨迹。
分类
开发工具 第 95 / 438
Stars
★ 10 热门
传输方式
stdio(本地进程)
运行环境
Node.js · 预编译二进制
凭据
无需凭据
许可证
MIT
最近提交
工具数
5
62FMRS · C

witness 是一个本地优先的 MCP 服务器,作为 Claude Code 和 OpenCode 的成长记忆引擎。它捕获会话并提炼观察和方面,生成带来源追溯的个人资料。以其反思而非克隆的设计、多语言支持以及纯 Go 实现著称,适合希望以隐私方式追踪自己发展历程的开发者。

最强项 · 文档质量 16/20 最弱项 · 可靠性 10/20

可靠性
10/20
安全与权限
14/20
维护活跃度
10/20
文档质量
16/20
安装易用性
12/20
查看各项评分依据
可靠性 10/20
清单与README声称5个MCP工具和stdio传输,工具列表在manifest与README中一致,架构描述(L0-L4、单二进制、SQLite)自洽,且提供witness doctor健康检查、distill status等诊断入口。但这是静态审查:仓库未提供CI工作流或已提交测试的直接证据,无法验证初始化握手、错误路径和边界情况;模型下载(~448MB)失败、嵌入器异常等依赖风险仅有doctor缓解,故不给高于12。
安全与权限 14/20
本地优先声明明确:数据存于~/.local/share/witness(0700/0600),嵌入在纯Go本地运行,蒸馏复用本机Claude/OpenCode认证,无云端密钥;自定义镜像要求SHA256校验;删除操作仅限单条observation且不涉不可逆批量删除,无恶意行为或凭据外传迹象。扣分点:蒸馏通过claude -p复用用户认证调用LLM(会话内容实际上会发送给模型提供商,与'nothing leaves your machine'的表述存在张力);后台自动distill默认开启(auto_distill=true)会自动发起模型调用;lens机制允许加载任意目录的提示词作为系统提示,缺少对第三方lens内容的审查提示。
维护活跃度 10/20
MIT许可明确,版本0.8.0,npm发布流程(Trusted Publishing、幂等release workflow)和升级迁移说明(witness-distill残留清理)显示一定维护成熟度;但星标仅8、open issues 5,无实际发布节奏、提交频率或安全响应渠道的直接证据,属主动但治理证据不足。
文档质量 16/20
文档分层良好:架构说明、lens编写指南含完整示例、命令参考、配置项、平台支持矩阵、备份/恢复(WAL风险提示)、升级注意事项、成本提示(模型体积、蒸馏模型选择)均有覆盖,且诚实披露限制(npm不支持的平台、unwire不完全清理)。扣分:MCP工具参数(如record_observation的字段)未逐一说明,故障排查依赖doctor,缺少具体客户端配置示例。
安装易用性 12/20
npm路径配置简单(opencode.加plugin即可,自动注册MCP),源码路径有install.sh一键安装,平台兼容性明确列表。但Claude Code路径需要源码构建+448MB模型下载+wire hooks,npm不支持macOS Intel/Linux ARM/Windows,首次下载大且需保持运行;manifest声称npm包但主要编辑器集成仍偏源码路径,主流客户端即插即用度中等,故不给超过15。

静态评测 · 未实际运行收录于 2026-09-08

查看 FMRS 评分方法 →

选型与风险

能访问什么读取本地文件写入 / 删除本地文件连接数据库

适合谁

  • 希望在 AI 编码会话之间保留学习成果的开发者。
  • 想要建立第二大脑或 AI 记忆,能让代理查询思维模式的人。
  • 重视数据隐私,要求所有数据本地存储的用户。
  • 希望随时间追踪自己作为开发者成长轨迹的人。

不适合谁

  • 需要项目级记忆或代码库历史的人(它关注的是人,不是代码)。
  • 需要云同步或多用户协作功能的人(它是本地优先的)。
  • 不熟悉命令行或不想运行本地模型下载的用户。
  • 希望在会话中主动推送建议或辅导的主动教练(它只是工具)。

所需权限

  • 读取 Claude Code hooks 捕获的用户提示和助手消息。
  • 读取 OpenCode 本地 SQLite 会话数据库。
  • 访问本地文件系统以存储数据(默认 `~/.local/share/witness/`)。
  • 调用 `claude -p` 或私有 `opencode serve` 运行器进行蒸馏。

风险与副作用

  • 数据全部本地存储,但需要定期备份;不要直接同步实时数据目录。
  • 可能需要显著的磁盘空间,因为模型约 470MB,且原始记录会累积。
  • 使用 LLM 蒸馏,可能消耗计算资源和费用(取决于运行器配置)。
  • 确保使用 `witness export` 获取一致快照进行备份,避免损坏。

安装接入

准备工作

运行环境:Node.js · 预编译二进制

其他可选配置项(4 个)
WITNESS_HOME 可选 可选,覆盖 witness 数据目录(默认 ~/.local/share/witness/)。
WITNESS_MODEL_BASE_URL 可选 可选,自定义嵌入模型镜像地址;仅使用自定义镜像时需要。
WITNESS_MODEL_SHA256 可选 可选,配合 WITNESS_MODEL_BASE_URL 校验模型文件哈希。
WITNESS_TOKENIZER_SHA256 可选 可选,配合 WITNESS_MODEL_BASE_URL 校验 tokenizer 文件哈希。

对于 Claude Code,运行 ./install.sh claude,它会构建二进制文件、下载约 448MB 的模型并配置 hooks 和 MCP。对于 OpenCode,运行 ./install.sh opencode 以配置本地插件和 MCP,或使用 npm 包 @witness-ai/opencode 并将插件添加到 opencode.json。Windows 用户可从发布页面下载 zip 包,然后运行 witness.exe wire claude。

验证是否装好

在客户端的工具列表中应出现 search_observations、get_facets、get_profile、record_observation、delete_observation 五个工具;随后让客户端调用 get_profile,若能返回叙事画像即说明连接正常。

常见排障

  1. 运行 `witness doctor` 检查嵌入器、模型和归档状态。
  2. 检查 `witness distill status` 确保后台蒸馏工作器正常运行。
  3. 如果 OpenCode 集成出现问题,确认插件已正确注册。
  4. 验证 `config.toml` 中的模型名称是否有效。

试试这样问

连接成功后,可以直接对 AI 助手这样说:

  • 用 search_observations 搜一下我在哪些会话里提到过迁移失败的问题
  • 通过 get_profile 给我看看 unified 视角下我的成长画像
  • 用 get_facets 列出 default lens 当前的所有 facet 及其变化历史
  • 帮我把刚才这个决定用 record_observation 记录成一条观察

工具能力 5

search_observations 只读
对观察进行本地向量语义搜索。
get_facets 只读
获取当前的结构化方面数据。
get_profile 只读
获取叙述性个人资料(散文),可指定镜头。
record_observation 写入
由代理直接记录一条基于决策的观察。
delete_observation 破坏性
删除一条错误的观察记录。

使用场景

跨会话保留 AI 编程中习得的经验。
跟踪你在编码时的思维模式、工作习惯和认知陷阱。
回顾你自己的笔记、文章或文本流,观察知识如何演变。
生成可重读的成长叙述,供个人回顾。

支持客户端

Claude Desktop
OpenCode

依据项目文档列出,未经本站实测。

详细介绍

witness 是一个本地优先的记忆与自我改进引擎,专为 Claude Code 和 OpenCode 设计。它会捕获你的编码会话,并提炼出你的模式、习惯和知识如何随时间演变——一个以人为本、带有来源追溯的成长档案。它通过 MCP 服务器和普通文件提供访问,以单一 Go 二进制文件发布。数据全部保存在本地,支持英文和中文的多语言嵌入,默认使用现有的 Claude Code 或 OpenCode 认证进行蒸馏,无需外部服务。

同类可选方案

Context7 80 · B

Upstash 官方维护,为 AI 编码助手提供实时更新的第三方库文档

★ 63.3k · 工具数 2 与当前对比 →

源版本 6fe528d62e2b 数据同步于 2026-10-19 查看 FMRS 评分方法