【免费下载链接】CodeWiki[ACL 2026] Open-source framework for holistic, structured repository-level documentation across multilingual codebases项目地址https://gitcode.com/gh_mirrors/co/CodeWiki点击查看免费下载CodeWiki 是一个用 AI 生成整个代码仓库级文档的开源框架ACL 2026。针对代码一改文档就得全量重跑的痛点它的 2.0 版本提供了--update增量更新机制只刷新受代码改动影响的文档页。官方在 svelte约 12.5 万行 JavaScript上实测一次提交后的增量更新仅花费 $0.34相比全量构建的 $21.48 省下约98%。 全量重跑为什么是 AI 代码文档最大的开销CodeWiki 生成文档的方式是解析仓库构建依赖图 → 递归切分成模块树 → 每个模块页都让 LLM Agent 独立读代码、写页面。仓库越大全量构建的页面越多Token 花费和时间就越夸张——svelte 一次全量构建要$21.48、2 小时 46 分钟。如果每次提交都全量重跑文档成本会随提交次数线性膨胀而实际上一次提交通常只改动几个函数或类绝大多数文档页其实不需要动。这正是 2.0 引入的组件级增量更新要解决的问题。 增量更新在省什么看懂全量构建留下的底稿CodeWiki 的完整流水线分三个阶段仓库分析与模块切分、递归文档生成、层级组装与汇总关键在于全量构建会在输出目录留下一套底稿--update正是靠这些文件做增量判断的文件作用module_tree.json模块层级树每个叶子模块记录了它包含的组件 IDtemp/dependency_graphs/*.json完整依赖图每个组件的源码、签名和依赖边增量比对的核心metadata.json构建信息包括上次生成时的 commit IDmodule.md/overview.md已生成的文档页面也就是说--update不需要重新理解整个仓库它只需要回答一个问题和上一版依赖图相比这次改动碰到了哪些组件完整原理可查阅官方指南 guides/incremental-updates.md。 --update 的六步增量流程只改该改的整个流程由 orchestrator.py 串起来核心逻辑在 codewiki/src/be/updater/ 目录图对图diff the graphs加载旧依赖图为当前代码重建新图按组件 ID 对齐。每个组件会被判定为未变、函数体变了、签名变了、新增、删除或重命名。只改了注释的文件不会产生任何变更组件后续流程完全无感。修复模块树重命名的组件 ID 被改写删除的组件退出原模块新增组件按规则归位同文件、同目录、图邻居占多数规则搞不定的交给一个小路由 Agent 决定必要时新建叶子模块某模块膨胀过大时其父模块会被重新聚类。为每个受影响的叶子模块生成一份变更报告包含它自己变更的组件、它依赖的上游接口变化、它的页面里提到的已变更内容以及进出该模块的组件见 change_report.py。判断增量是否值得改动太多就放弃增量直接全量构建并记录原因。每个活跃叶子模块派一个 Agent按依赖顺序执行Agent 读取变更报告和现有页面后三选一——原地打补丁、整页重写、或判定无需改动并写明理由。它可以顺带修正祖先页、依赖方页面中提到本模块的部分但无权写其他任何页面见 leaf_agent.py。收尾为新增的父模块补生成缺失页面扫描所有未触碰的页面清理失效的名称和死链接保存新图、新树和本次每个决策的记录。写作集之外的页面一个字节都不会被碰描述未变代码的正文也不会被无谓刷新。 增量不值得时怎么办自动回退全量在启动任何 Agent 之前会先检查两个比例超过阈值就回退到全量构建并把两个比例写进记录指标阈值对应参数活跃叶子模块 / 全部叶子模块0.5--tau-full新增 删除 重新聚类的模块/ 全部叶子模块0.3--tau-tree如果保存的旧图损坏无法加载同样会回退全量并标记为detector_failure。两个实用场景CI 或 squash merge 后旧 commit 找不到了用codewiki generate --compare-to commit-hash手动指定基准提交自动隐含--update。Git diff 完全不可用更新器仍能工作——直接拿保存的旧依赖图与新建的新图做比对不依赖 Git。⚡ 快速上手两条命令跑通全量到增量# 安装需要 Python 3.12 pip install githttps://gitcode.com/gh_mirrors/co/CodeWiki.git cd /path/to/your/project codewiki generate # 首次全量构建输出到 ./docs/ # ... 改代码、提交 ... codewiki generate --update # 增量刷新只更新受影响的页面几个新手友好的细节用--update但自上次生成后没有任何提交时会直接提示文档已是最新并退出不花一分钱。--update会沿用原文档的语言和目录布局中文文档不会被突然翻回英文。所有参数定义见 generate.py更细的阈值与--update-rung消融档位0~3b可查 guides/incremental-updates.md。 98% 怎么来的实测数据与可审计记录官方在 svelte约 12.5 万行 JavaScript上用同一模型测得运行方式成本耗时全量构建$21.482 小时 46 分钟一次提交后的--update$0.343 分钟($21.48 − $0.34) ÷ $21.48 ≈98.4%的成本节省耗时缩短约 55 倍。而且更新成本与代码改动量成正比而不是与仓库大小成正比——100 万行的仓库只改一个函数花费和 1 万行的仓库差不多。更难得的是每次更新可审计每步决策都会写入docs/update_record.json包含运行结果no_change/incremental/full_fallback/detector_failure、每页的裁决patch / rewrite / no-op及理由、每次 Agent 调用的时间与 Token 开销。事后可解释为什么某页被改、某页没动——实现见 record.py 与死链清理的 stale_scan.py。✅ 质量不降级顺手看一眼 2.0 的基准成绩文档保持常新的前提是质量经得起检验。CodeWiki 2.0 在 CodeWikiBench 七个仓库上的平均加权得分 82.23比 1.0 提升 12.44 分其中 C/C/Java/C# 等此前依赖图结构缺失严重的语言提升最大Electron C 从 42.12 提升到 71.59 记住这三点就够了--update的单位是组件不是文件只改注释不会产生任何文档改动成本花在刀刃上。增量不是无脑省钱改动面超过阈值活跃叶子 50% 或结构变化 30%会自动回退全量构建宁可贵也不出错。每次更新都有update_record.json留痕哪页改了、为什么改、花了多少 Token全部可追溯。文档和代码一样是需要持续维护的活资产。用codewiki generate --update把它放进你的常规工作流让文档刷新成本从仓库规模变成这次改了多少。赞分享【免费下载链接】CodeWiki[ACL 2026] Open-source framework for holistic, structured repository-level documentation across multilingual codebases项目地址https://gitcode.com/gh_mirrors/co/CodeWiki点击查看免费下载相关推荐CodeWiki完全指南AI如何为百万行代码仓库自动生成结构化文档CodeWiki完全指南AI如何为百万行代码仓库自动生成结构化文档 还在为接手一个百万行的代码仓库而头疼翻不完的源码、过时的注释、缺失的架构说明让新人上如何用CodeWiki一条命令生成项目文档codewiki generate实战教程如何用CodeWiki一条命令生成项目文档codewiki generate实战教程 CodeWiki 是一个开源的 AI 仓库级文档生成框架 codewi突破千亿代码壁垒DeepWiki-Open分阶段文档生成与增量更新全攻略突破千亿代码壁垒DeepWiki Open分阶段文档生成与增量更新全攻略 大型代码仓库的文档生成一直是开发者面临的严峻挑战。随着项目规模增长至数十万甚至数百万AI 应用人工智能RAG文档创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考