dsh-context-imports:在會話啓動時注入 AGENTS.md 引用的文件

前言

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。

核心功能

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

  1. 遞歸展開導入:支持 @path 語法的遞歸展開,能夠處理嵌套引用。
  2. 自動觸發時機:在新建會話、恢復會話、清空會話以及會話壓縮後自動執行注入。
  3. 歷史記錄管理:保持活動歷史中恰好存在一個注入內容。當壓縮操作移除該內容後,下一次會話啓動會重新注入。
  4. 字節數預算:限制單個文件和總注入內容的字節數,超限文件會被截斷並附帶提示。
  5. 多語言設置卡片:在插件配置中提供中、英、日、法、俄、韓六種語言的設置界面。
  6. 官方 API:僅使用 DeepSeek Harness 的官方 API 表面,無 feature-plugin 依賴。

工作原理

插件在會話啓動(startup / resume / clear / compact)時記錄場景,並在每次步驟前(pre-step)決定是否注入。其處理流程如下:

  1. 掃描指令文件(默認爲 AGENTS.md、CLAUDE.md),查找 @path 引用。
  2. 解析相對路徑(相對於導入文件的目錄),跳過圍欄代碼塊,要求路徑必須包含文件擴展名。
  3. 合併顯式注入列表(通過 files 配置)和掃描到的導入列表。
  4. 應用字節數預算限制(默認每文件 64KB,總計 128KB)。
  5. 生成 <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 引用,解決了模型無法讀取引用文件內容的問題。它支持遞歸導入、預算控制和多語言配置,適合需要將文檔結構化注入上下文的場景。

  • 維護者:ciskonc
  • 許可證:MIT
  • 源碼地址:GitHub
  • 插件目錄:SkillHub
羽毛球分组比赛记分
小程序二维码

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

小夜