xiaobao-dsh-employees · 钉钉个人号 AI 校宝数字员工
把 你的钉钉个人账号(通过 DWS 登录)接入 DeepSeek Harness:在群里被 @ 或被引用时像同事一样接活、回复;能用工具干活、主动汇报、发文件。日报/周报等周期汇报直接用 DSH 自带的「自动化任务」配合 dingtalk_send_message 工具完成。
- 群消息全量归档作为上下文,但只有被 @ 本账号或引用了它的消息才会处理与回复;单聊默认直接响应。
- 左侧栏 校宝数字员工 打开独立配置页面,包含「群与工作区」「员工设置」「运行与记录」。
- 每个群 / 每个单聊对象各绑定一个 DSH Session;群可通过「打开文件夹」指定独立工作区,未指定时使用按会话隔离的默认目录。
- Agent 工具(对 Host 里所有会话可用,包括自动化任务):
dingtalk_send_message、dingtalk_send_file、dingtalk_group_history、dingtalk_list_groups。 - 长任务支持后台完成后引用回复,恢复与失败重试的当前限制见文末。
- 默认只收不发(
writesAuthorized=false),确认无误后再在设置页开放外发;所有外发都记入发件箱。
环境要求
- Windows / macOS / Linux,Node.js ≥ 24
- DSH
>=0.2.1-rc.2 <0.3.0;已在0.2.1-rc.2验证安装 dwsCLI 已安装并用目标钉钉账号登录(dws auth status显示authenticated: true)
一键安装
安装包已包含构建好的配置页面,无需克隆项目、构建源码或手工修改 profile。安装脚本不安装 DWS,也不替你登录钉钉;先完成上面的环境准备。
Windows:安装到 DSH Desktop
先正常打开一次 DSH Desktop 完成初始化,再完全退出应用,在 PowerShell 执行这一行。脚本会自动查找标准安装位置中的 DSH Desktop,也支持 PATH 中的 dsh:
irm https://raw.githubusercontent.com/wangsunlight/xiaobao-dsh-employees/v0.1.3/install.ps1 | iex
脚本源码:install.ps1。也可以先下载查看,再运行 ./install.ps1 -Profile desktop;自定义安装位置可传 -DshPath '完整的 dsh.cmd 路径',-DryRun 只显示安装目标。
命令行:跨平台单条命令
在能调用 dsh 的终端执行。Desktop 须使用 Desktop 自带的 CLI,先初始化并完全退出应用;Windows 无需配置 PATH 时直接使用上面的 PowerShell 安装方式。
Desktop:
dsh plugin --profile desktop add --ignore-workspace-root-check https://github.com/wangsunlight/xiaobao-dsh-employees/releases/download/v0.1.3/xiaobao-dsh-employees-0.1.3.tgz
Web:
dsh plugin --profile web add --ignore-workspace-root-check https://github.com/wangsunlight/xiaobao-dsh-employees/releases/download/v0.1.3/xiaobao-dsh-employees-0.1.3.tgz
安装成功后重启 DSH,打开 左侧栏 校宝数字员工。初次安装时,接收与外发均关闭;已有设置继续保存在本机数据目录中。
从 GitHub 源码安装
仓库同时跟踪 lib/client.js 预构建产物,因此指定版本的 GitHub 安装也不需要执行构建脚本:
dsh plugin --profile desktop add --ignore-workspace-root-check github:wangsunlight/xiaobao-dsh-employees#v0.1.3
更新与卸载
更新时,将上面安装命令中的版本号换成新 Release 的版本,重新执行并重启 DSH。插件配置和聊天归档保留在 $DSH_HOME/xiaobao-employee/。
dsh plugin --profile desktop remove xiaobao-dsh-employees
Web 用户将 desktop 替换为 web。卸载只移除插件依赖;本机数据目录不会被删除。
本地开发安装
git clone https://github.com/wangsunlight/xiaobao-dsh-employees.git D:\xiaobao-dsh-employees
cd D:\xiaobao-dsh-employees
pnpm install
npm run check # 构建 lib/client.js + 运行测试
把插件加入 DSH 的 web profile(%USERPROFILE%\.dsh\profiles\web):
dsh plugin --profile web add --ignore-workspace-root-check file:D:/xiaobao-dsh-employees
或手工编辑 %USERPROFILE%\.dsh\profiles\web\package.json,在 dependencies 加入 "xiaobao-dsh-employees": "file:D:/xiaobao-dsh-employees",在 dsh.profile.bundles 末尾加入 "xiaobao-dsh-employees",然后在该目录执行 pnpm install。
重启 dsh web,打开 左侧栏 校宝数字员工。
DSH Desktop
Desktop 使用 %USERPROFILE%\.dsh\profiles\desktop(已验证内置 DSH 0.2.1-rc.2)。先初始化并完全退出 Desktop,在能调用其自带 CLI 的终端执行:
dsh plugin --profile desktop add --ignore-workspace-root-check file:D:/xiaobao-dsh-employees
或手工:在 profiles\desktop\package.json 的 dependencies 加 "xiaobao-dsh-employees": "link:D:/xiaobao-dsh-employees"(link: 直接指向源码目录,改代码后重启即生效),在 dsh.profile.bundles 末尾加 "xiaobao-dsh-employees",然后在该目录执行 pnpm install --config.confirmModulesPurge=false。重启 DSH Desktop。
本仓库的
cordis.patch.yml只提供安全默认值(接收与外发均关闭)。群 ID、职责、账号等都保存在本机$DSH_HOME/xiaobao-employee/,不要写进仓库。
首次配置(先收后发)
- 运行与记录 → 运行状态:确认 DWS 显示"已登录"且是预期账号。
- 员工设置:填名字/别名、职责、默认工作目录(可留空)、Agent 预设与模型(可留空跟随 Host 默认)。
- 运行与记录 → 开关:勾选"接收钉钉消息"并保存,保持外发关闭。单聊默认响应所有人,需要时先在员工设置里限制允许人员或关闭单聊。
- 群与工作区 → 常驻群:搜索或列出我加入的群 → 添加 → 填写"本群职责",点击「打开文件夹」选择该群的工作区并保存。此时在群里 @你的账号,可在 DSH 会话列表看到
钉钉群 · xxx会话产生回复,发件箱里出现suppressed记录(未真正发送)。 - 确认回复质量后再勾选"允许自动回复与主动发送"。再次 @ 即可在群里收到引用回复。
按群选择工作区
- Desktop 的「打开文件夹」使用 DSH 自带的系统文件夹选择窗口;Web 使用 Host 提供的目录选择能力。取消选择不会修改配置。
- 指定文件夹后,该群会直接在这个目录工作,并在下一次处理消息时关联到 DSH 的对应工作区,不额外创建群子目录。
- 更换文件夹并保存后,下次收到消息会新建会话;原会话及其文件保留,正在执行的任务继续使用原工作区。目录不再可访问时会报错,不会回退到其他目录执行任务。
- 「使用默认」恢复到默认工作目录下的群专属子目录。单聊仍按会话使用独立子目录;多个群可以选择同一个文件夹,但它们的会话仍独立,文件则共享。
v0.1.3 更新
- 采用左右分栏:左侧搜索和选择常驻群,右侧编辑该群的工作区与职责。
- 每群独立保留编辑草稿,切换群或配置分类不会丢失;底部固定显示保存状态。
- 「添加群」集中到可搜索的弹窗;重置会话、移除群收进右上角操作菜单。
- 窄窗口自动调整布局;补充弹窗焦点恢复、保存失败重试和草稿隔离测试。

v0.1.1 更新
- 将完整配置从设置弹窗移到「自动化任务」下方的「校宝数字员工」独立页面。
- 支持每群工作区、文件夹选择、保存状态与错误提示。
日报 / 周报(用 DSH 自动化任务)
在 DSH 的「自动化任务」里新建一个定时任务,提示词例如:
用 dingtalk_group_history 读取「研发群」最近 24 小时的记录,整理成 5 行以内的日报,然后用 dingtalk_send_message 发到「研发群」。
工具对 Host 内所有会话均可用;发送仍受“允许自动回复与主动发送”开关约束,关闭时只记录到发件箱。
群内命令(在 @ 消息里使用)
/new 新会话 · /stop 停止当前任务 · /status 状态 · /session 当前会话 ID · /model <provider/model> [effort] 切换模型 · /help
数据目录
$DSH_HOME/xiaobao-employee/
config.json 设置页保存的全部配置
bindings.json 会话绑定、已发送消息 ID、本人信息
seen.json 已处理消息去重
outbox.jsonl 每一次外发尝试与回执
pending.jsonl 等待补发的长任务
group-history/ 各群消息归档(默认保留 14 天)
workspace/ 默认工作目录(每个会话一个子目录)
staging/ dws 发送文件/下载资源的临时目录
开发
npm test # node:test,全部离线(不会 spawn dws)
npm run build # esbuild 打包设置页到 lib/client.js
npm run package # 构建、测试并生成 release/*.tgz 与 SHA-256
修改设置页后请同时提交 lib/client.js,CI 会检查源码与预构建产物一致。推送与 package.json 版本一致的 v* 标签后,Release 工作流会自动生成预览版安装包及校验文件。
结构:src/dws(dws CLI 封装与监听器)· src/harness(Typert 网关 API 与回合跟踪)· src/bridge(入站归一化、触发判定、提示词、会话编排、回复、延迟补发)· src/tools(Agent 工具)· plugin-src/host(DSH Host 入口与管理 RPC)· plugin-src/client(设置页)。
已知边界
当前为预览版。并发去重、运行中取消、长任务补发和存储故障恢复仍有已知问题,尚不保证消息恰好处理一次或失败自动重试。
关闭接收或切换 DWS profile 后,请重启 DSH 让监听状态同步;DWS 安装与登录状态须先确认正常。
模型在会话中发起的审批 / 追问(ask_user_question)不会转到钉钉,需在 DSH Web 处理;建议给校宝数字员工配置免审批或低风险预设。
入站图片/文件暂未自动下载进工作区(事件只含 mediaId);后续版本补充。
DWS 事件不含 @ 列表,"被 @"判定依赖
--kind at-me监听器;"引用我的消息"依赖本插件发出过的消息 ID 记录。
No comments yet. Be the first to write one.