WorkHub · 钉钉 × 云效 个人工作智能台
把钉钉与云效的工作数据聚合到本地,用确定性统计看清工作全貌,用 AI 总结回溯每件事的来源。
钉钉和云效记录工作,WorkHub 帮你看清工作如何发生、如何推进,以及下一步该做什么。
这是一个 DeepSeek Harness(DSH)双端插件:Host 侧负责数据采集、存储、分析与 Agent 工具;Client 侧以 React 面板形式嵌入 DSH Web UI。数据全部保存在本机 SQLite,不需要部署任何后端服务。
特性
双数据源(11 个同步源)
| 数据源 | 能力 |
|---|---|
| 钉钉(DWS CLI) | 待办、日志/日报、AI 听记(含摘要 / 关键词 / 行动项)、会话注册表、聊天消息(按需)、考勤打卡、日历日程 |
| 云效(OpenAPI) | 项目空间、代码仓库、流水线、需求/任务、Commit、报工工时、需求排期节点 |
核心能力
- 工作驾驶舱:时间范围(含「上周五 → 本周四」报工周期)、粒度自动分级、上期对比、项目投入分布、活动趋势(tooltip 展示当日提交的需求号)、AI 洞察卡
- 工作日历:月/周视图,卡片优先展示打卡时段与报工时长、当日提交最多的需求号;点选日期查看每日总结、云效排期节点、聚合后的事件时间线(原始明细可展开)
- 项目分析:手动项目(关键词/群绑定)与云效项目空间自动归集,展示报工工时、提交数、需求状态分布、跨系统关联工作项
- 聊天洞察:会话选择与按需采集、发言统计、会话小结(话题分组 / 行动项 / 未决问题)、AI 话题聚类
- 工作效能:周×小时热力图、时段分布、协作对象 Top 榜单
- 智能报告:规则版周报/日报即时生成(工作概况 / 逐日概览 / 代码推进 / 排期节点 / 沟通协作 / 产出 / 风险 / 下周计划),支持导出 Markdown 与删除
- 快捷执行:云效流水线运行(二次确认 + 操作审计日志)
- Agent 工具:15 个
workhub_*工具,全部只读或带确认;AI 洞察与总结强制携带来源证据
界面预览
以下截图由
tests/screenshot.mjs用合成示例数据渲染真实组件生成,不含任何真实组织或业务信息。

工作日历:卡片优先展示打卡时段、报工时长与当日主力需求;今日高亮。点选日期查看每日总结、云效排期节点、会议纪要与事件时间线。

项目分析:手动项目与云效项目空间统一归集,展示报工工时、提交数、需求状态分布与跨系统关联项。

聊天洞察:选定会话后直接生成会话小结——话题分组、行动项候选、未决问题,可导出或删除。

智能报告:规则版周报即时生成(工作概况 / 逐日概览 / 代码推进 / 会议与决策 / 沟通协作 / 风险 / 下周计划),支持导出 Markdown。

工作效能:周×小时热力图、时段分布与协作对象排行(活动代理指标,不等同于工时或生产力)。

数据管理:钉钉 / 云效双数据源连接状态、能力矩阵、12 个同步源与同步操作;云效 PAT 只存系统钥匙串。

快捷执行:云效流水线运行(二次确认)与操作审计日志。

安装
包名:@ahao430/dsh-workhub(工作区目录形式的 bundle,dsh.bundle 指向 cordis.patch.yml)。
从 npm 安装(推荐):
dsh plugin add @ahao430/dsh-workhub # 装进当前 profile
从 GitHub 源码安装:
在 DSH 中用 plugin_manager 的 install_bundle 指向本仓库目录(或 dsh plugin add github:ahao430/dsh-workhub),随后用 set_plugin 启用 workhub 行。
插件市场:条目位于 awesome-dsh-plugin(
tools分类);仓库根目录的screenshots.json用于市场详情页展示截图。
安装
需要先安装并登录 DWS CLI(dws auth login)。
# 在工作区克隆本仓库后,把插件安装进当前 DSH profile
# 安装动作由 DSH 的 plugin_manager 完成(见下文「安装到 DSH」)
本仓库是 工作区目录形式的 DSH bundle(package.json 中 dsh.bundle.patch + dsh.client),安装方式:
- 在 DSH 中调用
plugin_manager的install_bundle,target指向本目录绝对路径; - 安装后插件行 id 为
workhub,用set_plugin启用; - 刷新 DSH Web 页面,左侧边栏出现 WorkHub 图标。
配置云效
- 云效控制台 → 个人设置 → 个人访问令牌 → 创建 PAT(建议权限:用户信息、项目、需求/任务、代码管理、报工;工作流可选);
- 打开 WorkHub「数据管理」→ 阿里云云效卡片;
- 填入 API Base URL(中心站
https://openapi-rdc.aliyuncs.com,或你的 Region 专属域名)、组织 ID(可留空自动获取)、PAT; - 保存后 Token 写入系统钥匙串(macOS Keychain),SQLite 只保存
credentialRef,代码与日志均不落明文。
若 PAT 在某处泄露,请在云效侧轮换:生成新 Token 后在卡片里覆盖保存即可。
凭证过期怎么办
DWS 的 access token 约 2 小时一换,由 refresh token(约 30 天)自动续期,通常无感。refresh token 过期或被撤销后:
- WorkHub 面板:数据管理 → 钉钉卡片会变成红色「登录已失效 · 需重新登录」,并提供 一键重新登录 按钮(DSH Host 与本机同机,
dws auth login会自动打开浏览器完成 OAuth Loopback 授权,完成后面板自动刷新) - 浏览器无法弹出时,卡片上保留
dws auth login命令与复制按钮,可在终端执行 - 驾驶舱会出现一条 high 级洞察「钉钉登录已失效」,定时同步在重登前自动暂停(避免刷失败日志)
- 历史数据全程可读:驾驶舱、日历、报告读的是本地 SQLite,只是不再增量更新
数据与隐私
- 所有数据仅存本地:
$DSH_PROFILE_DIR/workhub/data.db(无DSH_PROFILE_DIR时回退~/.dsh/workhub/data.db),SQLitenode:sqlite。 - 聊天原文按需采集、按保留策略清理;总结与分析结论均以
sourceReferences记录来源。 - 不复制 DWS 内部 Token;云效 PAT 只存系统钥匙串。
- 仓库内
tests/fixtures/为脱敏示例数据,不含任何真实组织信息。
目录结构
dsh-workhub/
├── index.js # Host 入口:webServer 路由 / Agent 工具 / 定时同步
├── client.js # Client 入口:面板、页面、设计系统
├── lib/
│ ├── dws-executor.js # 唯一 spawn 出口(超时/并发/输出上限/JSON 容错)
│ ├── dws-client.js # 钉钉命令封装(argv 白名单)
│ ├── collector/ # 钉钉 & 云效采集器、同步管理
│ ├── yunxiao/client.js # 云效 OpenAPI 客户端(node:https + PAT)
│ ├── storage/db.js # SQLite schema、迁移、聚合查询
│ ├── security/credential-store.js # 钥匙串凭证存储
│ ├── time.js # 时间预设/粒度/对比区间
│ ├── watchdog.js # 规则引擎(逾期、沉寂项目等)
│ ├── api.js # 同源 HTTP API(只读 + 受控写)
│ └── tools.js # Agent 工具注册
├── locale/ # 插件展示元数据
└── tests/render-check.mjs # 客户端渲染冒烟测试
开发
node --check client.js # 语法检查
node tests/render-check.mjs # 渲染冒烟测试(8 个页面 + 数据子组件)
node tests/manifest-check.mjs # 发布物料检查(清单 / files / 本地化 / 截图)
node tests/screenshot.mjs # 用合成数据生成 docs/screens/*.html(再用无头浏览器转 PNG)
设计约定:
- 客户端只用 DSH 主题 token(
--dsw-alias-*)做背景/边框/正文,强调色使用插件自有高对比色板(保证浅色/深色主题都清晰); - 所有钉钉调用集中经过
DwsExecutor,参数由白名单生成,禁止拼接 shell 字符串; - 统计指标一律由 SQL 聚合产生,LLM 只做解释,且结论必须带来源。
发布
日常提交由 .github/workflows/ci.yml 自动跑语法检查、渲染冒烟测试和物料检查。发版走 tag:
# 1. 改 package.json 的 version(如 0.1.1),提交推送
git commit -am "chore: 0.1.1" && git push
# 2. 打 tag 并推送,Actions 会校验版本一致后发布到 npm
git tag v0.1.1 && git push origin v0.1.1
Publish 工作流会 npm publish --access public --provenance,因此需要仓库 Secret NPM_TOKEN(npmjs.com → Access Tokens → Automation 类型,可跳过 OTP)。未配置 Secret 时仍可本地手动发布:npm publish --access public。
路线图
- 会议纪要内容(听记摘要 / 关键词 / 行动项)与钉钉日程
- 会话小结、周报/日报规则版生成与导出
- 考勤与工时交叉分析视图
- 云效缺陷(Bug)类别与合并请求(MR)
- 钉钉审批、文档/知识库、语音备忘
- 云效应用交付(需追加 PAT 权限)
- 面板内直连模型的 AI 总结(当前为规则版 + Agent 精修)
- 团队视图与多用户部署
License
MIT
No comments yet. Be the first to write one.