尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

CodeGraph会话去重:同一对话里如何不再重复发送源码

CodeGraph会话去重:同一对话里如何不再重复发送源码 CodeGraph会话去重同一对话里如何不再重复发送源码【免费下载链接】codegraphPre-indexed code knowledge graph, auto syncs on code changes, for Claude Code, Codex, Gemini, Cursor, OpenCode, AntiGravity, Kiro, CoPilot, and Hermes Agent — fewer tokens, fewer tool calls, 100% local项目地址: https://gitcode.com/GitHub_Trending/co0degr/codegraphCodeGraph 是一款为 Claude Code、Cursor、Codex、Gemini、Copilot 等 AI 编码代理提供本地代码知识图谱的工具它自动索引项目、随代码变更同步并用更少的 token 和更少的工具调用帮助代理理解代码。而「会话去重」正是 CodeGraph 最实用的一项机制在同一轮对话中已经发送过的源码不会被重复塞给 AI而是用一条回溯指针代替——既省 token又保证 AI 不会漏看任何一行代码。 先搞懂问题为什么源码会被重复发送AI 代理在回答这个功能是怎么实现的这类问题时通常会连续调用多次codegraph_explore工具一次比一次深入。问题在于早期的 CodeGraph 每次调用都当第一次回答——它不知道这个会话里已经发过什么。结果是第 2、3、4 次调用把同一个文件的同一段代码反复塞进上下文浪费 token 和上下文窗口空间重复内容挤压了 AI 本可以看到的新代码官方在复盘里记录到一个典型案例4 次调用中反复重发第一次就已交付的主干代码换句话说代理的上下文窗口里相当一部分字节是已经看过的旧内容真正有价值的新信息反而被挤出去了。⚙️ 会话去重是如何工作的整套机制由两个核心模块协作完成会话状态记录src/mcp/explore-session-state.ts跨调用去重算法src/mcp/explore-dedup.ts设计文档见 docs/design/explore-session-dedup.md。1️⃣ 记住这个会话发过什么每次explore调用返回后CodeGraph 会悄悄记下发了哪个项目的哪些文件按解析后的项目根目录归组每个文件具体发了哪些行区间如 L42-76这些行对应的源码内容指纹长度 哈希前缀这个状态只活在当前 MCP 会话里会话结束即销毁——新开的对话会重新从零认识你的项目绝不会误判。2️⃣ 用指针代替全文——绝不静默省略当某次调用准备发送的内容发现前面已经发过CodeGraph不会悄悄省掉省掉会让 AI 以为没找到进而退化为反复读文件而是替换成一条明确的回溯指针形如Already sent earlier in this conversation:internal/usecase/payroll/cycle.goL42-76, L78-215 (Cycle, PayslipsForCycle, Service, 6 more) — unchanged on disk since, so that copy is still exact. Only the NEW lines are shown below; scroll back for the rest.这条指针同时回答了 AI 最关心的三件事文件在哪、符号是什么、行号是多少并明确告知本次对话里已给过、且文件未变无需重新 Read。3️⃣ 三道安全阀门宁可重发、绝不误导去重算法遵循一个核心原则重发几百字符只是浪费而漏发 AI 没见过的代码会引发一次昂贵的 Read。因此所有阈值都偏向重发阀门规则目的内容指纹只有文件字节与之前发出的完全一致才去重文件被改过立刻重新全量发送最小覆盖行数已发区间 ≥ 8 行才值得用指针替换指针本身约 140 字符太短的片段替换反而变大首次调用会话内某项目的第 1 次调用永不去重没有任何已发内容可指全指针保护若整次响应全是指针会自动补回第一个文件的真实源码避免看起来啥都没找到的坏体验想临时关闭设置环境变量CODEGRAPH_EXPLORE_DEDUP0即可无需重新构建。 实测效果重复字节下降 87%官方在 kubernetes/client-go 和 excalidraw 两个真实仓库上做了 A/B 实测详细报告见 docs/benchmarks/explore-dedup-ab-cg20.md重复源码占比从 6.4% 降到0.74%下降 87%excalidraw 场景响应整体缩小 5.4%而其中的独特源码反而多 11.1%24 轮完整代理跑测0 次 Read 回退、0 次报错、0 次弃用 codegraph省下的字节去哪了全部换给 AI 还没看过的新文件——响应大小基本持平但信息密度显著提高一句话概括不是发得更少而是发得更新。 想深入了解从这些文件开始想了解的看这里去重设计全貌docs/design/explore-session-dedup.md去重算法实现src/mcp/explore-dedup.ts会话状态记录src/mcp/explore-session-state.ts效果基准数据docs/benchmarks/explore-dedup-ab-cg20.md去重单元测试tests/explore-cross-call-dedup.test.ts会话状态测试tests/explore-session-state.test.ts✅ 小结CodeGraph 会话去重用三个关键词就能讲清记住、指路、验证。记住——每次调用后记录已发送的文件与行区间指路——重复内容替换为带文件、符号、行号的回溯指针绝不静默省略验证——靠内容指纹确认AI 手里那份还是最新代码文件一变就全量重发。对新手来说你甚至不需要做任何配置装好 CodeGraph、连上你的 AI 代理后同一轮对话里的 token 就开始自动去重省了。上下文窗口省下来的每一分空间都会换成 AI 真正需要的新代码。【免费下载链接】codegraphPre-indexed code knowledge graph, auto syncs on code changes, for Claude Code, Codex, Gemini, Cursor, OpenCode, AntiGravity, Kiro, CoPilot, and Hermes Agent — fewer tokens, fewer tool calls, 100% local项目地址: https://gitcode.com/GitHub_Trending/co0degr/codegraph创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表