dsh-plugin-focus:在 DSH agent 中固定目標、約束與決策

前言

DSH agent 的上下文會經歷壓縮,跨會話時也可能丟失早期確定的信息。已有做法中,todo list 通常關注“接下來做什麼”;但還有一些信息需要穩定保留:當前目標是什麼、哪些約束不能偏離、哪些決策已經發生。

dsh-plugin-focus 是一個 DSH 插件,它給 agent 提供一個 focus 工具和一份持久 focus board。focus board 位於 session workspace 中,用於記錄目標、約束和決策,並在每輪開始或內容變化時重新注入模型上下文。

這是什麼

一句話定位:dsh-plugin-focus 是面向 DeepSeek Harness agents 的 focus board 插件,用一份模型可維護的筆記把目標、約束和決策固定下來。

已覈實信息:

  • 名稱:dsh-plugin-focus
  • 許可證:MIT
  • GitHub 倉庫:https://github.com/863683348/dsh-plugin-focus

它解決的核心問題是:agent 在執行長任務時,需要把“爲什麼做、不能偏離什麼、已經決定了什麼”保存在上下文壓縮和會話切換之後仍然可讀的位置。

核心功能

下面介紹已覈實的能力。

focus 工具

插件提供 focus 工具,支持四個動作:

  • set
  • get
  • append
  • clear

這些動作用於寫入、讀取、追加和清空 focus board。

提示引導章節

插件提供 focus:instructions 提示引導章節,用於給模型補充使用 focus board 的引導信息。

自動上下文注入

focus board 會在以下時機重新注入到模型上下文:

1、每輪開始;
2、focus 內容發生變化時。

空 board 時不會注入,注入內容受 maxChars 限制。

clear 時歸檔

執行 clear 時,舊 focus board 會歸檔到:

.dsh/focus.md.bak

這意味着清空當前 board 後,舊內容仍會保留在歸檔文件中。

focusBoard 會話投影

插件提供 focusBoard 會話投影,供 UI 使用。

只讀 Web 面板

插件提供實驗性只讀 Web 面板。已覈實資料說明:該面板尚未針對運行中的 web 實例驗證。

安裝與啓用

使用 DSH 插件管理命令安裝:

dsh plugin --profile <profile> add dsh-plugin-focus

安裝後需要重啓 DSH。

典型用法

focus 是模型側工具,常見用法如下。

focus set

用於追加一條固定當前焦點或約束的條目。

適用內容:

  • 當前目標;
  • 硬約束;
  • 必須保持不變的上下文。

focus append

用於追加日誌條目。

適用內容:

  • 決定;
  • 發現;
  • 反轉;
  • 執行過程中新增的重要上下文。

focus get

用於讀取整個 board。

讀取時按最新優先展示,並受 maxChars 渲染上限約束。

focus clear

用於清空 board。

執行後,舊 board 會被歸檔。

配置

插件的配置項可寫在 composition row 的 config 中。已覈實配置項包括:

file
archiveFile
archive
maxEntries
maxChars
autoInject
personaSection
sectionOrder

其中幾個關鍵點如下:

  • file:board 路徑,需要位於 session workspace 內;
  • archiveFile:clear 時的歸檔路徑;
  • archive:控制 clear 是否先歸檔;
  • maxChars:限制渲染或注入長度;
  • autoInject:控制是否自動注入 focus board;
  • personaSection:控制是否註冊 focus:instructions 提示引導章節;
  • sectionOrder:用於提示章節順序。

文件路徑不能逃逸 session workspace。配置路徑如果落在 session workspace 外,會失敗。

適用場景與注意

適合以下使用方式:

1、同一個 session workspace 內長期運行 DSH agent;
2、agent 任務需要保留目標、約束和關鍵決策;
3、希望 focus board 在上下文壓縮後仍然可被模型讀取;
4、需要在同一 workspace 的新會話中繼續讀取已有 focus 條目。

需要注意:

1、focus board 按工作區而不是按會話管理;
2、已有 .dsh/focus.md 時,新會話會讀取現有條目;
3、自動注入在空 board 時不注入,並受 maxChars 限制;
4、只讀 Web 面板仍是實驗性,尚未針對運行中的 web 實例驗證;
5、所有文件訪問通過 host ctx.fs 服務,並且路徑需要 containment-check 到 agent 的 session workspace,不能逃逸;
6、插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。

結尾

dsh-plugin-focus 提供的是 DSH agent 的一塊小型持久記憶板:用 focus set 固定目標與約束,用 focus append 記錄決定、發現和反轉,用 focus get 讀取當前 board,用 focus clear 清空並歸檔。它的核心價值在於把“爲什麼做、不能偏離什麼、已經決定了什麼”放在 session workspace 中,並自動帶回模型上下文。

GitHub 倉庫:

https://github.com/863683348/dsh-plugin-focus

目錄頁地址未提供。

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

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

小夜