dsh-ptc-plus:DeepSeek Harness PTC 模式的會話綁定原生平替 REPL

前言

DeepSeek Harness(DSH)的默認 PTC 模式每次執行都會從新環境開始,模型需要重新發送準備代碼,這導致在連續對話中效率較低。dsh-ptc-plus 插件爲 PTC 模式提供了會話綁定的原生平替 REPL,它保留會話中的變量、函數、導入和結果,使後續調用可以直接複用狀態。

安裝與啓用

該插件依賴 Node.js ^22.19.0 || >=24.0.0 和支持 TypeScript PTC 模式的官方 DSH。

安裝到指定的 profile 後,重啓 DSH 並選擇 PTC 模式即可使用:

dsh plugin --profile <profile> add dsh-ptc-plus

核心功能

該插件主要解決 PTC 模式下狀態隔離帶來的重複勞動問題,並提供代碼編輯與工具擴展能力。

  1. 狀態跨調用:保留會話中的變量、函數、導入和結果,讓模型在後續調用中直接複用上一次的計算狀態。
  2. 代碼修訂:通過 edit_run_code 接口僅提交修改內容,插件會重新執行完整的 cell,無需重新發送整段代碼。
  3. 模塊語法支持:支持靜態 import、export 語法,允許在 cell 中直接編寫模塊代碼。
  4. 特殊值保留:能夠保留 undefined、BigInt 以及循環引用等 JSON 無法完整表達的值。
  5. 工具查找與說明:允許在代碼中查找可用工具,並查看參數說明。
  6. 自動摘要補充:自動補充 run_code.description 摘要,避免因缺少摘要導致的校驗失敗。
  7. 自動轉換工具調用:當模型發出合法的頂層工具調用時,插件會自動將其轉換爲 run_code 執行。
  8. 路徑解析:按會話記錄的項目目錄解析文件路徑、模塊和默認子進程目錄。
  9. 源碼定位:將執行錯誤對應到 cell 源碼位置,並在末尾缺少閉合符等特定情況下給出編輯建議。
  10. 界面展示:在 REPL 頁籤展示保留的變量、定義來源和有界值預覽。
  11. 綁定草稿:使用 /binding 編寫草稿,在輸入框上方審閱後保存,啓用後可跨會話使用。
  12. 工作臺:在工作臺運行未保存源碼,擁有獨立的臨時狀態,與 Agent 會話狀態分開。
  13. 狀態恢復:從會話記錄恢復可驗證的狀態,用於跨重啓的連續開發。

典型用法

複用計算狀態

在第一次調用中讀取文件並解析依賴:

import { readFile } from 'node:fs/promises';
const manifest = JSON.parse(await readFile('package.json', 'utf8'));
return manifest.dependencies;

在後續調用中直接複用 manifest 變量,無需重新發送讀取代碼:

return Object.keys(manifest.dependencies);

修訂代碼

當需要修改一處錯誤時,只需提交修改內容:

edit_run_code({ edits: [{ old_string: 'deps.length', new_string: 'deps' }] })

編寫綁定草稿

使用 /binding 命令編寫草稿,在輸入框上方預覽並保存:

/binding new 創建 textTools,清理文本首尾空白,保留內部空格

適用場景與注意

適用場景
適合需要連續編寫和調試代碼的開發者,特別是使用模塊化語法、需要處理特殊 JavaScript 值或頻繁修正代碼的場景。

注意事項
1. 權限要求:該插件面向 danger-full-access 設計,代碼可直接訪問 Node.js 與操作系統,插件不另加沙箱。僅在可接受此權限的環境中使用。
2. 社區性質:這是社區插件,與 DeepSeek 或 DSH 無隸屬、無背書。
3. 恢復限制:無法保證所有狀態都能跨重啓恢復,恢復不會重做或撤銷歷史外部操作。
4. 預覽限制:值預覽有大小和類型限制,無法可靠讀取的對象會顯示“不可讀取”。
5. 初始化狀態:綁定的啓用配置不等於初始化一定成功,具體失敗會在執行結果中說明。

總結

dsh-ptc-plus 通過提供會話綁定的原生平替 REPL,顯著提升了 DSH PTC 模式下的開發連續性和代碼調試效率。開發者可以在同一會話中保持狀態,利用編輯接口快速修正錯誤,並利用綁定草稿功能管理可複用的代碼片段。

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

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

小夜