前言¶
在 DSH 里跑智能体时,很多真正要办的事并不在代码仓库或任务系统里,而是散落在微信、QQ 群聊的转发、接龙和附件里。人工翻聊天记录成本高,也容易漏掉截止日和报名链接。常见做法是定期导出聊天记录再自己整理,但缺少一个和 Harness 工作区绑定的、可定时刷新且能回链原文的结构化面板。
下面介绍社区插件 dsh-chat-digest(维护者 OverDustD7,目录分类为「记忆」):它在 DSH Web UI 中提供一块面板,并托管一条常驻主 Agent 会话;按日程或手动 Fetch 时,由该会话读取你提供的聊天数据源,提炼「必须做」「可申请」「值得知道」三类条目,写回面板,且每条可链接到原始文件或图片。插件本身不解析聊天内容,也不替你选模型,解析与提炼逻辑由你配置的 pipeline 与路由决定。
这是什么¶
dsh-chat-digest 是发布在 npm 的 DSH profile bundle(当前 package 版本 1.5.1,许可证 MIT)。一句话定位:把聊天日志经 Agent 回合蒸馏成可维护的面板列表;核心零 npm 依赖,可选附带微信/QQ 采集管线。
GitHub 仓库:OverDustD7/dsh-chat-digest。社区目录页:skillhub.cn/plugins/OverDustD7/dsh-chat-digest。DSH 社区插件目录为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,安装与运行均在本地 Harness 进程内完成。
核心功能¶
面板与三类条目¶
面板按示例结构渲染条目,例如待办(含说明、步骤、注意事项与附件链接)、机会与招募、有用信息。条目可带 file: / img: 链接;在 Windows 上可通过系统默认应用打开附件路径(非 Windows 时面板与 API 仍可用,file: 链接会退化为下载)。
常驻会话与采集回合¶
插件拥有面板、每条配置路由对应的一条常驻主 Agent 会话,以及面板与会话之间的 HTTP 契约。流程概要:
- 定时(每日固定时刻)或点击 Fetch;
- 选择一条 route,先探测其 gateway(无响应则不触发回合,采集游标不前进);
- 唤醒或复用该 route 的常驻会话,运行你提供的 pipeline 并读取聊天数据;
- 会话通过
POST写回/chat-feed/api/items,重建面板; - 回合结束时更新 busy 记账、游标;异常结束时会自动重试一次;可按 route 阈值做上下文轮换。
插件负责:面板、常驻会话、回合 bookkeeping、文件端点;不自行解析聊天,不在已配置路由之外选择模型。
默认数据契约(无需先搭管线)¶
全新安装可用三步起步:把聊天导出放进 Agent 工作区下的 inbox(纯文本、Markdown 或 JSON),常驻会话读取 inbox 并写入面板。默认 inbox 路径为 %USERPROFILE%\.dsh\dsh-chat-digest\inbox\(精确路径以 GET /chat-feed/api/state 返回的 state.inbox 为准)。仓库内 examples/inbox/sample.txt 可作样例复制。
也可把导出放到私有 inbox,或通过 HTTP 喂数据;若要自定义措辞或采集器,可将 examples/local/ 复制到自有目录,设置 config.localDir 并编辑「数据来源」相关段落。
可选微信/QQ 管线¶
包内可选附带 WeChat/QQ ingestion pipeline;核心不依赖采集器。配置 wxRoot 后,可解析 inbox 与 <agentCwd>\output 之外的微信附件根目录,供 fileRoots 允许的字节服务与「用默认应用打开」。
自检 API¶
GET /chat-feed/api/state:返回 items、面板来源、route 槽位、采集游标、上下文窗口与限制、最近错误等 JSON 字段。POST /chat-feed/api/collect,body{"dry": true}:只生成回合 prompt 不执行,便于核对 Agent 将收到的指令。- 磁盘上私有 profile 内有
state.json、panel.json。
安装与启用¶
环境要求(来自 README):
| 依赖 | 说明 |
|---|---|
DSH >= 0.1.5-rc.1 |
宿主 |
Node >= 22.5 |
loader 与浏览器端 |
| 已配置的 model route | 无路由时面板与手动写回仍可用,但无法跑采集回合 |
| Windows(可选) | 附件「用默认应用打开」;非 Windows 见上文 fallback |
安装并重启 Web UI(profile 名 web 为 DSH Web UI 默认 profile,若已改名请替换):
dsh plugin --profile web add dsh-chat-digest
安装会自动写入 profile 的 dsh.profile.bundles,不要再手工重复添加同一 loader id,否则会报 duplicate loader entry id。完成后重启 dsh web(宿主半区在 mount 时求值一次)。
本地开发目录可用 link 安装:
dsh plugin --profile web add link:/path/to/dsh-chat-digest
UI 脚本由包内 HTTP 提供(Cache-Control: no-store),改 UI 后刷新页面即可;改宿主逻辑仍需重启 dsh web。
插件以当前 dsh 进程权限运行,安装前请自行审阅 源码 与 MIT 许可证,确认 inbox、私有 profile 与聊天导出路径的可接受范围。
典型用法¶
1. 仅用 inbox 验证¶
- 执行上述安装命令并重启
dsh web。 - 将聊天导出放入 inbox(或复制
examples/inbox/sample.txt)。 - 在 Web UI 点击 Fetch 一次:按钮会经历「探测中…」「采集中…」,成功后面板展开并出现带来源链接的条目。
- 若 gateway 无响应,按钮会闪红,游标与采集时间不变。
2. 配置私有目录与多路由¶
在 profile 的 cordis.patch.yml(推荐 $DSH_HOME/profiles/<name>/cordis.patch.yml,优先级高于包内 patch)中配置,例如:
- id: dsh-chat-digest
config:
localDir: 'C:\path\to\your\private-profile'
wxRoot: 'C:\path\to\wechat\attachments'
routes:
- id: 'free'
label: 'Free'
provider: 'your-provider'
model: 'your-model'
probeUrl: 'https://your-gateway/v1/models'
ctxRatio: 0.75
- id: 'paid'
label: 'Paid'
provider: 'your-other-provider'
model: 'your-other-model'
default: true
localDir 默认为 <DSH_HOME>/dsh-chat-digest,存放 pipeline 配置、output、knowledge、archive 及面板状态等本地数据,更新插件包时通常保留。inboxDir 默认为 <agentCwd>\inbox。未设置 wxRoot 时,仅 <agentCwd>\output 在默认 fileRoots 内可用于附件解析。
3. 干跑回合 prompt¶
POST /chat-feed/api/collect
Content-Type: application/json
{"dry": true}
返回内容为即将发给常驻 Agent 的 prompt,便于调试 pipeline 与 prompt 覆盖。
新装后面板为空是预期行为:在你喂入条目或成功跑完一轮采集之前,不会自动出现内容。
适用场景与注意¶
适合:已在 DSH Web UI 中使用多路由模型;愿意维护聊天导出或可选微信/QQ 管线;希望把群聊里的待办、招募与公告收敛到 Harness 侧边面板,并保留回链原文/附件。
注意:
- 必须自行提供「读聊天并蒸馏」的 ingestion pipeline(或使用 inbox + 内置 prompt 的默认契约);插件只提供面板、会话与 HTTP 契约。
wxRoot、群名、数据库路径等敏感配置写在私有 profile(如pipeline.yaml),不应上传到公共仓库。- README 标明 Windows 为附件打开的最佳体验;Linux/macOS 用户仍可使用面板与 API。
- 社区目录显示该仓库 GitHub 星标为 1(截至资料抓取时),成熟度需自行评估。
结尾¶
dsh-chat-digest 把「群聊里 buried 的待办」变成 DSH 内可定时刷新的结构化面板:宿主管面板与常驻 Agent 回合,模型与解析管线由你的 route 与私有 profile 决定。若你要在 Harness 里长期记住聊天-derived 的行动项,可按官方命令安装,从 inbox 或自有 pipeline 起步。
- 目录页:https://www.skillhub.cn/plugins/OverDustD7/dsh-chat-digest
- GitHub:https://github.com/OverDustD7/dsh-chat-digest