DSH-Graphify:在 DSH Desktop 中集成 Graphify 代码知识图谱

前言

在 DeepSeek Harness(DSH)里做项目级 Agent 开发时,模型往往只能看到当前打开的文件或片段,很难稳定把握整个仓库的模块边界、调用链和依赖关系。单独跑 Graphify 可以产出代码知识图谱,但要在 IDE 侧栏查看、并在对话里按需查询,通常还要自己拼脚本和上下文。

DSH-Graphify 由维护者 Jov3c 发布,分类为工作流插件,把开源 Graphify 的建图与原版可视化接到 DSH Desktop:本地自动维护 graphify-out/graph.json,右侧栏展示原版交互式关系网络,并为 Agent 提供一组原生图谱查询与导出工具。当前版本为 0.9.2 Beta(npm 包 0.9.2-beta.1);README 说明核心建图与关系网络已接入,树状图、调用流程与多项高级 CLI 能力有入口,Windows / Linux CI 覆盖接口与逻辑测试,不等于全部功能已在真实 DSH Desktop 端到端验收,细节见仓库 MIGRATION.md。

这是什么

DSH-Graphify 是 DSH Desktop 插件,在已授权的本地项目会话中索引代码、更新 Graphify 输出,并在受限 iframe 中加载原版 vis-network 等 HTML 视图。默认建图使用 --code-only,不调用大模型;可选语义抽取、外部导入等能力需在设置中显式开启并受权限控制。

宿主要求:DSH Desktop / Web 0.2.x(含右侧栏与 workspaceFiles Remote),DSH Host 使用 Node.js 22+。首次索引会从 GitHub Releases 下载校验后的 uv,并从 PyPI 安装固定版本 graphifyy 0.9.92,需要联网;日常自动扫描不依赖 AI。

核心功能

下面按 README 功能表归纳当前已文档化的能力。

本地代码图谱与更新

  • 自动建立并更新 graphify-out/graph.json。
  • 默认策略:停止编辑约 20 秒后触发更新,连续两次自动更新至少间隔 180 秒(可在设置中调整防抖与最短间隔)。
  • Agent 手动建图与后台索引共享同一项目任务队列,避免并行扫描;后台更新不立即重置关系网络视图,切换侧栏标签再返回可保留画面。

图谱展示与主题

  • 右侧 Graphify 标签:关系网络为 Graphify 原版 HTML;支持节点搜索、社区图例与详情。
  • 树状图、调用流程需先分别生成 GRAPH_TREE.html、GRAPH_CALLFLOW.html(见下文 Agent 工具 graphify_view),再从侧栏选择对应视图;这些 HTML 的 JavaScript 仍依赖对应 CDN,纯离线无法保证完整显示。
  • 关系网络默认跟随系统亮暗主题,并保留 Graphify 原版手动主题选择。

Agent 代码分析

插件向 Agent 暴露项目级提示与原生工具,用于架构梳理、节点解释、依赖路径与静态影响分析;对动态依赖、共同入口等会标明局限,影响结论需结合源码与测试核实。

诊断与导出

支持图谱节点/边统计、孤点与缺失端点、原版多重图诊断,以及 Wiki、Obsidian、GraphML、HTML 等导出。

高级工作流(受控、默认关闭部分能力)

Git Hook、PR、社区重聚类、图谱合并/全局登记、记忆/反思、克隆/导入资料等,通过对应工具入口提供;高级本地操作与联网/AI 操作在设置中默认关闭,需授权后才可能触发安装 Hook、外部下载或 AI 调用。

安装与启用

环境

  • DSH 0.2.x,Node.js 22+。
  • 首次索引需联网下载引擎依赖;Windows 缓存目录为 %LOCALAPPDATA%\DSH-Graphify\engine-v2,macOS / Linux 使用用户缓存目录,不修改系统 Python 或 PATH。

Desktop 安装

打开 DSH Desktop → 插件 → 安装插件,输入:

github:Jov3c/DSH-Graphify

安装后重启 DSH Desktop。已有版本可在插件管理器中重新安装同一来源并重启。仓库含预构建 lib/,正常安装无需本地编译。

可选 CLI(Desktop Profile):

dsh plugin --profile desktop add github:Jov3c/DSH-Graphify

插件以当前 DSH 进程权限运行;安装前建议阅读仓库源码与 MIT License,不要把机密资料写入图谱输出或未经审核的外部后端。

典型用法

经过上面的安装步骤后,可按 README 建议顺序使用。

  1. 在 DSH 中打开已授权的本地项目会话。插件检查 graphify-out/,按设置自动索引并更新状态。
  2. 打开右侧 Graphify 标签。首次打开关系网络会加载 graphify-out/graph.html;找不到视图文件不代表 graph.json 为空。
  3. 向 Agent 提问,例如:「分析这个项目的模块结构」「登录模块与数据库怎么联系」「修改登录流程可能影响哪些测试」。是否实际调用图谱工具由模型与工具权限决定;可在 Graphify → 设置 中配置「Agent 工具建议」(智能使用、仅明确要求、关闭主动使用)。
  4. 新图谱生成时,关系网络仅提示加载最新图谱,不自动清空缩放与筛选;手动刷新会加载新图谱并重置布局。

手动重建:在同一项目中,Agent 调用 graphify_build 会复用正在执行的自动索引,避免重复运行。禁用后台扫描时仍可手动建图;失败不会被报告为成功。

主要原生 Agent 工具(节选)

工具 用途
graphify_build 建立或更新本地代码图谱
graphify_query / graphify_explain 自然语言检索、解释类或函数
graphify_path / graphify_affected 跟踪关系、分析变更影响
graphify_health 检查图谱规模、索引时间及静态结构异常
graphify_view 生成关系网络 / 树状图 / 调用流程原版 HTML
graphify_export 导出 Wiki、Obsidian、GraphML 等

完整工具列表见 GitHub README;工具存在不表示所有 Graphify 可选依赖与外部服务均在 Desktop 上完成验证。

设置要点

右侧 Graphify → 设置 中常见项:

  • 自动更新:自动、仅打开项目、手动或关闭;扫描防抖 5–120 秒、最短间隔 30–900 秒(默认 20 秒 / 180 秒)。
  • 项目范围:当前本地项目会话或目录白名单;支持排除规则,并尊重 Graphify 忽略配置。
  • 高级本地操作、联网/AI 操作:默认关闭。

图谱 HTML 在隔离 iframe 中执行;工具在工作区策略根目录内解析真实路径,Node 子进程使用固定参数并禁用 Shell 拼接。

适用场景与注意

适合:需要在 DSH 内长期维护本地仓库、希望侧栏直接看 Graphify 原版关系网络,并让 Agent 用结构化工具做架构与依赖问答的团队或个人。

注意:

  • 静态导入与调用关系无法完整覆盖事件、回调、反射、依赖注入等运行时行为;graphify_affected 等结果需回源码核实。
  • Graphify MCP 需按 MCP_SETUP.md 手动配置,插件内尚无一键连接与端到端验收。
  • Neo4j / FalkorDB 写入、部分可选媒体解析器、Graphify Guard/Hook 的 DSH 深度接入等仍在迁移清单中(见 MIGRATION.md)。
  • 适配以 Graphify 0.9.92 为基准,上游变更后需自行做兼容性验证。

DSH 生态强调「一切皆插件」;社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

DSH-Graphify 把 Graphify 的本地代码图谱、原版可视化与 Agent 工具链收进 DSH Desktop 工作流:默认以无 AI 的代码扫描建图,按需打开高级与联网能力。查阅安装说明、限制与迁移进度请以仓库为准。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜