dsh-cot-anchor:工具邊界結論迴流與生成中途軟切

前言

在 DSH 裏跑多步智能體任務時,常見一類退化:模型在思考鏈裏反覆重新推導已經得出的結論、把工具調用寫成純文本、原地重複同一段話,或輸出無意義的遞增數字流。這類問題往往發生在單次生成流內部,下一步起手時上下文裏並沒有把「已經確立的結論」顯式留在模型眼前,於是每輪工具往返後又要從頭推一遍。

社區插件 dsh-cot-anchor(維護者 JiewiW,分類:記憶)針對的就是這一痛點:在工具結果返回後,從上一段思考中摘出已成立結論並插回上下文;同時在生成過程中按本地規則識別打轉、重複、僞工具調用等形態,必要時軟切本次請求,讓回合從斷點續跑。它不替代跨步驟的步數治理——那屬於姊妹插件 dsh-step-governor 的職責。

這是什麼

dsh-cot-anchor 是 DeepSeek Harness(DSH)插件,一句話定位:思考錨點——從模型上一段思考中提取已確立結論,在工具結果後注入,減少重複推導;並可識別打轉與僞工具調用。

插件以當前 DSH 進程權限運行;安裝前請自行查看倉庫源碼與許可證。

核心功能

結論迴流(默認生效)

每次工具結果返回後,插件從最新思考中摘出已成立的結論(默認最多 3 條、每條 ≤ 220 字),以 user 角色追加在工具結果之後、下一次請求之前,並尾部寫入會話日誌,不改寫已有內容,因此不會打穿前綴緩存。

工作流可以概括爲:

模型思考 → 工具執行 → [插件] 摘出已成立的結論插回上下文 → 下一步思考
                                  ↑
                            只在工具邊界注入

結論由規則從思考文本中摘句得到;入池前會剔除純話語標記句與路線意圖宣告句,但不會從模型輸出裏刪除 Wait / Actually 等轉折詞,只避免它們被當成結論回灌。

生成中途打斷(軟切)

生成過程中每 32 個字符檢查一次;發現打轉、原地重複、僞工具調用、數字流等形態時,可立即切斷本次請求,把已生成部分作爲正常消息落盤、排好結論錨點,讓回合從斷點續跑。

軟切依賴 DSH 內核的 agent/soft-cut 鉤子:僅 0.1.5-rc.1 / rc.2 開箱可用;0.1.5-rc.3 起內核移除該鉤子後能力會靜默失效——以設置頁顯示爲準,不要憑開關是開就認爲在生效。新版內核可用隨包工具移植軟切機構(見下文「兼容性與軟切內核」)。

兩類機制都在單步邊界內生效:軟切只看當前一次生成流,進入下一步計數歸零;治得了單流內冗餘,治不了跨十幾步的折返跑。

安裝與啓用

下面使用 README 中的官方安裝命令(需替換 <你的profile>):

dsh plugin --profile <你的profile> add github:JiewiW/dsh-cot-anchor#v0.2.4

重啓 DSH 實例後,設置頁出現「COT 錨點」標籤即表示插件已加載。結論注入無需任何配置;軟切是否需要額外內核支持,以設置頁提示爲準。

peer 依賴(來自 package.json):@deepseek-ai/dsh 爲 >=0.1.5-rc.1 <0.2.0 || >=0.2.0-rc.1 <0.3.0-0。

典型用法與設置要點

多數場景保持默認即可。設置頁「COT 錨點」共 61 項、分組展示;下面只列常用項。

總開關

鍵 默認 說明
enableToolInject 開 工具結果後注入結論錨點,主要價值所在
enableSoftCut 開 允許生成中途打斷;內核不支持時自動無效
enableExecDisciplineBlock 開 命令執行紀律提醒;自 v0.2.1 起走運行時上下文快照固定段(每輪一次),不再按工具條數線性堆疊

軟切判定(可逐項關閉)

全部關閉時插件只做結論注入。五項對應:enablePseudoTool(僞工具調用文本)、enableRepeat(逐字節重複)、enableChurn(措辭不同的「重新分析」)、enableTransition(轉折句,易誤判)、enableNumberRunaway(長數字流)。

打斷太頻繁時:先關 enableTransition,或調高如 churnMinHits(默認 18)等閾值。自 v0.2.4 起,轉折句判定帶 softCutGapThreshold(默認 80),用於減少「小結論 + 後續分析 + 轉折宣告」被攔腰切斷。

錨點內容

鍵 默認 說明
minReasoningChars 250 思考短於此長度不提取
maxPoints 3 最多幾條結論
maxPointChars 220 單條結論字數上限

可選 enableLlmRefine(默認關):每個助手回合多一次小模型調用提煉結論;provider/model 留空則跟隨當前會話。CoT 採集相關項(enableHarvest 等)默認全關,開啓會在本地留存思考文本,啓用前請評估隱私。

成本與能力邊界

默認僅結論注入時:每個工具結果後一條短消息,上界約 660 字符(3×220),無額外模型調用;注入塊隨上下文進入後續請求,在每一步都會佔用少量窗口,但尾部追加不改寫前綴,除首現一次外可參與緩存命中。README 在約 924 萬 token 的長會話上給出注入佔比約 0.23% 量級的實測口徑說明,可在自有會話日誌上按 source.summary 爲 cot-anchor:* 的消息復算。

軟切爲純本地字符串計算,零 token;可能增加少量回合數,且不減少回合步數。模型有時自知空轉仍停不下來——注入前提是模型會讀上下文並照做。

隱私方面:結論注入與軟切判定均在本地完成;僅 LLM 提煉會把思考文本發往所配 provider(留空則跟隨當前會話)。

兼容性與軟切內核

能力 支持的 DSH 版本
結論注入、設置頁 0.1.5 起
生成中途打斷(軟切) 僅 0.1.5-rc.1 / rc.2 開箱可用

若設置頁顯示「當前內核沒有掐斷能力」,結論注入不受影響。需要軟切可停留在上述 rc 版本,或使用隨包移植工具:

node node_modules/dsh-cot-anchor/tools/apply-softcut-port.mjs --check   # 查看狀態
node node_modules/dsh-cot-anchor/tools/apply-softcut-port.mjs           # 應用

移植後重啓實例;完整步驟與風險見倉庫內 docs/softcut-kernel-port.md。

適用場景與注意

適合:多工具往返、單流思考鏈冗長、反覆「重新發現」同一結論的 DSH 智能體任務;希望在不改模型的情況下用上下文工程減輕重複推導。

不適合或需配合其他手段:跨步驟折返跑、步數與上下文膨脹治理——請結合 step-governor 等插件或工作流設計。

常見問題:模型好像沒收到提醒時,確認 enableToolInject 已開且思考長度超過 minReasoningChars。

結尾

dsh-cot-anchor 把「已確立結論」固定在工具邊界,並可選地在生成流內軟切明顯退化,面向的是單流 CoT 冗餘而非全能長任務優化。DeepSeek Harness 生態以「一切皆插件」爲理念;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

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

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

小夜