在 DSH 生态中,智能体读代码常依赖 grep,但这只能返回文本,无法体现调用链、影响面或架构关系。dsh-code-graph 解决了这个问题。它为 DSH 插件系统引入了分支感知的代码知识图谱能力,让 Agent 能够通过图查询而非盲目搜索来理解代码。
是什么¶
这是一个由 hoyyang 维护的 DSH 插件。它复用本机 codebase-memory-mcp 引擎,提供结构化的代码索引和查询能力。它不依赖 MCP 会话,而是通过原生工具分发器与引擎二进制交互。
核心功能¶
- 结构化读代码:支持 callers、callees、impact(影响面 BFS)、trace(调用与数据流路径)、architecture(架构概览),覆盖 158+ 语言。
- 分支自动跟随:检出任意分支后直接提问,索引图自动对应当前分支;切回访问过的分支零重索引。
- 大仓滚动单索引:超过 500MB 的仓库只保留当前分支一份索引,切分支删旧建新,磁盘占用恒为 1 份。
- 保鲜门控:每次查询比对 HEAD+脏树签名,漂移自动 fast 增量重索引。
- 图查询零命中自动回落 ripgrep:图查询无结果时自动回退到 ripgrep,结果显式标注 fallback,绝不冒充图结果。
- 读代码硬门禁:未先调 codegraph 的代码 grep 会被拒绝并给出引导;门禁自身异常一律放行(fail-open)。
- 跨分支查询:通过 branch 参数直查已建索引的非检出分支(冻结态)。
安装与启用¶
使用官方安装命令:
dsh plugin add github:hoyyang/dsh-code-graph
安装后,插件依赖本机 codebase-memory-mcp 引擎二进制(默认路径 ~/.local/bin/codebase-memory-mcp)。如果引擎缺失,插件会在调用时报错点名,但不会影响 DSH 启动。
典型用法¶
- 查看索引状态:
/codegraph
- 新建索引:
/codegraph <仓库绝对路径> fast
- Agent 侧查询:
codegraph { "op": "callers", "repo_path": "<repo>", "name": "handleRequest" }
- 切分支后直接提问:索引自动跟随。
适用场景与注意¶
该插件适合需要深度理解代码调用关系、架构影响面或跨分支代码检索的场景。安装前请确认本地已配置 codebase-memory-mcp 引擎。
注意:
- 不会修改仓库文件:不装 git hooks、不写 .gitignore、不启动常驻监听。
- 卸载命令:
dsh plugin --profile web remove dsh-code-graph
此命令会自动清理工具、命令、提示 section/skill 文件和状态文件,但不会触碰图数据库与用户仓库。
- 生态背景:DSH 理念是「一切皆插件」;社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-code-graph 通过原生工具分发与保鲜门控机制,为 DSH 提供了高效的代码知识图谱能力。如需了解完整文档,请访问 GitHub 或 SkillHub 目录。