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

资讯详情

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

为什么 CodeGraph 只暴露 1 个 MCP 工具?codegraph_explore 极简设计哲学完整指南

为什么 CodeGraph 只暴露 1 个 MCP 工具?codegraph_explore 极简设计哲学完整指南 为什么 CodeGraph 只暴露 1 个 MCP 工具codegraph_explore 极简设计哲学完整指南【免费下载链接】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 一句话导读CodeGraph是一个 100% 本地运行的代码知识图谱工具在 Claude Code、Cursor、Codex、Gemini 等 AI 编程代理中只暴露 1 个 MCP 工具——codegraph_explore。本文将带你读懂这个反直觉决策背后的设计哲学为什么少即是多一个强工具如何替代理省下成打的 token 和工具调用。一个工具而不是一张菜单直觉背后是什么大多数 MCP 服务器的做法是功能多 → 工具多 → 给代理一整个工具箱。CodeGraph 偏偏相反。它的 MCP 服务器默认只提供1 个工具codegraph_explore。这不是功能没做完而是作者故意把另外 7 个完全可用的工具codegraph_node、codegraph_search、codegraph_callers、codegraph_callees、codegraph_impact、codegraph_files、codegraph_status从工具列表里藏了起来。源码里的注释把原因写得直白其他工具都只是 explore 已能覆盖内容的更窄切片而它们仅仅被列出来这件事本身就会诱导代理选错工具。 —— src/mcp/tools.tsconst DEFAULT_MCP_TOOLS new Set([explore]); // 默认只列 explorecodegraph_explore 到底返回什么一次Read 级回答理解这个设计哲学先要看清codegraph_explore一次调用能带回什么。你给它一个自然语言问题或一串符号/文件名它一次返回逐字带行号的源码相关符号的原文按文件分组形态与 Read 工具完全一致——看到就算读过无需再打开文件符号之间的调用路径包括 grep 跟不上的动态分发跳板回调、React 重渲染、接口→实现影响面blast radius摘要改这里哪些地方会受影响️关系图与额外相关文件清单其他窄工具要单独调用的内容全部内联送达。一次调用通常就回答了整个问题。工具定义中的描述也明确写着PRIMARY TOOL — call FIRST首要工具几乎任何问题都先调它一次封顶的调用用远少于 search/Read/Grep 循环的 token 和往返次数给出更准确的上下文。 —— src/mcp/tools.ts极简背后的 3 条设计哲学1️⃣ 减少选错工具列表本身就是提示词代理每次会话开头都会读到工具清单。清单里多一个工具就多一份该不该用它的决策成本和误选概率。实测的代理行为显示一个瞄得准的强工具比一菜单窄工具更能把代理引向直接答案——误选更少每个会话都省上下文见 README.md 的 MCP Tools 一节。把 7 个窄工具藏起来后代理不再纠结查调用方用 callers 还是 impact而是直接一句X 是怎么工作的丢给 explore。2️⃣ 省 token输出预算随项目大小自动缩放少不止体现在工具数量上也体现在每次返回多少内容上。CodeGraph 会根据项目文件数动态调整输出预算小项目更紧、大项目更宽连建议调用几次 explore都分档15 次小代码库更紧的总字数上限、更少的默认文件数、更紧的聚类——避免一次调用把半个文件砸进代理上下文大代码库保留宽裕默认值因为在这个规模上代理原生探索find grep 大量 Read的开销远大于一次胖的 explore 调用。相关实现见 src/mcp/tools.ts预算档位与 src/mcp/explore-session-state.ts会话级去重同一份源码不会被反复喂给代理。3️⃣ 隐藏 ≠ 删除能力全都在只是不打广告7 个工具只是默认不列出功能一个没少需求explore 内联覆盖想单独用读一个符号/整文件✅ 返回关系图与符号正文codegraph_node按名查符号位置✅ 查询本身就支持符号名codegraph_search查谁调用了我 / 我调用了谁✅ 调用路径 影响面章节callers/callees改前评估影响面✅ blast-radius 摘要codegraph_impact看项目文件结构✅ 额外相关文件清单codegraph_files想重新启用设一个环境变量即可例如CODEGRAPH_MCP_TOOLSexplore,node,search,callers或者不走 MCP直接用 CLI 等价命令codegraph node/query/callers…——详见 site/src/content/docs/reference/mcp-server.md。实测收益从 43 次工具调用到 14 次设计哲学的最终裁判是数据。官方基准测量显示没有 CodeGraph代理把预算烧在发现上——最多43 次工具调用、19 次文件读取重新推导图谱早已知道的事有 CodeGraph代理14 次codegraph_explore调用后直接作答每个基准仓库文件读取次数为 0最窄的问题快 35%、最宽的问题快 3.6 倍。而只给一个工具正是让代理真的走这条路的关键代理的注意力被单一入口牢牢聚焦不再绕道子代理去读文件。小结把复杂性留给图谱把简单留给代理codegraph_explore的设计哲学可以浓缩成一句话复杂度已经被预编译进了本地代码知识图谱代理的界面就应该只有一个动词问。一次调用 源码 调用路径 影响面Read 等价、零文件读取输出预算随项目规模自适应小项目不浪费、大项目不缩水窄工具默认隐身环境变量一键召回CLI 永远兜底。如果你的 AI 编程代理还在 grep 和 Read 里打转不妨看看 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/codegraph创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表