dsh-scheduled-reports:用 DSH 每周自动生成 Word 定时报告

前言

DeepSeek Harness(DSH)适合按需对话式完成任务,但「每周固定看几类信息」——本机资源、模型动态、已装插件是否有更新——往往还要自己记日程、手动开 agent。把同一套流程写成计划任务,又涉及 headless 调 DSH、Markdown 落盘、转 Word,以及失败时计划任务仍显示成功等细节。

dsh-scheduled-reports 由维护者 xiangshu2026 发布,在 SkillHub 插件目录 中归类为工作流。它本质上是「定时拉起 DSH,按 tasks/*.md 里的中文任务说明生成 Markdown,再转成 Word」的 Windows 调度壳;报告质量取决于任务说明怎么写,改 md 即可生效,不必改代码。默认不读聊天记录、不读浏览器、不上传内容;电脑状况报告默认对盘符与进程名脱敏。

这是什么

一句话:给 DeepSeek Harness 用的无人值守定时报告系统——每周(或可改频率)自动生成多份报告,输出为 .docx 存到指定目录,支持开机补跑与日志追溯。

技术栈为 Windows 批处理 + PowerShell + Python(python-docx 转 Word)。平台 badge 标明 Windows;Linux / macOS 不适用。许可证为 MIT(package.json 版本 1.0.0)。GitHub 仓库当前星标为 1。

四份报告分别做什么

报告 内容 需要联网
电脑状况报告 磁盘 / 内存 / CPU / 开机时长等运行时快照 否
AI 大模型动态 最近 7 天 AI 领域新消息 是
插件更新检查 已装 DSH 插件在 npm 上是否有新版本 是
DSH 插件周报 最近 7 天新出的 DSH 插件(GitHub + B站) 是

联网类任务成本更高;可在配置里从任务列表中去掉不需要的报告,少跑一份少花一份模型与搜索开销。

核心机制(便于排查)

任务说明与采集分工

  • tasks/*.md:纯中文任务说明书,用大白话描述每份报告要什么;新建英文名 .md 并加入 TASKLIST 即可扩展自定义报告。
  • collect-system-info.ps1:在 agent 沙盒外以完整权限采集 WMI/CIM 数据,写入 system-info.txt;agent 只读该文件并写报告(沙盒内无法可靠查系统信息)。
  • 插件更新:collect-plugin-updates.ps1 读 DSH profile 的 package.json,逐个查 npm registry。link: / file: / github: 来源的本地插件在 npm 上查不到时会标为 registry-error,属预期行为。
  • 插件周报:独立子目录 plugin-weekly/,详见该目录下 README.md。

隐私开关(电脑状况)

collect-system-info.ps1 的 -Redact 默认为 1:盘符映射为 disk-1/disk-2,进程名为 app-01/app-02,PID 为 hidden;容量、占用率、CPU 百分比仍保留。设为 0 则显示真实盘符与进程名,仅适合单人本地查看。

健康检查:sentinel 与 report_health

计划任务常见陷阱是退出码 0 但无产出。run-sentinel.cmd 不看任务返回值,而看副作用(报告目录是否新鲜、份数与类别是否齐全、审计与日志时间等),退出码分 0 全绿 / 1 告警 / 2 严重。

作为 DSH 插件装入 profile 后,仓库通过 Cordis patch 注册工具 report_health,供模型调用同一套检查逻辑,例如:

report_health()
report_health({ reportsDir: 'D:\\Reports', maxReportDays: 14 })

自测:node test/selftest.mjs。

安装与启用

环境要求

  1. Windows,且 DeepSeek Harness 桌面版已安装,dsh 命令可用。
  2. Python 3.9+,并安装转 Word 依赖:
pip install python-docx
  1. API Key:headless 模式只从进程环境变量读取。脚本会从 %USERPROFILE%\.dsh\.credentials.yaml 的 refs: 段注入 DEEPSEEK_API_KEY;也可直接设置环境变量 DEEPSEEK_API_KEY。

按 README,先放到固定目录,例如 %USERPROFILE%\.dsh\scheduled:

git clone https://github.com/xiangshu2026/dsh-scheduled-reports.git "%USERPROFILE%\.dsh\scheduled"

SkillHub 目录页与 GitHub 为同一项目入口;社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

手动试跑

确认目录与凭据后,在仓库根目录执行:

run-reports-now.cmd

会提示大致调用次数与耗时,按任意键开始。报告默认落在 %USERPROFILE%\Desktop\DSH-Reports\<YYYY-MM-DD>\,目录内只保留 .docx。

注册为每周自动任务

示例:每周一 9:00 执行:

$action  = New-ScheduledTaskAction -Execute "cmd.exe" -Argument '/c "%USERPROFILE%\.dsh\scheduled\run-daily-task.cmd"'
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday -At 9am
Register-ScheduledTask -TaskName "DSH-Scheduled-Reports" -Action $action -Trigger $trigger

卸载:

Unregister-ScheduledTask -TaskName "DSH-Scheduled-Reports"

可选:每日 9:30 跑哨兵:

$action  = New-ScheduledTaskAction -Execute "cmd.exe" -Argument '/c "%USERPROFILE%\.dsh\scheduled\run-sentinel.cmd"'
$trigger = New-ScheduledTaskTrigger -Daily -At 9:30am
Register-ScheduledTask -TaskName "DSH-Sentinel" -Action $action -Trigger $trigger

配置要点

在 run-daily-task.cmd 顶部改三项(README 建议权限项勿随意放宽):

设置 默认 说明
WORKDIR %USERPROFILE%\Desktop\DSH-Reports 报告输出根目录,也是 agent 可写范围
DSH_PERMISSION_MODE workspace-write 不建议改为 danger-full-access(无人值守风险高)
KEEPDAYS 180 超期报告自动清理;不宜调太低

选择跑哪些报告,修改 TASKLIST,例如:

set "TASKLIST=1-computer.md 2-ai-models.md 5-plugin-updates.md"

从该行删除文件名即可跳过对应任务。插件周报是否在默认列表中,以你本地 run-daily-task.cmd 为准。

典型用法与排错

看本次是否全部成功

查看 logs\summary-<日期>.log 最后一行:RUN END: ALL OK 表示全部成功,SOME TASKS FAILED 表示有失败。单任务细节见 logs\<日期>-<任务名>.log,结尾 exit=0 为成功。

常见问题

  • MISSING_CREDENTIAL:检查凭据文件 refs: 或环境变量 DEEPSEEK_API_KEY。
  • 批处理里为何几乎无中文:README 说明 cmd.exe 多字节会导致行错位;中文应写在 tasks/*.md。
  • 耗时与费用:README 称三份报告约 4–5 分钟;联网与模型调用才有明显 API 成本。

适用场景与注意

适合:已在 Windows 上使用 DSH,希望无人值守、定期把几类信息落成 Word、并能在本机用日志与 sentinel 核对是否真的产出。

务必知晓:

  • 插件与定时任务会以当前配置的 DSH 权限在本地执行;安装前应阅读源码与 MIT 许可证,确认 DSH_PERMISSION_MODE 等设置符合你的安全预期。
  • 报告内容由模型生成,联网类可能日期或链接不准,宜作参考而非唯一事实源。
  • 断网时 AI 动态与插件周报会失败,电脑状况与 npm 插件检查仍可能部分可用(视网络子任务而定)。
  • 已知边界:仅 Windows;依赖 DSH 本体;不做数据上传。

商业嵌入(付费服务、商业系统等)README 建议先联系维护者 whnbsnm@foxmail.com(MIT 仍允许使用,维护者希望了解用途并可提供定制支持)。

结尾

dsh-scheduled-reports 把「每周几类固定报告」收敛成可配置的 DSH 任务列表 + Windows 计划任务 + Word 落盘,并用 sentinel / report_health 针对「假成功」做副作用检查。目录与源码:

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜