DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

xiangshu2026 /

xiangshu2026/dsh-scheduled-reports

Verified

Scheduled report generator for DeepSeek Harness: computer status, AI model news, plugin update check and a DSH plugin weekly digest, rendered to Word. Windows batch + PowerShell + Python, privacy-redacted by default.

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@311365d8

DSH 定时报告

License DeepSeek Harness Platform Unattended

原仓库:https://github.com/xiangshu2026/dsh-scheduled-reports 如果你是从别处下载的,建议回原仓库获取最新版与 issue 支持。

让 DeepSeek Harness 每周自动给你出几份报告,转成 Word 存到桌面。无人值守, 开机自动补跑,日志可查。

四份报告:

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

它做什么、不做什么

它只是「定时把 DSH 拉起来,按任务说明书生成 Markdown,再转成 Word」。 报告写得好不好,取决于你在 tasks/*.md 里怎么描述要求——那里是纯中文的 任务说明,用大白话写,改完下次运行就生效,不用改代码。

不采集任何个人数据:不读聊天记录、不读浏览器、不上传任何内容。 电脑状况报告默认把盘符和进程名脱敏成 disk-1 / app-01(见下方隐私开关)。


安装

需要什么

  • Windows(批处理 + PowerShell,Linux/macOS 不适用)
  • DeepSeek Harness 桌面版,且 dsh 命令可用
  • Python 3.9+ 和 python-docx(转 Word 用)
pip install python-docx

三步跑起来

  1. 放到一个固定目录,比如 %USERPROFILE%\.dsh\scheduled:

    git clone https://github.com/xiangshu2026/dsh-scheduled-reports.git "%USERPROFILE%\.dsh\scheduled"
    
  2. 确认 API Key 能被读到。headless 模式只从进程环境变量取 key, 所以脚本会从 %USERPROFILE%\.dsh\.credentials.yaml 的 refs: 段里 把 DEEPSEEK_API_KEY 取出来注入。如果你用别的方式存 key, 直接设环境变量 DEEPSEEK_API_KEY 也可以。

  3. 手动跑一次,确认能出报告:

    run-reports-now.cmd
    

    会提示调用几次模型、大约几分钟,按任意键开始。

报告默认落在 %USERPROFILE%\Desktop\DSH-Reports\<YYYY-MM-DD>\,只放 .docx。

装成每周自动跑

$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"


配置

三个开关(都在 run-daily-task.cmd 顶部)

设置 默认 说明
WORKDIR %USERPROFILE%\Desktop\DSH-Reports 报告输出根目录,也是 agent 唯一能动的目录
DSH_PERMISSION_MODE workspace-write agent 权限。建议不要改成 danger-full-access,无人值守时很危险
KEEPDAYS 180 报告保留天数。别调太低,否则新报告会把旧的删掉

跑哪些报告(TASKLIST)

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

不想要的从这行删掉即可,每少跑一个任务就少花一份钱。联网的那两个最贵。

隐私开关(电脑状况报告)

collect-system-info.ps1 有个 -Redact 参数,默认 1:

Redact 效果
1(默认) 盘符 → disk-1/disk-2;进程名 → app-01/app-02;PID → hidden。容量、占用率、CPU 百分比全部保留,报告照样能看
0 显示真实盘符和进程名。只在你一个人看这些报告时才用

四份报告各自怎么工作

电脑状况报告

collect-system-info.ps1 在 agent 沙盒外面用完整权限跑(agent 在沙盒里查不到 WMI/CIM,会瞎猜),把磁盘、内存、CPU、开机时长落成 system-info.txt, agent 只负责读和写报告。

AI 大模型动态

纯联网搜索,tasks/2-ai-models.md 里限定了搜索次数(6–9 次)和关注范围 (DeepSeek / Anthropic / OpenAI / Google 等)。想换关注点就改那个 md。

插件更新检查

collect-plugin-updates.ps1 读 DSH profile 的 package.json,逐个查 npm registry 比对版本。link: / file: / github: 来源的本地插件在 npm 上本来就查不到, 会被标成 registry-error——这是正常的,不是错误。

DSH 插件周报

独立的一套(plugin-weekly/),从 GitHub Search API + B站搜索抓最近 7 天的新插件, 本地过滤 + 模型打分,输出 Markdown / JSON / docx。详见 plugin-weekly/README.md。


目录结构

dsh-scheduled-reports/
├─ run-daily-task.cmd           执行器(改配置就改这里)
├─ run-reports-now.cmd          手动跑一次
├─ tasks/                       任务说明书(纯中文,随便改)
│  ├─ 1-computer.md
│  ├─ 2-ai-models.md
│  └─ 5-plugin-updates.md
├─ collectors/                  沙盒外采集与后处理
│  ├─ collect-system-info.ps1   磁盘/内存/CPU(带隐私脱敏)
│  ├─ collect-plugin-updates.ps1 插件版本比对
│  ├─ post-process.ps1          md → docx、删源文件、清理旧报告
│  ├─ md2docx.py                Markdown 转 Word
│  ├─ get-api-key.ps1           从凭据文件取 key
│  └─ acquire-lock.ps1          单实例锁
└─ plugin-weekly/               DSH 插件周报(独立子系统)

健康检查哨兵(sentinel)

定时任务有个很隐蔽的失败模式:退出码 0,但什么都没产出。

计划任务看到 0 就当成功了,于是你以为它一直在跑,实际上已经空转好几天。

run-sentinel.cmd 专门查这件事——不看任务返回值,看副作用。

检查四项

检查项 判据 阈值
每日报告 日期新鲜 + 份数够 + 类别不单一 9 天
审计账本 最后同步时间 7 天
审计日志 最后写入时间 7 天
定时日志 最新日志时间 9 天

「份数 + 类别」是双重判据

只查「有没有文件」会误判。实测遇到过:某天目录里只有 1 份报告(插件周报), 但计划任务应该产 4 份——只查「有文件」会报 OK,加上「应该 4 份」 和「类别不能单一」才能识别出「只跑了一部分」。

退出码分三层

0 = 全绿
1 = 告警(能容忍,不影响使用)
2 = 严重(必须处理)

为什么告警不返回失败:如果 warn 也算失败,计划任务天天显示「上次运行失败」, 人会麻木,真问题反而被淹没。

用法

run-sentinel.cmd

装成每天自动跑:

$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

输出示例

⚠️  每日报告   最新 2026-10-26 · 1 份 · 3.8 小时前(只有 1/4 份;类别单一)
──────────────────────────────
常见原因(仅供排查,不是结论):
  · 任务确实没跑起来 / 计划任务被禁用
  · 目录被误删或手动清理
  · 部分子任务失败,只生成了部分报告
  · 机器当天没开机

注意最后那段是「常见原因,不是结论」。哨兵只报事实,不猜原因—— 猜错原因会把人引到错误的方向。


常见问题

Q:跑起来说 MISSING_CREDENTIAL? A:headless 模式不读桌面版的凭据引用,只认进程环境变量。检查 %USERPROFILE%\.dsh\.credentials.yaml 里 refs: 段有没有 DEEPSEEK_API_KEY, 或者直接设环境变量。

Q:报告没生成,怎么查? A:看 logs\summary-<日期>.log 最后一行:RUN END: ALL OK 是全部成功, SOME TASKS FAILED 有失败。具体哪一份失败看 logs\<日期>-<任务名>.log, 结尾是 exit=0 即成功。

Q:一次跑多久、花多少钱? A:三份报告约 4–5 分钟。花钱的只有联网那两份和模型调用,量级很小, 具体看你用的模型定价。

Q:为什么 run-daily-task.cmd 里全是英文、一个中文都没有? A:故意的。cmd.exe 按字节位置解析批处理文件,一旦混入中文(多字节), 它会把后面的行读串位,连正常命令都被切碎,整个流程崩。中文只能写在 tasks/*.md 里——那是纯文本,安全。

Q:能改成每天跑吗? A:能。改计划任务的触发器就行。但注意联网那两份报告是按「运行当天往前推 7 天」 算的,天天跑内容会大量重叠。

Q:报告会不会重复? A:不会。每期按日期建子文件夹,KEEPDAYS 天之前的自动清理。

Q:能加自己的报告吗? A:能。在 tasks/ 下新建一个英文名 .md,用大白话写清楚要它做什么, 然后把文件名加进 TASKLIST。会自动跟着转 Word、跟着被清理。


已知边界

  • 只支持 Windows。批处理 + PowerShell + WMI 的组合,换平台要重写。
  • 依赖 DSH 本体。没有 DeepSeek Harness 就跑不了——这套东西本质是 「让 DSH 定时干活」的调度壳子。
  • AI 大模型动态 / 插件周报需要联网。断网时这两份会失败, 电脑状况和插件检查仍能正常出。
  • 模型会写错。报告内容由模型生成,可能有不准确的地方, 尤其是联网搜索类(日期、链接可能出错)。当参考看,别当事实源。
  • 不做任何数据上传。所有内容都留在本机。
  • 本项目不含任何政治类内容生成任务。

许可

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 311365d88600

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout