DeepSeek Harness (DSH) 的核心在于“一切皆插件”的架构。在开发智能体或进行代码辅助时,让模型准确获取代码的调用关系、文件位置以及结构化上下文是一个常见痛点。dsh-graft-plugin 解决了这个问题,它将 graft(一个预构建的代码图)直接置入 DSH 环境中,供用户和模型同时使用。
插件概览¶
这是一个 DeepSeek Harness 插件,旨在将代码符号、文件行号和调用关系图前置化。它主要解决如何让模型在编辑代码时,既能理解代码结构,又能利用精确的上下文信息。
- 名称:dsh-graft-plugin
- 维护者:adithyanraj03
- 类别:客户端
- 许可证:MIT
- 核心价值:为模型提供代码索引工具,在 Composer 中显示 graft 索引状态和 Token 节省情况。
安装与前置依赖¶
安装前,确保已安装全局的 graft CLI 工具:
npm install -g @nanonets/graft
Web Profile 安装¶
使用 DSH 官方 CLI 安装插件:
dsh plugin --profile web add dsh-graft-plugin
注意 pnpm 10+ 用户:pnpm 10+ 会阻止未批准的 postinstall 脚本。如果安装失败,需先批准构建:
cd ~/.dsh/profiles/web && pnpm approve-builds # 勾选 dsh-graft-plugin
dsh plugin --profile web add dsh-graft-plugin # 重新运行以写入 bundle 行
桌面应用安装¶
桌面版 DSH 不使用 CLI 安装,需通过设置界面操作:
- 打开 Plugins(左侧边栏的设置)。
- 点击 Add plugin。
- 输入仓库地址或包名:
https://github.com/adithyanraj03/dsh-graft-plugin
- 点击 Install。
桌面应用安装的插件目前不自动更新,如需升级需卸载重装。
核心功能¶
插件在 Composer 中集成了一枚芯片,并提供了工具链。
Composer 芯片¶
在 Composer 区域,芯片会显示当前会话使用的 graft 索引状态和 Token 节省情况:
* ● in sync:索引同步,匹配当前代码
* ◐ syncing:索引正在重建中
* ▲ stale:索引过期,代码已有变更
鼠标悬停(或点击)芯片可查看根节点数、边数、索引新鲜度以及 Token 节省统计,并包含一个 graft viz 按钮。
模型工具¶
插件为模型提供了以下工具,均在会话中按需解析:
* graft_ask:询问代码如何工作或查找位置,返回带代码片段的命中结果。
* graft_grep:搜索所有实例,按符号分组。
* graft_callers:查看符号的调用者、被调用者及调用链路。
* graft_skeleton:获取文件的完整 API 结构。
* graft_map:查看代码树的层级结构。
命令行工具¶
在对话中使用以下命令管理索引:
* /graft:构建或重建索引。
* /graft status:查看芯片文本信息。
* /graft deep:完全重建索引。
自动重建与可视化¶
- 自动重建:当模型编辑文件后,插件会在后台自动重建 graft 索引(带有防抖逻辑)。
- 可视化:点击
graft viz按钮可打开代码图。支持 dsh 内置侧边栏(0.1.5+)、dsh-better-sidebar 插件或浏览器标签页。
使用示例¶
在 DSH 对话中,可以直接调用工具或使用命令:
# 重建索引
/graft
# 查看状态
/graft status
# 完全重建
/graft deep
# 模型工具调用示例
graft_ask: "如何处理用户登录逻辑?"
graft_callers: "查看 auth 模块的调用关系"
graft_skeleton: "获取 src/api/user.js 的 API 定义"
graft_map: "查看整个项目的目录树结构"
注意事项与限制¶
- 依赖冲突:如果同时使用
dsh-better-sidebar0.18.x 和新版 DSH,可能因缺少@deepseek-ai/dsh-client-ui-primitives而无法挂载。插件不主动插入dsh-better-sidebar行,以避免冲突。 - 权限:插件以当前 DSH 进程的权限运行,安装前建议检查源码与许可证。
总结¶
dsh-graft-plugin 通过引入代码图概念,为 DeepSeek Harness 提供了结构化的代码上下文。它不仅帮助模型更准确地理解代码,还通过 Composer 芯片直观地展示了索引状态和效率。对于需要深度代码交互的开发者,这是一个值得安装的实用插件。
- GitHub:https://github.com/adithyanraj03/dsh-graft-plugin
- 插件目录:https://www.skillhub.cn/plugins/adithyanraj03/dsh-graft-plugin