前言¶
DeepSeek Harness(DSH)通過插件化架構擴展其功能。在處理複雜的代碼庫時,標準代理通常缺乏 IDE 級別的符號導航能力,例如查找特定符號的引用、重命名變量或查看項目符號概覽。dsh-serena 插件通過引入 Serena MCP 服務器,爲每個代理補齊了這部分能力,使其能夠進行結構化的代碼分析。
插件定位¶
dsh-serena 是 DeepSeek Harness 的一個工具類插件,由 akash-digitavision 維護。它將 Serena 的符號代碼智能能力通過 MCP 協議集成到 DSH 生態中,解決代理在代碼庫中無法進行深度符號操作的問題。
核心功能¶
該插件主要提供以下能力:
- 符號代碼智能:提供
find_symbol、find_referencing_symbols、rename_symbol、replace_symbol_body、get_symbols_overview等工具。 - MCP 服務器集成:通過 stdio 啓動 Serena 服務器,提供符號搜索、引用查找、重命名和診斷等功能。
- 會話鉤子管理:運行會話 hooks 以管理項目激活和工具使用,確保代理正確調用 Serena 工具。
- 本地化存儲:僅讀取或寫入激活的工作區,記憶存儲在
.serena/目錄中。
安裝與啓用¶
安裝命令
dsh plugin --profile web add github:akash-digitavision/dsh-serena
前置條件
1. Serena CLI:需要安裝 Serena 命令行工具。
uv tool install serena-agent
- 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,完全本地化運行,適合需要在本地環境對代碼結構進行深度分析的智能體工作流。