前言¶
在 DeepSeek Harness(DSH)里做智能体开发,日常对话多半走 Chat 类接口;若要调试原始 prompt、续写(FIM 风格文档编辑)或查看每个 token 位置的候选分布,往往需要单独写脚本调 /beta/completions,会话轨迹、取消与 token 统计也要自己接。社区插件 dsh-completion-playground(维护者 Zhichii,分类:模型推理)把上述能力打包成 Agent 模式:每一次 Run 仍是 Harness 里普通的一轮对话,只是模型调用走 DeepSeek 的 /beta/completions,因此 Chat、内置 Trajectory、会话列表、token 记账与取消行为保持不变。
这是什么¶
dsh-completion-playground 是一个面向 DSH 的全屏 raw-prompt 试验场插件。新建会话时可选 Playground Mode;首轮之后出现 Completion 全屏编辑器与 Logprob 探针页,同时保留原生 Chat 与 Trajectory 标签。插件当前版本 0.3.0(MIT),依赖 dsh 版本范围为 >=0.1.7-rc.2 <0.3.0。SkillHub 目录页与 GitHub 仓库见文末链接;目录站点为社区生态,与 DeepSeek / 幻方无官方从属关系。
核心功能¶
Playground Mode 与会话界面¶
- New Session 时,模式选择器提供 Playground Mode;首屏与 DSH 默认一致(模式芯片、工作区选择、常规 composer)。
- 首轮对话之后,出现 Completion 标签:全屏 prompt 编辑器;原 Chat、Trajectory 未改,原生 composer 被接管腾空,避免 transcript 下方再浮一层输入框。
- Run:整份文档作为一条 user message 发出,completion 流式返回并追加到文档;Stop 可取消本轮及上游请求。
- max_tokens 可调(1–4096,与接口文档 4K 上限一致);stop list 支持转义序列,作为请求里的
max_tokens/stop发出。 - Trajectory:每次 Run 都是真实的一轮——一条 user 记录(当时文档快照)加一条 assistant 记录(模型续写内容)。
Logprob 标签¶
Logprob 与 Completion 并列:在同一套 prompt 上再跑一轮普通 turn,但向端点请求 logprobs,把每个位置的候选分布画成概率条。可单独设置 max_tokens 与候选数量(1–20)。该 Run 同样进入 Trajectory;分布挂在 assistant message 上,切换标签或刷新后仍可恢复。
Gemini 模式(同包第二模式)¶
插件 bundle 还注册 Gemini 模式(preset id completion-gemini):在同一 completion 端点之上,用 Gemini 风格 transcript 包装对话,而非 raw 文档编辑。
- 无 system prompt:adapter 不读 system/developer 消息,preset 也不声明 prompt 段。
- 无 tool calls:请求不带
tools字段。 - 内置 few-shot 前缀文件
gemini-prefix.md,可通过 Host 配置geminiPrefix/geminiPostfix/geminiStops/geminiEcho/geminiMaxTokens覆盖。 - 路由在 Host 按会话 preset 固定为
completion-gemini,使用 shipped Chat UI,无需浏览器侧额外标签。
实现要点(便于排查)¶
Host 侧注册 completion-beta adapter,经 /completion-plan-b/max-tokens 等通道传递 max_tokens、stop、logprobs;Browser 侧在 claimed 会话有历史后注册 Completion / Logprob 视图并接管 composer。Logprob 分布经 finish chunk 的 replayState 写入 assistant message 的 source。
安装与启用¶
安装前请自行阅读仓库源码与 MIT 许可证。插件以当前 dsh 进程权限运行,API Key 仅发往配置的上游。
从 GitHub 安装(README 建议 pin tag 以保证可复现):
dsh plugin --profile <your-profile> add github:Zhichii/dsh-completion-playground#v0.3.0
也可在 Settings → Plugins → Install 粘贴同一 spec 并确认。包为纯 ESM(index.js)与浏览器 bundle(client.js),无 build 步骤与 install script,安装时无需 build approval。
配置 API Key¶
Host 通过 Harness 凭证 seam(ctx.credentials)解析 DEEPSEEK_API_KEY,并回退到进程环境变量;值只发往配置的上游。可选环境变量:
| Variable | Meaning |
|---|---|
DSH_COMPLETION_BETA_BASE_URL |
上游 base URL,默认 https://api.deepseek.com/beta |
DSH_COMPLETION_ATTRIBUTION |
发往上游的 User-Agent(白标) |
Gemini 模式相关 YAML 配置示例见 GitHub README 中 completion-plan-b-host 的 config 段。
典型用法¶
- New Session → 选择 Playground Mode。
- 在常规 composer 里写第一条 prompt;模式已 claim 会话,首轮即走 completion 路由。
- 打开 Completion 标签 → 在全屏编辑器中编辑文档,点击 Run(或
Ctrl/Cmd + Enter)。 - 在 Trajectory 中查看该 Run 是否记为一轮完整 turn。
- 需要看 token 候选分布时,切换到 Logprob 标签,设置
max_tokens与候选数后运行。
Stop 序列(单行输入)¶
stop 字段为单行,换行用转义输入,浏览器解码后按真实字符发给上游:
| Typed | Sent as the stop sequence |
|---|---|
\n |
one line feed |
\n\n |
two consecutive line feeds (stop at a blank line) |
\nUser: |
line feed followed by User: |
\t |
one tab |
\\ |
one literal backslash |
未知转义(如 \q)保留反斜杠。最多 16 条序列,空行丢弃。
若使用 Gemini 模式,在模式选择器选 Gemini 模式,按 Chat UI 正常发消息即可;few-shot 与 postfix 行为以 README 与 Host config 为准。
适用场景与注意¶
适合:需要在 DSH 会话上下文里调试 DeepSeek Completion API、续写长文档、对比 stop / max_tokens、可视化 logprobs,且希望 Trajectory 与取消与原生 Agent 一致的场景;也可在同插件内用 Gemini 模式试验无 system、无 tools 的 transcript 包装。
注意:
- 插件声明的 dsh 引擎范围为
>=0.1.7-rc.2 <0.3.0,部署前核对本机 DSH 版本。 - 安装命令须使用资料中的
github:Zhichii/dsh-completion-playground#v0.3.0,未 pin 时 git 安装会跟踪默认分支。 - Completion 与 Logprob 的每次 Run 都会消耗 API 配额并写入 Trajectory;Logprob 候选数越多,请求与展示成本越高。
- 社区目录星标当前为 0,不代表功能缺失,仅反映公开关注度;问题与更新以 GitHub Issues 为准。
结尾¶
dsh-completion-playground 把 DeepSeek /beta/completions 嵌进 DSH 的 Agent 回合模型:全屏 prompt、流式续写、stop/max_tokens 与 logprobs 探针都在同一套 Chat / Trajectory 里完成,另附可选 Gemini 模式 做 transcript 风格对话试验。
- 目录页:https://www.skillhub.cn/plugins/Zhichii/dsh-completion-playground
- GitHub:https://github.com/Zhichii/dsh-completion-playground