dsh-work-assistant

workflowtested: passnpmMIT

A work assistant for WeChat: it records what you tell it into a SQLite task ledger, ranks items by urgency, reminds you on schedule, extracts people and their relations from your notes, and hands tasks to separate assistant sessions. Ships its own WeChat bot channel (scan to log in; private chat onl

下载量 / Downloads
1,665
依赖体积 / node_modules
2.15 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-work-assistant

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

dsh-work-assistant

<p align="center">

<img src="https://raw.githubusercontent.com/544244857/dsh-work-assistant/main/assets/banner.png" alt="dsh-work-assistant" width="100%">

</p>

<p align="center">

<b>微信里的工作助理。</b>你把事说给它,它记成账本、排好先后、到点提醒你;<br>

干不完的活儿派给独立副手,回头还从笔记里认出人和关系。

</p>

<p align="center">

<a href="https://www.npmjs.com/package/dsh-work-assistant"><img src="https://img.shields.io/npm/v/dsh-work-assistant?color=2f6f5e" alt="npm"></a>

<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="license"></a>

<a href="package.json"><img src="https://img.shields.io/badge/node-%E2%89%A522.5-brightgreen" alt="node"></a>

<a href="https://github.com/544244857/dsh-work-assistant"><img src="https://img.shields.io/badge/DSH-plugin-2f6f5e" alt="DSH plugin"></a>

<img src="https://img.shields.io/badge/tests-430%20passed-brightgreen" alt="tests">

</p>


一句话:微信官方机器人只能私聊,你在群里被 @ 了就转发给它,剩下的记账、排序、提醒、派活、认人交给它。

不依赖任何第三方 IM 插件——微信通道、账本、知识库、人物图谱、定时提醒,全在这一个包里。

你会说的话 · 它干的事

周五前把 Q3 报销整理好发我 · 记成工作项,自动判优先级,逾期会一直顶在最前

现在有哪些活 · 按紧急度念一遍,不是只报个数

这个你派个人去做 · 开一个独立会话去干,你继续跟助理说话,干完回来汇报

值班表按 5 个人轮班排到年底 · 排完直接导出一份 xlsx 发到微信

你认识哪些人 / 老周是谁 · 从聊天和笔记里认出的人,带关系判断和把握度

长什么样

在微信里说一句话,它记账、排期、出文件;手上一堆活儿的时候,回头在仪表盘上看全局。

一句"值班表先给我出一份",它把人、规则记下来,排到 12-31,顺手导出一份 xlsx 发回微信。

<p align="center">

<img src="https://raw.githubusercontent.com/544244857/dsh-work-assistant/main/assets/shot-ledger.png" width="88%" alt="在微信里排值班表并导出 Excel">

</p>

PNG / XLSX / DOCX / MD 四种文件都能发到手机上,发完还能读回来核对内容。

<p align="center">

<img src="https://raw.githubusercontent.com/544244857/dsh-work-assistant/main/assets/shot-files.png" width="88%" alt="在微信里收发各种文件">

</p>

想看这个插件到底解决什么问题、内部数据怎么组织,读 [INTRO.md](INTRO.md)。这份 README 讲怎么装、怎么配、接口长什么样。

目录

[先说边界](#先讲清楚一条边界) ·

[装](#装) ·

[登录和设置](#登录和设置) ·

[它能做什么](#它能做什么) ·

[工具](#给模型用的工具) ·

[配置](#配置) ·

[数据](#数据放在哪) ·

[接口](#http-接口) ·

[取舍](#设计上的几个取舍) ·

[限制](#已知限制) ·

[许可](#许可)

先讲清楚一条边界

微信官方机器人只能私聊,读不到群聊,也没有"@我"这种事件。

所以这个插件的做法是:你在群里被 @ 了,自己把那条消息转发给机器人。它记账、分析、提醒。

这不是偷懒。个人微信没有对外开放的群消息接口,逆向客户端违反腾讯服务条款、有封号风险,所以这里不做。企业微信的智能机器人可以收群 @ 消息,那是另一条路,需要的话可以另做渠道。

它是怎么跑的

微信(你的手机)                        DSH 宿主进程
  │                                        │
  │  你转发一句话 / 发个文件               │
  ├───────────────►  iLink Bot 长轮询 ────►│ 通道
  │                                        │   ↓
  │                                        │ 助手会话(挂你选的预设与模型)
  │                                        │   ↓ 调 work_* / kb_* / assign_* 工具
  │                                        │ SQLite 单文件账本(work-assistant.db)
  │  收到回执、提醒、文件                   │   ↓
  │◄────────────── 发消息 / 发文件 ◄───────│ 60 秒 ticker + 每日摘要 + 周复盘

三个关键点:

  • 不需要公网地址。走的是长轮询,不是 webhook,本机开着就能收。
  • 提醒是模板直发,不经过模型,不烧 token,断网重连也不会重复轰炸。
  • 副手是独立会话,跟你在 GUI 里开一个会话没区别,能看过程、能接着聊。

装

已经发到 npm,从网上装(推荐,装的是预构建产物,不需要本地编译):

dsh plugin --profile <你的 profile> add dsh-work-assistant

从源码改着玩就装本地目录:

dsh plugin --profile <你的 profile> add -w link:<这个目录的绝对路径>

也可以直接从 GitHub Release 的 tarball 装:

dsh plugin --profile <你的 profile> add https://github.com/544244857/dsh-work-assistant/releases/download/v0.5.6/dsh-work-assistant-0.5.6.tgz

装完重启宿主。插件会自己创建数据目录,默认在 ~/.dsh/dsh-work-assistant/。

仓库在 544244857/dsh-work-assistant,npm 包名 dsh-work-assistant。

登录和设置

重启宿主后,打开 DSH 的设置,左边会多出一项「工作助理」。这个页面里什么都有:

  • 登录状态、扫码二维码(没登录时才显示)
  • 账本概览:未完成几件、逾期几件、进行中几件、能代做几件,还有前 10 条工作项
  • 每日摘要时间和提醒检查间隔,改完点保存,立刻生效
  • 「立刻发一条摘要」按钮,用来验证通道通不通
  • 对话记录:跟你聊过的每一天都留在这儿,点一天看当天的往来
  • 会话设置:助手用哪个预设、哪个模型、推理强度多高、什么权限档位,四组下拉直接选,保存后下一条消息就按新的来

二维码本身是 qrcode 包在宿主进程里渲染成 dataURL 的,不联网,不上传。

如果设置页因为某种原因没出来(比如宿主版本差异),也可以直接开这个地址:

http://127.0.0.1:<你的 DSH 端口>/api/dsh-workassistant/login

这是同一个功能的纯网页版,扫码、看状态、换码都在里面。

用手机微信扫码,把机器人加成好友,就好了。凭据只存在本机,不上传。

登录之后,你给这个机器人发消息就等于跟工作助理说话;它的回复会直接推回微信。

它能做什么

记账

收到消息先判断里面有没有"需要被完成的事"。有就记下来,没有就不记。一件事记不住就拆成几条。

记的时候会顺手判断:期限是什么时候、优先级多高、打什么标签、这件事是不是它能直接代做。

记完一定会给回执,形如:

记下了 w-20261020-006:催老周补发票
期限 10/24 18:00,优先级 高
按紧急度排第 1 位(越靠前越该先做)
现在手上共 6 件未完成

看到这段就说明真的写进账本了。同一件事被反复说(你重发、它重试)不会记成多条——标题或内容重合会认出来,只把新信息补进去,回执改说"已经记过了"。

自动排优先级

不用你操心优先级。每条工作项都会算一个紧急度分数,影响排序和摘要顺序:

因素 · 影响

已逾期 · 分数最高,一直顶在最前

期限越近 · 24 小时内最高,一周内次之,之后递减

高优先级措辞 · 标题或正文出现"催""尽快""马上""今天""急"等,算高

正在做 · 比同等条件下还没动的稍微靠前

分数只在排序时用,不会覆盖你手动设的优先级。如果你想强按某件的顺序,说一句"这件最高优先级"它就会显式标成 high。

主动请缨

遇到查资料、改表格、整理文件、写文档、核对数据这类它手上能干的活,它会主动问一句"这个我可以直接做,要我做吗"。你说"做吧"或者"做第 3 件",它就去干。

干完会汇报结果,并把过程要点存进知识库。

提醒

  • 单条到期提醒:给某件事设了提醒时间,到点推一条。创建时如果只填了期限没填提醒时间,默认提前一小时。
  • 每日摘要:默认 09:00 和 18:30 各推一次,列出逾期、今天到期、本周内要交的。手上没活就不推。
  • 安静时段:默认 22:00 到 08:00 一条都不推。落在这段时间里的提醒不会丢,也不会被标成已发,等时段结束一起补给你。
  • 每周复盘:默认周五 18:00 推一次,说这一周做完了哪些、还欠着哪些。设成"关掉"就不推。

提醒是模板直发,不烧 token。所有"今天是否已经推过"的状态都落盘,重启不会重复轰炸。

重复的事

「每月五号交报表」这种可以直接记成重复任务。做完一件会自动滚出下一件,不用每个月重新说一遍。

让人去办

「等老周补发票」这类不是自己动手的事,可以记成「等某人」并约好什么时候去问一句。到点提醒你"该问问老周了",而不是提醒你去做那件你本来也做不了的事。

具体行为:

  • 说了「下周问他」「周五再催」→ 按那个时间提醒。
  • 没说 → 默认记下来那天往后 3 天。回执里会给确切时刻,不用猜。
  • 到点推一条「该去问一句了:等老周补发票,等 老周」。催过就把下一次往后推 3 天,不会反复轰炸。
  • 第二次起措辞变成「还没回音:…」,提醒你这事还悬着。
  • 标成已完成或放弃后就不再催。
  • 推送失败不动时间,下一轮接着试,不会静默漏掉。

副手:把活儿派出去

有些活儿不是一两句话能办完的——要把三个月的报销单理成一张表、要把一份合同逐条比对模板、要翻一堆资料查清楚某件事。这种活儿交给微信那头等着不合适,你在那儿干等,它也不一定一次干得完。

现在可以派出去。派出去之后它在一个独立的会话里干,你继续在微信里跟助理说话,两边不耽误。干完它会回来汇报,报告直接推到微信。

用法就是在微信里说一句"这个你派个人去做",助理会调 assign_create 开一个副手。也可以自己在整页视图的「副手」卡片里点「派一个」,写清楚要什么结果。

几个细节:

  • 副手是独立的会话,会出现在 GUI 的会话列表里。这是故意的,不是 bug——你想看它到底在干什么,可以直接点进去看它的完整过程,或者点卡片上的「去看」跳过去。
  • 默认最多同时开 3 个。开满了再派会直接失败并告诉你哪几个还占着,不会排队、不会假装派出去了。要改上限改 maxAssignments(1 到 32)。
  • 助手随时能跟它说话。派完想起来还有要求,用 assign_send 补一句;默认算"新的一轮",它会接着干。也能用 assign_inspect 看它最近几步干了什么,assign_stop 停掉。
  • 它交的报告可能是在问你。报告可以标"等你回话",这时候卡片上会亮黄,微信那头也会提示。名额开满时它还是会交报告,只是状态不会切到"等回话"——话照样送到你手上,回执里会说清这一点。
  • 宿主重启后副手会标成"掉线"。下次给它发消息时会自动把会话恢复起来;真找不回来了(比如会话被删了)就如实报错,不会假装还活着。
  • 副手可以绑一个工作区(assignmentCwd)、用别的模型(assignmentModel)、换预设(`as

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::7,最后更新 2026-10-24

Links

GitHub · Homepage · npm

Same category