DSH Plugins Marketplace

DSH Plugins

Plugins

/

Development & Infrastructure

/

dsh-suggest-reply

p

dsh-suggest-reply

Manifest valid★ 1

Help me brainstorm — a sidebar tab based on DSH-better-sidebar: use your own written system prompt to generate candidate replies based on the latest AI reply in the main conversation, and click to directly fill the input box.

UI (client)hasBundlePatch

dsh-suggest-reply

帮我想想 —— 一个 DSH Web 插件:在侧边栏里,用你自己写的 system prompt 对「主对话最新一条 AI 回复」生成候选回复(JSON 风格列表),点结果直填主对话输入框。

基于 dsh-better-sidebar 的 ctx.betterSidebar.registerTab 注册一个侧边栏 tab(帮我想想)。

特性

  • 三个输入框,prompt 完全由你掌控:
    1. 系统提示(必填) —— 设定 AI 的身份、任务与风格输出格式(插件原样透传,无内置模板);
    2. 主对话最新消息(必填) —— 自动读取当前会话最新一条已完成的 AI 回复(面板打开期间每 2s 轮询保持最新,手动编辑则暂停刷新不覆盖),也可手改;
    3. 导演要求(可选) —— 故事走向锚点,置于最新消息之前作为用户消息。
  • 单次调用,无重试:每次点生成 = 一次 off-loop 补全;模型返回什么就解析什么,部分输出直接呈现(缺的风格你自己决定下一步),不自动补全。
  • 动态结果行:从模型 JSON 中解析出 [{style, text}] 动态渲染(无固定风格名单、无 checkbox);点击结果文本直填主对话输入框(composer 不可用时降级复制)。
  • 采样参数 + 持久存储:可折叠的采样参数区(温度 / 输出上限 / 推理强度 / 停止序列)透传给模型 —— 即 harness LLM 服务支持的全部采样面;系统提示、采样参数与面板 textarea 高度自动持久化到 DSH 设置(suggestreply 命名空间 → settings.yaml),防抖自动保存(600ms),刷新不丢。settings 服务缺失时插件照常工作(只是不持久化)。
  • 与主会话完全独立:不创建 / 不 fork / 不写任何会话日志,主会话零痕迹;每次生成都是一轮新的,不继承任何上下文。
  • 流式调试(实时思考流):生成期间面板实时滚动 AI 的思考流(reasoning)与结果原文 —— 主对话同款体验,生成过程不再「一片空白」;完成后折叠区保留完整记录(含思考)。
  • 调试信息:每次生成(成功或失败)后,面板底部折叠区展示本次调用的完整 system prompt、用户消息、思考流、模型原始输出与解析结果 —— 排查 prompt 问题零成本直查。
  • 双语:界面文案 zh / en(跟随浏览器语言)。

前置依赖(必装)

dsh-better-sidebar 必须安装(未安装时本插件不激活,无任何 UI/行为),需 0.14.0+:

dsh plugin --profile web add dsh-better-sidebar@latest

安装

# 本地路径
dsh plugin --profile web add <本仓库路径>

# 或发布后
dsh plugin --profile web add dsh-suggest-reply

装完硬刷新浏览器(Cmd/Ctrl+Shift+R)即可看到侧边栏「+」菜单里的「帮我想想」tab(client 改动无需重启 DSH)。

安装到已运行的 profile(例如主 GUI 的 3080)

以主 profile(web,常跑在 3080 端口)为例:

# 0. 确认 better-sidebar 已装(本插件的硬前置,未装先执行上面的前置依赖步骤)
# 1. 装插件(自动追加到 profile 的 bundles + link 依赖)
dsh plugin --profile web add <本仓库路径>

# 2. 重启承载该 profile 的 dsh web 进程(host 半的路由只在启动时加载)
#    PM2 管理的话:
pm2 restart dsh-web
#    非 PM2 则重启你原来的启动命令

# 3. 硬刷新浏览器(Cmd/Ctrl+Shift+R),侧边栏「+」菜单出现「帮我想想」

⚠️ 第 2 步会短暂断连正在使用该 profile 的 Web GUI(页面加载中断,服务起来后刷新即可;会话数据持久,不丢失)。若只想验证 client 半(tab 出现/面板渲染),client 改动硬刷新即可生效;但生成候选依赖 host 路由,host 半未重启前 /suggestreply/api 会 404。

使用

  1. 在侧边栏「+」菜单打开「帮我想想」tab。
  2. 在系统提示框写你的 prompt:AI 身份 + 任务 + 风格输出格式(模型只会看到你写的东西,务必包含 JSON 输出格式要求,如 只输出 JSON {"candidates":[{"style":"风格名","text":"…"}]})。
  3. 主对话最新消息框已自动填入当前会话最新一条 AI 回复;如需手动调整直接改。
  4. (可选)在导演要求框填故事走向锚点,会放在最新消息之前作为用户消息。
  5. 点「生成候选回复」—— 一次调用,结果按模型输出顺序动态列出(风格标签 + 文本)。
  6. 点任意结果文本,直接填入主对话输入框,回车发送即可(composer 不可用时自动降级为复制)。
  7. 模型没出全/出错了?展开底部「调试信息」看原始输出,改你的 system prompt 后再试 —— 没有自动重试,一切由你控制。

工作原理

client (better-sidebar tab)                host (/suggestreply/api)
┌──────────────────────────┐   POST latest    ┌──────────────────────────────┐
│ SuggestPanel             │ ───────────────▶ │ latest: readSurface(sessionId)│
│  系统提示(必填,用户写)     │ ◀─────────────── │  → 回扫最新 assistant/message │
│  主对话最新消息(自动填充)   │    { text }      └──────────────────────────────┘
│  导演要求(可选)            │   POST candidates┌──────────────────────────────┐
│  生成按钮                 │ ──SSE 流式────▶ │ candidates (event-stream):    │
│  实时思考流/原文(生成中)     │    { sessionId,  │  reasoning/text delta 实时推送 │
│  动态结果行(点击填入输入框)  │      system,     │  → 结束 result/error 事件      │
└──────────────────────────┘      directorHint,│  解析(JSON→salvage) 去重(按风格)│
                                  provider,   │  { candidates, debug(含思考) }  │
                                  model }     │                                │
  • 台词来源:最新消息框未被手动修改时,生成请求不携带该文本 —— host 每次现读会话日志,保证用的是最新一条(硬回退方案:编辑过则你的内容为硬输入)。
  • 必填校验:system prompt 与最新消息均不得为空(host bad-request / no-assistant-reply 硬错误;面板按钮在任一为空时禁用)。
  • 单次调用:无重试机制 —— 模型输出解析一次;解析失败或输出为空时返回明确错误(带调试现场),由你调整 prompt 后重试。
  • 采样与持久化:温度 / 输出上限 / 推理强度 / 停止序列 = harness GenerateOptions 的全部采样面;payload 合法值优先、配置兜底(resolveSampling,非法值永不达模型)。配置经 DSH settings 服务读写(schemastery schema + revision 乐观锁,冲突 409),config.get / config.update 两个 API 方法。
  • 解析容错:剥 markdown 围栏 → 整体 JSON.parse;截断时退到正则 salvage 扫描,容忍结尾引号缺失;按风格去重(先到先得)。
  • 模型渠道:用当前会话的模型(客户端 sessions.models 解析,host 校验必填)。

开发

corepack pnpm install     # pnpm 11.7.0(packageManager 固定)
corepack pnpm typecheck
corepack pnpm test        # vitest 纯函数单测
corepack pnpm build       # tsc 声明 + tsdown 双产物(lib/index.js + lib/client.js)

已知限制与后续

  • 无内置 prompt 模板:系统提示完全由用户撰写 —— 插件只透传;之前内置模板提供的「身份不串」「风格互斥」等防护随之成为用户 prompt 的责任(调试模式兜底)。
  • 采样面即 harness 面:只有温度 / 输出上限 / 推理强度 / 停止序列 4 个;top_p / penalty / seed 不在统一 LLM 服务里,不走旁路。
  • 语言跟随:当前按浏览器语言切 zh/en;跟随 DSH 设置里 locale.preference(locale service)是后续项。
  • 直填是替换语义:点结果会覆盖输入框当前草稿;composer 服务缺失的部署降级为剪贴板复制。
  • 免 DSH 源码:全程只消费 DSH 公开服务(webServer / sessionQuery / llm / connection)+ better-sidebar 服务,零官方源码改动。

License

MIT

Versions

Latest versionPublishedSize
0.1.0——
0.1.1——

Comments

Loading…

From the same category

awesome-dsh-plugin

by awesome-dsh-plugin

A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表

Development & Infrastructure

★ 18.3k

CC0-1.0

Python

Oct 10, 2026

Index only — not installable

by 0xsline

DeepSeek Harness (DSH) ecosystem: curated plugins, tools, and infrastructure from dsh-external/hub and the public dsh-plugin topic.

Development & Infrastructure

★ 1.2k

CC0-1.0

Python

Oct 10, 2026

Index only — not installable

by pax-beehive

Open-source CLI, schemas, resolver, and DSH agent tools for DSH Plugin Hub

Development & Infrastructure

★ 450

MIT

TypeScript

Oct 6, 2026

Index only — not installable

by xiajiajun516

DeepSeek Harness (DSH) backup & restore plugin — export, import, migrate and sync your complete DSH configuration, plugins, MCP servers, skills and workspace. One-click migration to another machine.

Development & InfrastructureManifest valid

★ 176

MIT

TypeScript

Oct 8, 2026

dsh plugin --profile web add dsh-config-manager

by yjh051108

推荐组件(非必须):DeepSeek Harness 运行时注入器;已随 dsh-routing-suite 单仓库化保留,本仓库继续维护/发布。

Development & InfrastructureManifest valid

★ 164

TypeScript

Sep 18, 2026

dsh plugin --profile web add @dsh-external/dsh-super-injector

by jigjoy-ai

A CLI that turns a goal into a pull request - and a sandbox for testing concurrent AI coding agents on the Mozaik runtime.

Development & Infrastructure

★ 124

MIT

TypeScript

Oct 2, 2026

Index only — not installable