v0.6.1 — 本版主题:文档能力感知——把「DSH 处理办公文档」这个最常踩的坑交给约束,而不是靠模型随机应变;同时统一对外术语、补齐
本版主题:文档能力感知——把「DSH 处理办公文档」这个最常踩的坑交给约束,而不是靠模型随机应变;同时统一对外术语、补齐市场简介。
- feat 文档能力感知:注入前探测宿主的工具注册表,按工具名的能力族前缀(
word_*/excel_*/ppt_*/pdf_*等)判断当前环境有哪些文档能力,再据此注入不同约束。按能力族而非插件名判断,因此不绑定任何第三方实现——dsh-office-tools、dsh-excel-chat、dsh-ppt装了哪个都能识别,一个都不装就退化为边界声明模式 - feat 有工具时的文档任务约束:必须走文档工具,不要用文本读取或 shell 命令解析二进制容器,也不要现场解压 zip、手写解析脚本;顺序是先读后写,没读过目标文件不整份覆盖;交付前必须回读一次生成结果,没有回读证据不许说“已生成 / 已完成”,也不许声称做过未执行的检查
- feat 没有工具时的边界声明:第一轮就如实说明能力边界,不要静默硬解二进制办公文件,并给出替代交付方式(Markdown / CSV / HTML 交付,或安装文档工具插件后重开会话再直接产出文件);用户明确要求「就用命令行或脚本自己试」时照做,但要先说明代价与不确定性
- feat 按轮触发:两条约束都只在文档任务轮注入——请求里出现
.docx这类文件后缀、Word / Excel / PPT / PDF 等格式名,或“写一份报告”这类产物请求时才生效;「查一下官方文档」这类中文泛称不会被误判成文档任务。判据取自冻结的意图文本,轮内稳定,不会像工具结果那样在轮中作废前缀缓存 - refactor 文档能力探测与判据独立为
src/host/documents.ts纯函数模块(detectDocumentCapabilities/probeDocumentCapabilities/buildDocumentDirective),与协议指令同族:返回string | null,null 即不注入 - tests 新增
test/documents.test.ts(16 项):覆盖能力族识别、作用域探测回退、注册表缺失或抛错时的降级、有工具与无工具两条分支、模糊产物请求与「官方文档」泛称的误判防护 - docs 市场简介重写为整个插件的定位:两条主线(约束如何完成任务 / 塑造以何种风格表达)、按需注入的成本取向,不再写成单一功能罗列;关键词补齐协议、任务执行与蒸馏维度
- docs 蒸馏来源写全:素材不再只写聊天记录——小说、剧本、人物设定文档与聊天导出同为蒸馏输入,能力总览与市场简介同步更正
- docs 术语统一:公开文案不再借用外部项目名,统一称「任务执行协议」(README、反思评估提示词、源码注释一致)
- docs 优化清单补记 0.6.0 的系统提示词轮内稳定性,README 安装命令与版本引用更新到 0.6.1
为什么是「探测 + 约束」而不是再写一套文档工具
文档能力的缺口在宿主侧:dsh-attachment 只接受光栅图片、明确不支持通用文件,工具名册里也没有任何 Office / PDF 工具,于是模型面对 .docx 只能当文本读、现场解压或手写解析脚本——慢,而且几乎必然出错。
但这个缺口已经有第三方在补(dsh-office-tools 用零依赖的自研 OOXML 引擎覆盖 Word / Excel / PPT,另有 dsh-excel-chat、dsh-pdf-edit、dsh-ppt 等),插件再写一套只会重复造轮子,还会与现有插件争抢工具名——DSH 在启动时拒绝同名工具注册,dsh-office-tools 与 dsh-ppt 就因此需要 enablePptTools 开关来共存。
所以这一层选择做能力探测与行为约束:不注册任何工具、不新增运行时依赖、不假定任何具体插件存在。用户装了什么就用什么,不装就如实说明边界——这也守住了 Lume 的分层:人设只管表达,协议只管纪律。
安装:dsh plugin add lume-dsh-plugin(指定版本:dsh plugin add github:cayan0x/Lume#v0.6.1)
npm:https://www.npmjs.com/package/lume-dsh-plugin/v/0.6.1