deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
DSH Web 的“预测回复”插件:AI 回复结束后,生成几条用户下一步可能会发送的消息候选,并将它们显示在聊天输入框上方。点击候选只会将文本填入输入框,不会自动发送。
AI 完成本轮回复
-> 插件创建一个只使用官方事件的内部 Agent Session
-> 内部 Agent 以零工具、完整 persona 根据近期对话生成候选
-> flush 并归档内部 Session,把 UI 状态写入插件自有 storage-domain sidecar
-> Web 在 conversation.input.dock(输入框上方)显示气泡
-> 点击候选:inputActions.setDraft(text)
-> 用户自行编辑或点击发送
conversation.input.dock,位于 DSH 的消息输入卡片上方;不会放到输入框下方的 conversation.composer.dock。request/header 中实际使用的 provider/model,再回退到 Agent 默认路由;也可通过 suggestionProvider + suggestionModel 显式覆盖。关闭开关后不再运行该 Agent。KNOWN_SESSION_EVENT_TYPES。生成过程完整记录在内部官方 Agent Session;候选的 loading/ready/cleared 状态保存在插件拥有的 suggested_replies_state domain,因此卸载插件后父 Session 仍能由原版 DSH reader 恢复。{ createdAt, cwd };页面刷新或 Host 重启后仍可恢复当前候选,复用同一 id 的另一条 Session 不会读到旧状态。dsh plugin --profile web add @anionex/dsh-suggested-replies
dsh plugin --profile web add /absolute/path/to/dsh-suggested-replies
安装或更新后,重启正在运行的 dsh web 服务,并在浏览器硬刷新页面。新建或重新打开一个会话后进行验证。
Web 设置页中的“下一步建议”分区提供 enabled 总开关。它写入 $DSH_HOME/settings.yaml 的 suggested-replies 区域,下一轮立即生效。
其余部署参数在 cordis.patch.yml 或 profile overlay 中配置:
| 字段 | 默认值 | 说明 |
|---|---|---|
enabled |
true |
是否生成候选;关闭后无辅助模型调用。 |
suggestionCount |
3 |
每轮候选数量,范围 2-4。 |
contextMessageCount |
4 |
传给辅助模型的最近可见消息数,范围 2-6。 |
maxSuggestionChars |
160 |
单条候选保留的最大字符数,范围 32-300。 |
maxTokens |
384 |
辅助调用的最大输出 token,范围 64-1024。 |
timeoutMs |
15000 |
辅助调用最长时长(毫秒),范围 1000-30000。 |
suggestionProvider |
未设置 | 可选:显式指定辅助调用 provider;省略时跟随当前会话模型。 |
suggestionModel |
未设置 | 可选:显式指定辅助调用 model;必须与 suggestionProvider 同时提供。 |
示例 overlay:
- patch:
- id: suggested-replies
config:
suggestionCount: 4
maxSuggestionChars: 120
timeoutMs: 10000
suggestionProvider: deepseek-official
suggestionModel: deepseek-v4-flash
export DSH_SOURCE=/path/to/deepseek-harness
pnpm install --no-frozen-lockfile
pnpm run links
pnpm run typecheck
pnpm run test
pnpm run build
pnpm pack --dry-run
提交前的独立 Profile 验证:
TEMP_DSH_HOME="$(mktemp -d)"
DSH_HOME="$TEMP_DSH_HOME" dsh plugin --profile web add /absolute/path/to/dsh-suggested-replies
DSH_HOME="$TEMP_DSH_HOME" dsh --profile web --dump-config
实际页面验收要点:
[data-composer-card] 上方。本项目是独立实现,并明确致谢 dsh-external/dsh-auto-blame 的双端 Web 插件组合思路。
本项目重新实现了产品语义、内部 Agent、sidecar 状态、RPC 长轮询、提示词、过期结果处理、输入框上方布局和“只填入不发送”的交互;未包含该项目的源代码、图像或品牌资产。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。