最近技术圈有一个“OpenWiki”爆火!越来越多的人开始用它!
有人不禁好奇:“Wiki 我知道,Confluence、语雀不都是 Wiki 吗?有什么新鲜的?”
这个“OpenWiki”还真不一样,跟传统 Wiki 的区别在于:
传统 Wiki 是写给人看的。OpenWiki 的读者不是人,是 AI Agent。
它解决的最核心的一个问题是:
很多团队在用上 AI 编程工具之后,都会遇到这个瓶颈:AI 的“短期记忆”够了,但“长期记忆”没有。
今天我们就带大家详细了解一下 OpenWiki,并探索它在测试领域对我们的应用启发!
阅读本文你将收获👇:
1、OpenWiki 是什么?
2、OpenWiki 的核心架构与理念
3、测试人如何上手:5 分钟跑通 OpenWiki
4、OpenWiki 测试领域探索
5、相比传统 RAG 的区别
一、OpenWiki 是什么?
OpenWiki 是 LangChain 出品的 Node.js CLI(MIT 开源,GitHub 1.58 万星),基于 LangChain 的 Deep Agents(多步骤 Agent 编排, https://github.com/langchain-ai/deepagentsjs)。
它是一个命令行工具,扫描你的代码库,然后用 LLM 生成一套 Markdown Wiki。
但它生成的 Wiki 不是给人读的“说明文档”,而是给 AI Agent 读的“上下文记忆”。
一句话说清:OpenWiki 是 AI 编程 Agent 的“长期记忆系统”——把代码库的结构、架构、依赖关系“编译”成一套 Agent 可以快速查阅的 Wiki,让 Agent 不用每次都从头翻代码。
LangChain 官方对 OpenWiki 的定位非常精准:“An agent reads your sources, synthesizes a linked Markdown wiki you own, and keeps it current on every change.”
二、OpenWiki 的核心架构与理念
一句话总结:三层结构 + 五步流程。
OpenWiki 的核心架构分为三层:
第一层:代码仓库层——只读不改,保留原始代码和 Git 历史。
第二层:Deep Agents 文档生成引擎——一个基于 LangChain Deep Agents 构建的 Agent,负责扫描代码、分析架构、生成 Wiki,并通过 Claims 机制保证每条事实都有据可查。
第三层:结构化知识层——生成在 openwiki/ 目录下的 Markdown Wiki,包含架构页、模块页、集成页等,每条事实都放在 openwiki/.claims/ 下进行溯源。
OpenWiki 建立在 LangChain 的 Deep Agents 之上,但它不是“把代码丢给 LLM 让它自由发挥”那么简单。它的工作流是 Agent 驱动 + 确定性工程的混合模式。
当你运行 openwiki --init 时,背后的流程是这样的:
第一步:代码扫描——扫描仓库结构,收集 Git 上下文(分支、提交历史、变更文件)。
第二步:架构分析——Deep Agents 会话读取代码库,识别模块划分、依赖关系、调用链路、集成点。
第三步:Wiki 生成——生成结构化的 Markdown 页面,包括架构概览、模块说明、集成指南等。
第四步:Claims 校验——每条事实性陈述关联一个 Claim,记录来源文件和行号,保证可溯源。
第五步:写入文件——Wiki 写入 openwiki/ 目录,同时在仓库根目录的 AGENTS.md 和 CLAUDE.md 中插入指针,让 AI 编程 Agent 知道“先读 Wiki 再干活”。
核心机制: openwiki --update 不是从头重新生成,而是增量更新。它会对比代码变更和 Wiki 中已有的 Claims,只更新过时的部分,重新校验受影响的页面。
这个机制的核心价值在于:Wiki 的维护成本随代码量线性增长,而不是指数增长。代码加了一个新模块,只需要更新相关的几页,不需要整个 Wiki 重写。
Claims 机制详解
Claims 是 OpenWiki 最值得测试人员关注的部分,因为它决定了 Wiki 里的内容“可不可信、能不能审、过期怎么办”。
Claim 可以理解为“一条可验证事实的最小单元”。它通常长这样:
它的工作方式可以拆成 5 点:
-
生成 :Agent 阅读源码后生成 Claim,每条事实必须绑定来源文件和行号,不能只写一句“系统依赖支付网关”却没有出处。 -
校验 : openwiki --update对比 Git 变更,找到受影响的 Claim,标记为stale,重新读取源文件验证。 -
更新 :如果源码仍然支持该事实,就更新 last_checked;如果不支持,就修改 statement,或者把 Claim 标记为revoked。 -
审核 :测试人员可以抽查 openwiki/.claims/,确认 Agent 有没有编造事实。CI 里也可以要求 Claims 变更必须走 Review。 -
过期处理 :文件删除、行号变动、依赖关系变化,都可能让 Claim 过期。Agent 遇到 stale或revoked的 Claim 时,应该提示“不确定,需要重新验证”,而不是继续当真。
对测试团队来说,Claims 的价值是: Wiki 不再只是“看起来对”,而是每条关键事实都能追到源码。 这为后续做回归影响分析、缺陷根因定位、测试资产审计提供了基础。
三、测试人如何上手:5 分钟跑通 OpenWiki
1、你需要知道的前置条件
OpenWiki 是一个 Node.js CLI 工具,需要 Node 22 以上。
2、国内可用路径
OpenWiki 默认用 OpenAI API,但支持 13 个模型提供商。国内开发者可以在 --init 时选择以下路径:
-
Ollama 本地模型:选 OpenAI Compatible,Base URL 指向本地 Ollama 端点 -
国内代理中转:Base URL 指向代理网关 -
AWS Bedrock:IAM 凭据 + DeepSeek 模型 -
Gemini Enterprise:Google ADC + Qwen 模型
选好提供商后配置一次,后续运行自动复用。
这里有一个实测经验值得参考:有开发者用蓝耘元生代平台跑 OpenWiki,先选的 DeepSeek-V3.2 能返回合法的工具调用,但先后撞上模型 ID 前导斜杠校验和实际推理通道 20K 输入上限。最终改用 deepseek-v4-flash 后, --init 、 --update 和 visualize 才完整闭环。
选型原则:模型详情页的理论上下文、聚合平台的元数据、某次请求实际命中的通道上限,是三件不同的事。不要只看模型榜单,要看实际通道限制和 Agent 约束。
3、初始化代码库 Wiki
在项目根目录运行:
首次运行会引导你选择推理提供商、输入 API Key、选择模型,然后自动扫描代码库并生成 Wiki。
生成后的目录结构:
每一页开头都带 YAML frontmatter,格式遵循 Google 的 Open Knowledge Format(OKF)v0.2:
INSTRUCTIONS.md 定义了 Wiki 的生成范围和质量标准,是你的“文档 brief”。写得不好会导致 Wiki 组织混乱。OpenWiki 读这个文件来决定 scope 和 priorities,但在正常的 --init 和 --update 中不会覆写它。
4、查看生成的 Wiki
这会启动一个本地服务(127.0.0.1,默认 4321 端口),浏览器打开交互式节点图 + Markdown 阅读器。节点是 Wiki 页面,边是页面间的链接,点击节点在右侧读对应内容。编辑 Wiki 文件后自动刷新。
你也可以导出静态站点:
产出 index.html + client.js + graph.json ,直接部署到 GitHub Pages 或任何静态托管。
5、在 Cursor / Claude Code 中运行
OpenWiki 支持在 Claude Code、Codex、OpenCode、Cursor 内部直接运行,不需要单独配 OpenWiki 的 API Key,编程 Agent 用自己已认证的模型 session。
安装后重启编程 Agent,在仓库里直接说:
或者更新已有 Wiki:
分工明确:编程 Agent 有完整的仓库访问权,负责研究源码、规划页面、逐页写作;OpenWiki 负责管理 Claims 的创建、更新、保留和撤销,以及页面持久化和验证。底层五步操作—— openwiki_begin 、 submit_plan 、 next_page 、 submit_page 、 openwiki_finish ——由 OpenWiki 暴露给编程 Agent,两端的职责完全分开。
6、安全、成本与限制
测试团队落地前,必须先确认这三件事。
安全:代码会不会上传?
-
用 OpenAI、Gemini 等云端模型,代码内容会发送到对应服务商。 -
用 Ollama 本地模型,代码不出本机,但生成质量和速度要实测。 -
用国内代理、Bedrock、Gemini Enterprise,要确认数据留存、日志、合规策略。 -
测试代码、配置文件中可能包含密钥、生产地址、用户数据。使用前确认 OpenWiki 是否遵循 .gitignore,或是否支持独立忽略规则;如果没有,建议在 CI 中排除敏感目录。 -
CI 中运行 openwiki --update时,API Key 要放 Secret,自动提交 Wiki 更新的 PR 要有人审核。
成本:初始化贵,增量更新便宜。
-
--init会扫描整个仓库,大仓库 Token 消耗高、耗时长。 -
--update只处理变更和受影响 Claims,成本低得多。 -
不建议每次 PR 都跑全量更新。可以设在主分支合并后、每日定时、发布前跑。 -
先拿一个中等规模仓库试点,记录初始化时间、Token 费用、更新延迟,再决定是否推广。
限制:不要只看模型榜单。
-
模型详情页的理论上下文、聚合平台元数据、实际请求命中的通道上限,是三件事。 -
Agent 工具调用可能失败,模型 ID 校验、输入上限、推理通道限制都会影响闭环。 -
Wiki 很大时,Agent 仍然需要索引和路由。OpenWiki 是结构化知识层,不是无限上下文。 -
建议先选一个模块,验证 Claims 准确率、更新延迟、Agent 回答准确率,再扩大范围。
四、OpenWiki 测试领域探索
OpenWiki 不直接替代 TestRail、Xray、Jira,但它可以作为“测试 Agent 的长期记忆层”。下面给 3 个具体场景和 1 个 Demo。
场景 1:测试资产 Wiki 化
测试资产不只在测试代码里,还包括接口定义、测试数据、环境配置、CI 流水线、Mock 服务、自动化脚本。
OpenWiki 扫描代码库后,可以生成:
-
模块页:这个模块负责什么,依赖谁,被谁依赖。 -
集成页:订单、支付、库存、风控之间怎么调用。 -
测试入口页:怎么跑单测、集成测试、E2E,需要哪些环境变量。 -
CI 页:流水线有哪些阶段,失败后看哪里。
测试 Agent 读这些 Wiki 后,回答“支付模块怎么测”“订单回归要起哪些服务”时,不再靠猜。
场景 2:精准回归影响分析
代码变更后,测试最关心: 哪些用例要回归?
流程可以设计成:
-
开发修改 modules/order/service.ts。 -
CI 运行 openwiki --update。 -
OpenWiki 对比 Git 变更,把相关 Claims 标记为 stale,重新校验。 -
测试 Agent 读取更新后的 Wiki、Claims、测试代码。 -
Agent 输出:受影响模块、依赖方、建议回归用例、相关自动化脚本、风险点。
这比“每次全量回归”更精准,也比“只靠人工经验判断”更可追溯。
场景 3:缺陷根因与新人 Onboarding
缺陷根因定位时,测试 Agent 可以读:
-
架构页:系统分层和调用链。 -
模块页:订单状态机、支付回调、库存扣减。 -
集成页:第三方网关、消息队列、定时任务。 -
Claims:每条关键事实的源码出处。
新人入职时,也可以直接问测试 Agent:
-
“订单创建失败,可能影响哪些模块?” -
“支付回调幂等有哪些测试点?” -
“库存并发扣减的自动化脚本在哪?” -
“这次 release 改了哪些模块,回归范围是什么?”
Demo:电商订单变更影响分析
假设仓库里有:
开发修改了 modules/order/service.ts 的创建订单逻辑。
运行:
OpenWiki 发现以下 Claims 受影响:
-
“订单创建后调用支付预授权” -
“订单创建依赖库存扣减” -
“订单状态从 CREATED 进入 PAYING”
这些 Claim 被标记为 stale ,重新读取源码后更新或撤销。
测试 Agent 读取 Wiki 和 Claims 后回答:
再配合 AGENTS.md 里的指针:
测试 Agent 就能把“代码变更”翻译成“测试影响范围”。
五、相比传统 RAG 的区别
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RAG 是“解释器模式”,每次执行都从头解析。OpenWiki 是“编译器模式”,编译一次、反复使用。
六、话题讨论
讨论 1:你觉得 OpenWiki 都可以应用在测试哪些方面?
讨论 2:OpenWiki 的思路可以说对我们是一个新的启发?你在使用大模型的过程中还遇到哪些不好的地方,觉得可以优化?
以上话题,任选其一,欢迎评论区留言。小编会在节后(2026 年 10 月12 日)下午,选取 1 位“关注+点赞+留言”的幸运用户,送出《Codex 快速入门 Harness 工程落地》1 本,快来评论区互动吧~


