Passer au contenu principal
L

work-personal-secretary (work-personal-secretary)

liangl1985/work-personal-secretary/modules/work-personal-secretary

Base d'installation et de configuration pour une suite de cinq plugins d'assistant DSH : sonde l'environnement Python, WPS et espace de travail, installe les plugins frères livrés dans le même dépôt et génère la base de l'espace de travail (couche d'instructions, graine de mémoire, compétences, paramètres) ; il apporte aussi sa propre section de paramètres ainsi que sa propre logique d'installation et de vérification côté hôte.

Installer

dsh plugin --profile web add github:liangl1985/work-personal-secretary

Ce plugin se trouve dans le sous-répertoire modules/work-personal-secretary du dépôt.

README

work-personal-secretary

⚠️ 本项目公开迭代已暂停,不再继续更新;后续开发版本暂不公开。详见 MAINTENANCE-NOTICE.md。

工作秘书集成体(DeepSeek Harness 插件集合):面向通用工作者的「工作助手 / 工作秘书」——不是通用聊天插件,而是能替人干活的秘书。 垂直方向:技术售前 / 售后 / 会计 / 律师(四类知识密集、文档密集、流程密集的职业)。 运行架构是总控兼读制(Lead 制):主对话只做拆解·派单·核对·监督·纠正·对外沟通,重活交智能体团队执行(DSH Agent Teams,具名 teammate + 共享任务板;结果即取即弃的一次性任务可用 subagent)。

  • 运行环境:DSH Desktop 2.0.9 / host 运行时 dsh 0.1.5-rc.1(cordis bundle 体系)
  • 设计目标:一个包、一个设置入口、一个面板;子项目可独立开发/验收,再由根层整合
  • 版本:对外发布版 v1.0.0(集成体自身的语义化版本,与子模块版本解耦);当前开发版 1.1.4(按「不发布」收尾,见 CHANGELOG.md)。子模块当前版本以各自 package.json 为准(下表已同步为 2026-09-17 实测值);变更记录见 CHANGELOG.md,发布前逐项核对 RELEASE-CHECKLIST.md

能力总览

#能力落点状态
1强记忆:三级记忆模型(全局永不遗忘 / 热记忆按 TTL 转冷 / 冷归档被用到即转热)+ 转冷预审 + 会话原生注入 + 右侧边栏面板 + Obsidian 镜像modules/dsh-work-memory✅ v1.0.7
2强文档处理:Word(处理 + 比对/红线修订)/ Excel(处理 + 重算 + 透视)/ PPT(制作 + 排版)/ PDF(只读精确提取)modules/dsh-doc-suite(Python 脚本 + DSH 原生技能;宿主半只提供 /doc-doctor)✅ v0.7.12
3专家库:19 位专家 / 6 域(信息安全 4 · 财务 4 · 人力资源 1 · 代码编程 3 · 金融 2 · 通用职能 5);任务命中关键词才注入对口专家(注入上限 写死 4、设置页不提供该项,零命中不注入;身份由记忆承担,默认不常驻);默认注入精简卡(L1,约 0.4–0.7 千字符/位,expertInjectDetail=full 可切回全文),其余派子代理激活modules/dsh-experts✅ v0.5.10
4桌面宠物形象:小秘书两套形象(纯欲乖巧=默认 / 慵懒性感)各 12 动作;插件支持多套装切换 + 「设为默认形象」;动作做到 pingPong 闭环、抠图无紫边/绿边、无背景底色modules/workspace-tokenpet(独立项目模块,MIT;来源致谢见模块 NOTICE)✅ v1.0.1
5强思维链分析(方法 + 在思维过程中以流程图等形式展示)候选评估中,见 00_项目主页/插件关注列表.md #7–#11(首选 dsh-flowglass)⏳ 待评估

子项目

子项目包名状态说明
modules/dsh-work-memorydsh-work-memory✅ 可用(v1.0.7)执行层长期记忆:三级记忆模型 + 转冷预审(到期前先判:保留 / 自然转冷 / 待判断)+ 会话原生注入 + remember/recall/link 工具 + 右侧边栏面板 + Obsidian 镜像。运行时 id 为 work-memory(包名与 id 均已中性化)
modules/dsh-doc-suitedsh-doc-suite✅ 可用(v0.7.12)文档能力:Word 处理+比对(红线修订)/ Excel 处理+重算+透视 / PPT 制作+排版 / PDF 只读精确提取。实现是 Python 脚本 + DSH 原生技能,宿主半只提供 /doc-doctor 自检入口
modules/dsh-expertsdsh-experts✅ 可用(v0.5.10)专家库:19 位专家 / 6 域。默认一位都不常驻:任务命中关键词才注入对口 persona(expertInjectMax 写死 4、设置页不提供该项,零命中不注入),可调配置层范围,>1 提示占 TOKEN)或派子代理(expert_recall 把 persona 内联进 subagent.prompt);未命中则原生处理。来源为成熟开源件压缩/组合改写(MIT 17 · Apache-2.0+MIT 双许可 2 · Apache-2.0 1 · 自撰 1,合计 20),逐条记于 experts/index.json + NOTICE
modules/workspace-tokenpetworkspace-tokenpet✅ 可用(v1.0.1)独立项目模块(源码 / 构建产物 / 文档 / 素材全部自持;由三方插件独立化,对上游只保留致谢,上游 MIT 版权与许可文本保留在模块 LICENSE):不依赖上游仓库、无需应用补丁。① 多形象套装运行时化(宿主扫描 ~/.dsh/data/workspace-tokenpet/skins/,manifest 校验 + 路径穿越防护 + 客户端解析 + blob URL 桥 + 设置面板);② 条带切帧修复(宿主透传 rows,否则客户端回退内置模板的 2 行 → 宠物显示"两个细长人影");③ UI 清理(移除 aura 环绕光圈 / meter 脚底横条);④ 默认形象 + 「设为默认形象」按钮。随包提供三套形象素材(default 上游内置 + 两套自有形象),安装时自动部署到运行时目录(只补缺失、不覆盖;新址缺套装时自旧址复制迁移)

后续候选(待定,需先确认许可证与必要性):多代理团队引擎、思维链可视化(见关注列表)。

安装 / 首次使用 / 卸载与数据留存

安装

前置:DSH Desktop 2.0.9(host 运行时 dsh 0.1.5-rc.1)。

整体安装(推荐:先装入口,再由它引导安装子模块)

git clone https://github.com/liangl1985/work-personal-secretary.git
dsh plugin --profile desktop add <克隆目录>/modules/work-personal-secretary   # profile 名换成你自己的
# 重启 DSH → 设置 → 工作秘书 → 「安装与检查」→ 按需安装各子模块(页面内可指定仓库目录)

dsh plugin 是 pnpm 的代理(在 profile 目录下执行),所以 add 接受目录路径,落盘后 dependencies 记为 file:<目录>;子模块之间零运行时依赖,无需 npm install。

只装某一个子模块(命令形态与上面一致):

dsh plugin --profile <profile> add <模块目录或包名>
子模块额外前置
dsh-work-memory无(零运行时依赖,只用 node 内置模块)
dsh-experts无(零运行时依赖)
dsh-doc-suitePython ≥ 3.10(建议 3.12;Windows 用 py -3)+ WPS Office —— 两者都不会被自动安装,由 /doc-doctor 检测并给出修复命令
workspace-tokenpet无(零运行时依赖:宿主半只用 node 内置模块,客户端为预构建产物;npm install 只在开发/重建时需要)

宿主侧代码改动需重启 DSH 才加载;仅客户端改动刷新页面即可(客户端 bundle 按 revision 缓存,故每次改动都会升版本号)。

首次使用

  1. 让默认约定生效(二选一):把 modules/work-personal-secretary/defaults/global-memory.seed.md 的语言偏好写入全局记忆;或把 modules/work-personal-secretary/defaults/AGENTS.zh-CN.md 复制到会话工作区根目录作 AGENTS.md(指令层,约束力强于记忆层)。
  2. 确认岗位:装了 dsh-experts 时执行 /expert setup <域> 写入「身份专家」;/expert list 查看全部专家,/expert why <任务文本> 看打分理由。
  3. 自检文档环境:/doc-doctor(等价于 py -3 modules/dsh-doc-suite/doctor.py)逐项检测 Python 依赖与 WPS COM 通道。
  4. 记忆库首装为空:人设、偏好与业务记忆由使用者自己写入,包内不含任何记忆数据。

目录模型:一个存储根目录 + memory-data / obsidian-data

「核心配置」页只要求选一个存储根目录,记忆体与知识库各自在它下面新建自己的子文件夹,各自要建立的东西只放在自己的文件夹里 —— 这样两个目录天然是兄弟,不会互相嵌套。

<存储根目录>/
├── memory-data/                        # 记忆体(dsh-work-memory 用)
│   ├── MEMORY.md  USER.md  GRAPH.json  #   全局记忆 / 偏好 / 关联图
│   ├── PROJECTS/  DAILY/  ARCHIVE/     #   项目记忆 / 今日日志 / 冷归档
│   └── (运行后还会有 .access.json / .triage.json / SUGGESTIONS.jsonl 等索引与状态文件)
└── obsidian-data/                      # 知识库(Obsidian vault)
    ├── 🏠 主页.md
    ├── 00_全局记忆/                    #   记忆体镜像(由记忆插件单向同步,勿手改)
    ├── 工具/                           #   预留框架,见下
    ├── <你的业务模块目录>/             #   只登记已存在的,不新建、不猜名字
    └── .obsidian/app.json
  • 两个子目录名由宿主 modules/work-personal-secretary/lib/basedeck.js 的 ROOT_SUBDIR_MEMORY / ROOT_SUBDIR_VAULT 定义,经 GET /setup-state 的 rootSubdirs 交给客户端(客户端不硬编码)。派生值默认只读显示;确有需要时在页面上点「单独指定」改写(改写后不再跟随根目录,可点「跟随根目录」回到派生值)。既有配置若不是这套布局,页面推不出根目录就留空并原样显示你的路径,绝不擅自改写。
  • 知识库只新建、不搬迁:已有知识库不会被自动搬动。要搬,必须由使用者指定文件夹后再逐项对照导入(入口是配置完成后的「导入引导卡」;「列清单 → 勾选 → 写入」的完整流程属后续版本)。
  • 只有记忆体自动迁移:切换记忆库目录时,执行链先迁移旧库(逐文件只补还没有的文件、绝不覆盖,旧目录原样保留,写后逐文件 SHA256 校验,失败回滚),再补建缺失的结构。顺序不可颠倒:反过来先建结构,旧库的 MEMORY.md / USER.md / GRAPH.json / PROJECTS/工作秘书.md 会被判成「同名但内容不同」而全部跳过,等于旧记忆一个都进不来。

工具/ 的三个子目录(技能/ 脚本/ MCP/)目前只是预留框架:本版只建目录与一份 00_工具总览.md,不实现任何同步。也就是说它们现在是空的,需要放什么请先手工放;自动同步属后续版本、未立项。总览文件里写的是预留用途,不是当前行为。

卸载与数据留存

  • 卸载插件:dsh plugin --profile <profile> remove <包名>,随后重启 DSH。
  • 记忆数据不随插件卸载而删除:由「核心配置」页配置后位于 <存储根目录>/memory-data/(Markdown 正文 + 索引/状态文件);未配置时插件回落到默认 ~/.dsh/data/dsh-work-memory/memory/,默认备份目录 ~/.dsh/data/dsh-work-memory/backup/。需要彻底清除时手动删除这些目录。
  • 外部知识库镜像(如已配置)是一份可读的 Markdown 副本,卸载后保留,可继续当资料使用。
  • 桌宠形象素材位于 ~/.dsh/data/workspace-tokenpet/skins/,属使用者自有资产,卸载插件不受影响(模块内 skins/ 是随包副本,运行时用的是部署后的那一份;安装器只补缺失、不覆盖你改过的套装)。旧目录 ~/.dsh/data/dsh-token-pet/skins/ 的数据不删除:装新模块时新址缺哪套就从旧址复制哪套(旧数据保留、新址已有内容不覆盖)。
  • 全部数据本地存放、明文、不联网、无遥测;除使用者自己配置的模型服务外,本集成体不向外发送任何内容。

已验证的安装形态(desktop profile,2026-09-13 快照)

⚠️ 本表是 2026-09-13 的历史快照(当时的安装形态与版本);当前版本以上方能力表与各模块 package.json 为准。

插件版本来源
dsh-work-memory1.0.5本地(file:node_modules/dsh-work-memory)
dshmarket1.45.1npm(插件市场本体,市场界面通常不列自己)
dsh-mermaid0.4.0npm
dsh-doc-suite0.2.0本地(file:<集成体仓库>/modules/dsh-doc-suite)
dsh-experts0.4.0本地(file:<集成体仓库>/modules/dsh-experts)
workspace-tokenpet1.0.0本地(file:<集成体仓库>/modules/workspace-tokenpet;素材随安装部署到 ~/.dsh/data/workspace-tokenpet/skins/)

本机 desktop profile 尚需一次迁移(旧 id dsh-token-pet@0.2.1-lina.1 → 新 id workspace-tokenpet@1.0.0):卸载旧 id → 安装新 id → 确认素材目录;步骤见 modules/workspace-tokenpet/CHANGELOG.md 1.0.0 段。本次未改动本机 profile。

dsh --profile desktop --dump-config 退出码 0(2026-09-14 独立化后复核:退出码仍为 0;本机换 id 之前,组合树中的桌宠条目仍显示旧 id token-pet / dsh-token-pet,迁移后应为 workspace-tokenpet)。

dsh-doc-suite 的硬前置(安装前必须满足,/doc-doctor 会逐项检测并给出修复命令): Python ≥ 3.10(建议 3.12;Windows 一律用 py -3,不要用 python——它可能是 Microsoft Store 别名 stub) 与 WPS Office(比对 / 公式重算 / 透视 / 格式转换全部依赖其 COM,本机实测 ProgID 为 KWPS.Application)。 本集成体不会自动安装解释器或 WPS。详见该子模块 README 第一节。

目录约定

work-personal-secretary/
├── modules/<子项目>/            # 每个子项目是一个可独立测试/打包的单元
│   ├── dsh-work-memory/         #   记忆插件(lib/ + client/ + scripts/regression.mjs)
│   ├── dsh-doc-suite/           #   文档能力模块(Python 脚本 + skills/ + doctor.py)
│   ├── dsh-experts/             #   专家库(experts/ 专家数据 + lib/ 匹配与注入 + 三套自测)
│   └── workspace-tokenpet/      #   桌面形象(独立项目模块:src/ 源码 + lib/ 产物 + client/ 预构建 + skins/ 三套素材)
├── defaults/                    # 随包默认:全局记忆种子 + AGENTS 指令模板(中文)
├── CHANGELOG.md                 # 集成体版本历史(含 v1.1.x 未发布段)
├── .github/workflows/ci.yml     # 仓库级 CI:语法自检 + 遍历子项目跑回归 + 冒烟/共存 + 必需文件自检
├── RELEASE-CHECKLIST.md         # 发布检查清单(发布前逐项打勾)
└── README.md

技能文档的路径约定:modules/dsh-doc-suite/skills/*/SKILL.md 里的命令使用占位符 <DOC_SUITE_SCRIPTS>(= 该模块的 scripts/ 目录),不写死任何作者机器的绝对路径。 解析方式:py -3 <模块目录>\doctor.py --emit-skill-paths(输出 JSON,含 scriptsDir)。

官方桌面版适配(待触发)

官方(deepseek-ai/deepseek-harness → apps/desktop)桌面版尚未发布,目前只有 README。本仓库的适配核对结论、改造清单(P0/P1/P2)与启动清单见 OFFICIAL-DESKTOP-ADAPTATION.md。下一目标:官方桌面版发布后完成技术适配,并向官方仓库发包。

开发与验证

# 记忆模块:回归
node modules/dsh-work-memory/scripts/regression.mjs

# 专家库:回归 / 装载冒烟(mock ctx 真跑 apply)/ 与记忆插件共存契约
node modules/dsh-experts/scripts/regression.mjs
node modules/dsh-experts/scripts/smoke-load.mjs
node modules/dsh-experts/scripts/coexist.mjs

# 语法自检
node --check modules/dsh-work-memory/lib/index.js
node --check modules/dsh-experts/lib/index.js

# 文档模块:环境自检(Python 依赖 + WPS COM)与路径解析
py -3 modules/dsh-doc-suite/doctor.py
py -3 modules/dsh-doc-suite/doctor.py --emit-skill-paths
  • JS 子项目(dsh-work-memory、dsh-experts)零运行时依赖(只用 node 内置模块;宿主 peer 缺失时自动降级),回归与自测脚本可直接执行,CI 不需要 npm install。workspace-tokenpet 的宿主半同样零运行时依赖(lib/ 只用 node 内置模块,client/client.js 为预构建产物)。
  • 文档子模块(dsh-doc-suite)的运行时依赖是 Python 库 + WPS Office,不经 npm;CI 只做语法自检(py -3 -m py_compile),环境就绪性交给使用者本机的 doctor.py。

默认约定(随包发布时同样生效)

这些是产品默认行为,不是可选项;发布/交付件必须做到"首装即适用"。发布前逐项核对 RELEASE-CHECKLIST.md。

  1. 语言:尽量使用简体中文回答与思维——回答用简体中文;推理痕迹也尽量用简体中文(分析、判断、计划、自查都是中文);代码、命令、路径、包名、API/字段名、日志与报错原文、专有名词保留英文,不硬翻。
    • 随包提供两样(都在 modules/work-personal-secretary/defaults/):
      • global-memory.seed.md —— 全局记忆种子(首次使用时写入全局记忆即可,让默认语言生效);
      • AGENTS.zh-CN.md —— 工作区指令模板(复制到工作区根目录;走 DSH 指令层,约束力强于记忆层)。
  2. 总控兼读制(Lead 制)——主对话(对话本体)= 总控 + 读稿人:拆解、派单、核对、监督、纠正、对外沟通,保持轻量;委派优先走智能体团队(DSH Agent Teams:具名 teammate + 共享任务板 + 等齐验收),单一小型任务默认走团队,结果即取即弃的一次性任务可用 subagent。默认授权随包生效:安装本集成体即视为使用者同意长期授权 —— 符合判据的任务直接按团队模式派单、无需逐次询问;使用者可在工作区块外收窄或撤销。成员按岗位常设、跨任务复用(名字永久,单队上限 16),岗位按随包专家库划分(见 defaults/AGENTS.zh-CN.md)。涉密与敏感内容不派(见第 3 条)。
  3. 敏感行业例外(红线)——军工 / 商密 / 烟草 / 数据安全类内容由主上下文直接处理,不派子代理。
  4. 记忆纪律——全局记忆永不遗忘;热记忆按 TTL 转冷;冷归档被用到即转热;转冷前先做预审,拿不准的由助手判定、不整批推给使用者。
  5. 专家库使用流程(装了 dsh-experts 时生效)——默认一位专家都不常驻(身份由记忆层承担;identityExpert 留空即此意);每轮先判断问题归属:命中单一专家 → 按该视角原生处理;跨领域多专家 / 需独立作业 → 派团队成员(结果即取即弃的场景用 subagent)并把 persona 内联进 prompt;未命中 → 原生处理,不硬套专家视角。模板见 defaults/AGENTS.zh-CN.md。
  6. 中立与隐私——发布件不含任何个人化身份(私有助手名、私有称呼、个人账号)、不含私有路径(如 E:\...)、不含记忆数据;个性化只走设置页用户层;本地、明文、不联网、无遥测。
  7. 第三方合规——内置的专家 persona / 角色定义必须来自许可允许再分发的来源(MIT / Apache-2.0 等),逐条记录来源与许可(experts/index.json + NOTICE);无 LICENSE 的一律不收录。

运维纪律(改代码/改配置后必看,2026-09-12 事故沉淀)

  • file: 依赖有缓存:改了子模块源码后,dsh plugin add <路径> 常报 Already up to date 而不同步。可靠顺序:升 package.json 补丁版本 → dsh plugin --profile <p> install --force → 仍不同步就删掉 ~/.dsh/profiles/<p>/node_modules/<模块> 再 dsh plugin add → 逐文件 SHA256 比对源码与副本;
  • 必须重启 DSH:新模块 / 新版本 / host 侧代码改动都要重启才加载(客户端 bundle 另需升版本号,渲染进程按 revision 缓存);
  • 别用 PowerShell 的 Set-Content -Encoding utf8 改 profile 的 JSON 或 ~/.dsh/settings.yaml:它会写 BOM,DSH 读 profile 时 JSON.parse 直接失败(Unexpected token '\uFEFF'),YAML 则报 Nested mappings are not allowed in compact mappings。这类文件一律用 Node 的 fs(明确 UTF-8、无 BOM)写。

许可

MIT(见各子项目 LICENSE)。第三方来源与许可见 modules/dsh-experts/NOTICE 与各模块 README。

Plugins associés