dsh-code-index:DeepSeek Harness 的代碼庫索引插件

前言

DeepSeek Harness(dsh)通過插件爲智能體擴展外部能力。對代碼倉庫任務來說,常見的問題是模型缺少一張穩定的代碼庫地圖:不知道當前倉庫有哪些關鍵文件,也不容易快速定位函數、類、接口和類型。

dsh-code-index 是一個 DSH 插件,用來給智能體提供三樣東西:基於 tree-sitter 的符號索引、按相關度排序的符號搜索,以及一個受限制大小、可自動更新的倉庫地圖。

這是什麼

dsh-code-index 是 lemonxiny55 維護的第三方插件,MIT 許可,未與 DeepSeek 官方從屬,構建在公開的 dsh 插件面上。

它爲智能體提供以下工具:

  • code_index
  • code_symbols
  • code_search
  • code_map

同時,它還可以向系統提示詞注入一個倉庫地圖段落。

核心能力

索引與狀態

code_index 用於查看或重建當前工作區的代碼索引。

索引在首次使用時延遲構建,之後使用本地緩存,並按 mtime 做增量刷新。

支持的語言包括:

  • TypeScript
  • JavaScript
  • Python
  • Go
  • Rust
  • Java

解析通過 tree-sitter WASM 完成。

符號列表

code_symbols 可列出符號,包括函數、類、接口、類型、方法等,並返回 file:line。

可過濾條件包括:

  • 名稱
  • 路徑
  • 符號類型
  • 是否導出

排序搜索

code_search 對符號做排序查找。

排序優先級爲:

  1. 精確匹配
  2. 前綴匹配
  3. 子串匹配
  4. 子序列模糊匹配

導出符號優先,並返回相關度分數和 file:line。

倉庫地圖

code_map 生成一個受限大小的排序倉庫地圖。

它按符號密度和 import 引用挑選 top 文件,並列出關鍵符號與行號。

可選的自動注入段落爲:

code-index:repo-map

該段落 order 爲 60,TTL 配置項爲 mapTtlMs,默認 60 秒刷新。

自動注入面向默認工作區,也就是啓動目錄,匹配 headless/CLI 模式。多工作區 Web UI 會話建議改用 code_map 或 code_symbols,它們會按當前會話 cwd 解析。

安裝與啓用

需要 dsh,以及 Node >= 22。插件聲明 peer dependency:

@deepseek-ai/cordis ^4.0.1

安裝命令:

npx @deepseek-ai/dsh plugin --profile web add dsh-code-index

安裝後重啓 Web UI:

npx @deepseek-ai/dsh web

啓動日誌會確認各個工具是否註冊。

也可以在啓動 UI 前檢查組合後的配置:

dsh --profile web --dump-config

建立索引不需要 API key。模型需要正常配置好,才能調用這些工具。

典型用法

在工作區會話中,可以這樣要求智能體:

  1. Which repo are we in — run code_map first.
  2. Find every function whose name contains parse and where it lives.
  3. List the exported symbols in src/core.
  4. Rebuild the code index.

一個典型組合是先調用 code_map,再調用:

code_search { query: "extractSymbols" }

用於定位定義和上下文。

適用場景與注意

適合需要讓 DSH 智能體理解倉庫結構、查找符號、定位函數或類、生成倉庫概覽的代碼任務。

注意:

  • 插件以當前 dsh 進程權限運行,並會讀取工作區文件以建立索引。安裝前應檢查源碼、依賴和 MIT 許可證。
  • web-tree-sitter 固定在 ^0.20.8。資料說明新版 web-tree-sitter 期望 dylinked grammar wasm,而 tree-sitter-wasms 提供 static builds;該組合已驗證在 Node >= 22/24 下工作。
  • 本地變量也會被索引,傾向召回;code_search 排序會把它們壓低。
  • DSH 仍處 developer-preview harness 階段,上游 harness/plugin API 可能發生變化。
  • 自動注入段落只面向默認工作區;多工作區 Web UI 會話應使用 code_map 或 code_symbols。

結尾

dsh-code-index 的核心價值,是給 DSH 智能體提供符號索引、符號搜索和受限倉庫地圖,讓模型在代碼倉庫任務中少一些猜測。

GitHub 倉庫:

https://github.com/lemonxiny55/dsh-code-index

社區目錄線索地址:

https://www.skillhub.cn/plugins/lemonxiny55/dsh-code-index

該目錄頁地址來自插件線索,未在本次資料中直接確認,使用時以目錄實際頁面爲準。

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

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

小夜