dsh-serena:为 DeepSeek Harness 代理注入 IDE 级符号代码智能

前言

DeepSeek Harness(DSH)通过插件化架构扩展其功能。在处理复杂的代码库时,标准代理通常缺乏 IDE 级别的符号导航能力,例如查找特定符号的引用、重命名变量或查看项目符号概览。dsh-serena 插件通过引入 Serena MCP 服务器,为每个代理补齐了这部分能力,使其能够进行结构化的代码分析。

插件定位

dsh-serena 是 DeepSeek Harness 的一个工具类插件,由 akash-digitavision 维护。它将 Serena 的符号代码智能能力通过 MCP 协议集成到 DSH 生态中,解决代理在代码库中无法进行深度符号操作的问题。

核心功能

该插件主要提供以下能力:

  1. 符号代码智能:提供 find_symbol、find_referencing_symbols、rename_symbol、replace_symbol_body、get_symbols_overview 等工具。
  2. MCP 服务器集成:通过 stdio 启动 Serena 服务器,提供符号搜索、引用查找、重命名和诊断等功能。
  3. 会话钩子管理:运行会话 hooks 以管理项目激活和工具使用,确保代理正确调用 Serena 工具。
  4. 本地化存储:仅读取或写入激活的工作区,记忆存储在 .serena/ 目录中。

安装与启用

安装命令

dsh plugin --profile web add github:akash-digitavision/dsh-serena

前置条件
1. Serena CLI:需要安装 Serena 命令行工具。

    uv tool install serena-agent
  1. Hooks 文件:需要配置 ~/.dsh/hooks.json 文件。该文件定义了会话开始、工具使用前的提醒以及会话结束时的清理逻辑。

重启服务
安装完成后,需要重启 DeepSeek Harness 以加载插件。

典型用法

启动会话
建议使用 --project-from-cwd 参数启动会话,以便自动激活当前目录为 Serena 项目:

dsh --context claude-code --project-from-cwd

验证激活
进入会话后,可以询问代理:

activate this project with serena

代理将验证项目是否成功激活,并开始使用 Serena 提供的符号工具进行操作。

适用场景与注意事项

运行权限
- 插件以当前 DSH 进程的权限运行,无账户、API 密钥或遥测。
- 所有操作仅限于本地进程,无外部服务依赖。

兼容性与性能
- 兼容性:要求 DeepSeek Harness 版本不低于 0.2.0-rc.2。
- 依赖版本:依赖版本被锁定为 @deepseek-ai/dsh-hooks-claude-code 0.2.0-rc.2,请确保 DSH 运行时版本匹配。
- 首次查询:在新建项目中进行第一次符号查询时,需要下载对应语言的服务器,速度可能较慢。

总结

dsh-serena 通过标准化的 MCP 协议将 Serena 的符号能力引入 DSH 生态。它不依赖外部 API,完全本地化运行,适合需要在本地环境对代码结构进行深度分析的智能体工作流。

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

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

小夜