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 模式下的开发连续性和代码调试效率。开发者可以在同一会话中保持状态,利用编辑接口快速修正错误,并利用绑定草稿功能管理可复用的代码片段。

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

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

小夜