前言¶
DeepSeek Harness(DSH)的插件生态鼓励「一切皆插件」。在智能体开发中,两个常见痛点是:一是和模型对话时,方向容易模糊,动手前没问清楚;二是多会话并行时,不知道别的会话在发生什么,需要来回切窗口。dsh-attention-center 是一个工作流类插件,把「先问清楚、再动手」和「跨会话提醒」组合在一起,并让 PTC 预设在 run_code 上跑,同时与 dsh-ops 取证工具对齐。
这是什么¶
dsh-attention-center 是一个安装包,包含三块能力:
| 能力 | 挂在哪 | 干什么 |
|---|---|---|
| 刨根问底 · Inquiry(PTC) | preset-inquiry |
新会话选这个模式:先问 20~30 个问题把方向钉住,再动手。跑在 PTC 上——模型只看到 run_code + 自动生成的 SDK |
| 注意力中心 | attention-core + client.js |
右下角运行中计数、失败/完成提醒、跨会话答题弹窗(不用切过去)、可选手机推送 |
| OPS / PTC 对齐 | 预设内的 tool-presentation |
PTC 下 dsh-ops 的 ops_* 工具全部降为 SDK 绑定:一次 run_code 里并发取证,中间结果不进上下文 |
核心功能¶
1. 刨根问底 · Inquiry(PTC)¶
新会话选预设「刨根问底 · Inquiry」,或在任意会话敲 /pao、/pau、/inquiry(/pao 补充文字 算种子)。
- 先猜方向给 3 条 → 每轮 6 题、一题一页、可跳过可自填,推荐项排第一并带
(Recommended) - 每轮收尾复述三栏:【已确认】【我的推断】【还差的】
- 收口出《需求简报》存
~/.dsh/inquiry/,你点头才动手 - 你说「够了 / 直接做」立即收口
提问是 timed 模式:5 分钟内答完直接拿答案;超时返回 pending,题还留着、答案随后作为用户消息回来(PTC 下 run_code 有执行期限,阻塞式等待被打断可能丢题)。
2. 注意力中心¶
| 场景 | 表现 |
|---|---|
| 有会话在跑 | 右下角常驻气泡「运行中 N」(点开看是哪几个,点一下跳过去) |
| 某轮失败 | 失败卡:会话名 + 错误摘要;打开 / 重试 / 忽略 |
| 某轮完成 | 完成卡:哪个会话完成了 + 「看结果」 |
| 别的对话在等你答题 | 居中弹窗,题目从上往下排,就地选/填/提交,不用切会话 |
| 没操作 | 默认 10 分钟后自动提交推荐项(可切 5/10/20/30/60 或永不);气泡上有 ⏳N分 倒计时 |
| 人不在电脑旁 | 手机推送:PushPlus / 企业微信群机器人 / Qmsg / Server酱 / webhook |
自动选择有三道闸,专治「没弹窗却自己选了」:
- 只对弹窗真正显示过的题生效——没显示过就一直等;
- 计时从「第一次显示给你看」开始,不是从问题创建开始;
- 自动提交后留一张黄边卡片:哪个会话 + 每题选了什么 + 打开会话 / 知道了。
3. PTC × OPS¶
同一个任务的两条路:
原生:model → ops_glob → 结果进上下文
model → ops_grep → 结果进上下文
model → ops_inspect ×3 → 三份结果进上下文 (5 次往返)
PTC:model → run_code {
const files = await tools.ops_glob({ pattern: ['**/*.md'] })
const heads = await Promise.all(files.slice(0, 3).map((f) =>
tools.ops_inspect_local_file({ file_path: f })))
return heads.map((t) => t.slice(0, 20)) // 只有这 20 行进上下文
} (1 次往返)
dsh-ops 的 README 原话:「PTC 模式经 SDK 调用底层工具,权限门不变」——工具还在、权限门不变,变的只是「怎么调」。
安装与启用¶
plugin_manager install_bundle target = github:zxh21149-commits/dsh-attention-center
装完重启 DSH(Host 半要注册投影、技能与预设);客户端半刷新页面即可。
依赖:DSH ≥ 0.2.0;PTC 需要宿主侧 ptc-runtime(官方发行版自带,本包会覆盖它的 timeoutMs)。dsh-ops 是可选的第三方插件(Rust 实现、Windows x64),装了就会以 SDK 绑定出现在 run_code 里;没装也能跑,取证换成原生 bash / 文件工具。
配置¶
attention-core(插件页可编辑)¶
| 键 | 默认 | 说明 |
|---|---|---|
notifyProvider |
none |
none / pushplus / qmsg / wecom / serverchan / webhook |
notifyPushplusToken / notifyWecomWebhook |
空 | 对应渠道凭据(别贴聊天,明文存本机) |
notifyOnError / notifyOnQuestion / notifyOnDone |
true |
失败 / 提问超时 / 完成是否推 |
notifyQuestionTimeoutMinutes |
5 |
提问多久没人答就推一次 |
notifyMinRunSeconds |
300 |
完成推送的运行时长门槛 |
notifyTestOnStart |
false |
开一次立刻发测试消息,验完关掉 |
推送只在电脑开机 + DSH 在运行时发生;睡眠不推。
配置也可以写在~/.dsh/attention-notify.json(文件优先,fs.watch热载,保存即生效)。
inquiry-core¶
rounds(默认 4)、questionsPerRound(6)、language(zh)、questionBankPath(自定义题库)、briefDir(~/.dsh/inquiry)、autoLoadSkill。技能正文按这些配置生成,改完即重建。
ptc-runtime(全局)¶
本包把 run_code 默认期限调到 330000ms、上限 600000ms:提问要等 300s,不抬期限的话 run_code 会先在默认 120s 掐断它。这一条对所有 PTC 预设生效,不想要就删掉 patch 里那一行。
从旧包迁移¶
之前是三个独立东西(dsh-inquiry-mode 包、dsh-attention-center 本地插件、手写的 profile patch):
- 卸载旧的:插件管理里移除
dsh-inquiry-mode与旧的dsh-attention-center(否则技能 / 命令 / 覆盖层会重复注册); - 装本包;
- 删掉你 profile
cordis.patch.yml里手写的preset-inquiry/ptc-runtime覆盖(本包自带,留着会互相覆盖); - 重启 DSH,开新会话选「刨根问底 · Inquiry」。
回退¶
删掉 cordis.patch.yml 里本套件插入的行 → 重启。客户端半刷新页面即卸。
测试与验证¶
node --test # 41 passing
| 类别 | 内容 | 结果 |
|---|---|---|
| 单元测试 · 注意力 | 15 条:失败投影折叠、通知事件折叠与去重、5 个推送渠道的请求体、提问超时、完成推送门槛 | ✅ 15/15 |
| 单元测试 · 刨根问底 | 26 条:配置边界、题库校验与回退、技能正文生成、/pao 命令 followup、apply 组装 |
✅ 26/26 |
| 服务端渲染探针 | 六场景:答题卡、失败卡(打开/重试/忽略)、失焦不弹、缺 slot props 不崩、对象型 status 兼容、完成卡;另断言气泡出现 ⏳10分 |
✅ 全绿 |
| 真实交互 | 使用者本机实测跨会话答题弹窗:能选、能提交、能续上原对话 | ✅ |
| 真实失败链路 | 会话 59a3953c 的 upstream request timed out → 失败卡正确出现 |
✅ |
| 远程推送 | 渠道请求构造有单测;未配凭据,真机没收到过消息 | ⚠️ 未验证 |
| PTC 预设 | 配置与 ptc-runtime 期限已写入;尚未在真浏览器跑一轮确认工具面板只剩 run_code |
⚠️ 未验证 |
| 自动选择记录卡 | 三道闸逻辑与渲染已测,真触发一次「超时自动提交」尚未发生 | ⚠️ 未验证 |
「未验证」三项是发布时的真实状态,不粉饰:它们需要凭据 / 真浏览器 / 真实空闲超时才会出现。
能做到什么¶
- 把模糊想法问成方案:4 轮 × 6 题,每题给可选项 + 自填;每轮复述【已确认】【我的推断】【还差的】;收口《需求简报》。
- 不切对话也能答题:任何会话在等你回答时,弹窗里就地选、就地提交。
- 知道别的会话在发生什么:运行中 N、失败卡(打开/重试/忽略)、完成卡(看结果)。
- 自动选择不背着你:只对弹窗真正显示过的题生效,计时从首次显示起算,事后留可归因的记录卡。
- PTC 取证:一次
run_code里并发读文件 / 搜仓库 / 看目录,中间结果不进上下文,只返回要用的那几行。 - 手机提醒(可选):PushPlus / 企业微信群机器人 / Qmsg / Server酱 / 通用 webhook,五选一。
已知限制¶
| 限制 | 说明 |
|---|---|
| 远程推送要自备凭据 | 仓库不带任何 key;不配就是纯本地提醒 |
不打包 dsh-ops 本体 |
它是第三方 Windows x64 原生插件(Rust 二进制);不装照样能用,取证换成原生 bash/文件工具 |
PTC 的等待受 run_code 期限约束 |
本包把提问设 300s、run_code 默认期限设 330s;自行改动时两者要一起改 |
/compact 无重试 |
DSH 自身行为,与本插件无关;撞上网络窗口失败就再按一次 |
| 客户端刷新、Host 重启 | client.js 改动刷新页面即可;Host 行 / 预设 / 技能的改动要重启 DSH |
许可¶
MIT。
生态背景¶
DSH 理念是「一切皆插件」。社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。
- 插件目录页:https://www.skillhub.cn/plugins/zxh21149-commits/dsh-attention-center
- GitHub 仓库:https://github.com/zxh21149-commits/dsh-attention-center