前言¶
DeepSeek Harness 的 stock agent-instructions 插件會注入 AGENTS.md 文件本身,但文件內的 @path 引用保持爲純文本,模型無法讀取。dsh-context-imports 解決了這個問題。它像 Claude Code 一樣讀取引用文件並將其內容注入到會話上下文中。
安裝¶
使用官方命令安裝該插件。
dsh plugin --profile web add dsh-context-imports
安裝後無需額外配置即可使用,它會默認掃描 AGENTS.md 和 CLAUDE.md。
核心功能¶
該插件主要提供以下能力:
- 遞歸展開導入:支持
@path語法的遞歸展開,能夠處理嵌套引用。 - 自動觸發時機:在新建會話、恢復會話、清空會話以及會話壓縮後自動執行注入。
- 歷史記錄管理:保持活動歷史中恰好存在一個注入內容。當壓縮操作移除該內容後,下一次會話啓動會重新注入。
- 字節數預算:限制單個文件和總注入內容的字節數,超限文件會被截斷並附帶提示。
- 多語言設置卡片:在插件配置中提供中、英、日、法、俄、韓六種語言的設置界面。
- 官方 API:僅使用 DeepSeek Harness 的官方 API 表面,無 feature-plugin 依賴。
工作原理¶
插件在會話啓動(startup / resume / clear / compact)時記錄場景,並在每次步驟前(pre-step)決定是否注入。其處理流程如下:
- 掃描指令文件(默認爲 AGENTS.md、CLAUDE.md),查找
@path引用。 - 解析相對路徑(相對於導入文件的目錄),跳過圍欄代碼塊,要求路徑必須包含文件擴展名。
- 合併顯式注入列表(通過
files配置)和掃描到的導入列表。 - 應用字節數預算限制(默認每文件 64KB,總計 128KB)。
- 生成
<system-reminder>消息,包含<file path="...">塊,並追加到會話消息末尾。
配置項¶
在設置中可以調整以下參數:
| 配置項 | 默認值 | 說明 |
|---|---|---|
files |
[] |
額外要注入的文件,支持相對路徑或絕對路徑 |
scanImports |
true |
是否掃描 AGENTS.md 和其他指令文件中的 @imports |
instructionFiles |
["AGENTS.md", "CLAUDE.md"] |
要掃描的文件列表,這些文件本身不會被重新注入 |
maxDepth |
3 |
嵌套導入的最大遞歸深度 |
maxFileBytes |
65536 |
單個文件的大小限制(字節),超出則截斷 |
maxTotalBytes |
131072 |
總注入內容的字節限制,超出則跳過文件 |
injectOn |
all four |
觸發注入的會話場景(新建、恢復、清空、壓縮) |
template |
"" |
自定義包裹文本,使用 {{content}} 標記文件內容位置 |
典型用法¶
- 相對路徑解析:如果在
AGENTS.md中引用@docs/architecture.md,路徑將相對於AGENTS.md所在目錄解析。 - 消息格式:注入的內容是一個
<system-reminder>標籤,內部包含<file path="...">塊,除此之外沒有其他內容。 - 模板自定義:如果需要添加額外的說明文字,可以在設置中配置
template,並在其中使用{{content}}佔位符。
注意事項¶
- 缺失文件:引用的文件如果不存在,會被記錄爲一條單行註釋,而不是導致插件報錯。
- 代碼塊跳過:被圍欄代碼塊包裹的路徑會被跳過,且路徑必須包含文件擴展名。
- AGENTS.md 來源:AGENTS.md 文件本身由 stock
agent-instructions插件注入,此插件只處理其內部的引用。 - 依賴關係:插件不依賴其他 feature-plugin。
總結¶
dsh-context-imports 通過解析 AGENTS.md 和 CLAUDE.md 中的 @path 引用,解決了模型無法讀取引用文件內容的問題。它支持遞歸導入、預算控制和多語言配置,適合需要將文檔結構化注入上下文的場景。