我平时把任务记在滴答清单里,长一点的复盘放进 Notion,真正执行时还会调用 AI Agent。信息分散以后,每天最麻烦的部分变成了复制和整理。我后来把定时触发、任务读取、复盘生成和 Notion 写入接成了一条工作流。

这篇文章带你跑通一个经过脱敏的公开版本。第一次运行不需要滴答 token,也不会写入 Notion。确认本地输出正常以后,再逐步接入真实服务。

项目源码 飞书项目案例 完整作品集

跑完以后能得到什么

你会先在终端生成一份周复盘 Markdown,随后可以选择接入滴答清单和 Notion。公开仓库提供四个 Python 脚本、环境变量模板、定时任务结构样例、合成输出和排错文档。

数据按下面的顺序流动。

定时触发
   ↓
读取未完成任务或已完成任务
   ↓
AI Agent 整理任务数据
   ↓
生成复盘 Markdown
   ↓
人工检查 dry-run
   ↓
可选写入 Notion

运行前准备

项目要求第一次运行是否必需
Python3.10 或更高版本
Git用于克隆仓库
滴答清单 CLI读取未完成任务时使用
滴答官方 MCP token读取已完成任务时使用
Notion Integration写入真实页面时使用

下面以 Windows PowerShell 为例。Linux 和 macOS 的脚本参数相同,只需要改环境变量写法。

先克隆仓库并进入目录。

git clone https://github.com/2268499465q-beep/hermes-auto-workflow.git
Set-Location hermes-auto-workflow
python --version

第一步先做零凭据检查

先检查四个脚本能否被 Python 编译。

python -m compileall -q scripts

如果当前目录不允许生成 __pycache__,可以把缓存临时放进系统临时目录。

$env:PYTHONPYCACHEPREFIX = Join-Path $env:TEMP "hermes-auto-workflow-pycache"
python -m compileall -q scripts

随后检查命令入口。运行 --help 不需要任何 token。

python scripts/dida_undone.py --help
python scripts/dida_completed_mcp.py --help
python scripts/notion_api.py --help
python scripts/notion_bridge.py --help

四条命令都能显示帮助信息,说明 Python 入口和模块导入已经正常。此时还没有访问滴答或 Notion。

第二步生成第一份周复盘

下面这条命令只生成 Markdown,不发出网络请求。

python scripts/notion_bridge.py weekly `
  --date 2026-08-08 `
  --highlights "完成接口联调|补充异常处理" `
  --challenges "测试数据不足" `
  --actions "补齐边界用例|复查输出" `
  --dry-run

我在公开仓库中实际运行后得到下面的输出。

# 周复盘 2026-08-08

## 本周完成

- 完成接口联调
- 补充异常处理

## 主要阻塞

- 测试数据不足

## 下周行动

- 补齐边界用例
- 复查输出

参数中的多条内容用竖线分隔。--dry-run 存在时,脚本打印 Markdown 后退出,不检查 Notion 凭据,也不会创建页面。

第三步接入滴答清单

公开脚本不会自动读取 .env。仓库里的 .env.example 只是变量清单,真实值需要进入当前进程的环境变量,不能写回代码。

读取未完成任务

先把项目 ID 和显示名写进 DIDA_PROJECTS_JSON。下面只有占位符。

$env:DIDA_PROJECTS_JSON = '[{"id":"<PROJECT_ID>","name":"示例清单"}]'
$env:DIDA_CLI_PATH = "dida"

如果滴答 CLI 不在 PATH 中,把 DIDA_CLI_PATH 改成可执行文件的完整路径。随后读取指定清单。

python scripts/dida_undone.py `
  --project-names "示例清单" `
  --redact-titles

--redact-titles 会把真实标题改成 Task 1Task 2。调试截图和公开演示建议一直保留这个参数。输出结构类似下面这样,数量取决于你的清单。

== 示例清单 (2) ==
  [TASK] Task 1
  [HIGH] Task 2
TOTAL incomplete: 2

读取已完成任务

已完成任务通过滴答官方 MCP 读取。token 仍然只放进当前进程。

$env:DIDA_API_TOKEN = "<YOUR_DIDA_API_TOKEN>"
$env:WORKFLOW_TIMEZONE_OFFSET = "+08:00"

python scripts/dida_completed_mcp.py `
  --start 2026-08-01 `
  --end 2026-08-08 `
  --redact-titles

脚本会逐日查询,再解析每条任务的 completedTime。它会按本地时间窗口过滤,并用任务 ID 去重。日期接口返回成功,不代表每条数据都落在目标日期内,这一步二次过滤不能省。

第四步写入 Notion 测试页面

先在 Notion 创建一个测试页面和 Integration,再把 Integration 加入测试页面的共享范围。token 有效但页面没有授权时,接口仍会返回 403。

周、月、年复盘需要下面三个变量中的前两个。日复盘使用第三个页面 ID。

$env:NOTION_API_KEY = "<YOUR_NOTION_API_KEY>"
$env:NOTION_PARENT_PAGE_ID = "<PARENT_PAGE_ID>"
$env:NOTION_DIARY_PAGE_ID = "<DIARY_PAGE_ID>"

先保留 --dry-run 检查日期和正文。确认输出以后,再去掉这个参数。

python scripts/notion_bridge.py weekly `
  --date 2026-08-08 `
  --highlights "完成接口联调|补充异常处理" `
  --challenges "测试数据不足" `
  --actions "补齐边界用例|复查输出"

写入成功时,终端会显示新页面 ID。

Created review page: <PAGE_ID>

建议第一次只写测试页面。确认标题、层级和列表都正常以后,再换成正式父页面 ID。

第五步加入定时触发

仓库中的 examples/cron-jobs.example.json 提供了两类任务结构。

{
  "name": "周复盘草稿示例",
  "schedule": "0 9 * * 6",
  "timezone": "Asia/Shanghai",
  "enabled": false,
  "command": "python scripts/notion_bridge.py weekly --date <DATE> --dry-run"
}

<DATE> 需要由你的调度器或 Agent 替换为运行日期,不能原样复制执行。第一次创建任务时保持 enabledfalse,手动触发一次并检查退出码。确认 dry-run 输出以后,再启用正式时间表和外部写入。

Windows 任务计划程序需要特别检查三个位置。

  1. 程序填写实际的 python.exe 路径。
  2. 参数填写脚本路径和参数。
  3. 起始目录填写仓库根目录。

定时环境通常不会完整继承交互式终端的 PATH。终端里能运行,定时任务里找不到命令时,先检查 Python、滴答 CLI 和工作目录的完整路径。

常见失败怎样定位

现象常见原因处理办法
ModuleNotFoundErrorPython 运行时没有正确加入脚本目录拉取最新仓库版本,再运行四条 --help
无法创建 __pycache__当前目录只读或权限受限设置 PYTHONPYCACHEPREFIX 到临时目录
未完成任务为零项目名不匹配或 CLI 未登录检查 DIDA_PROJECTS_JSON--project-names
已完成任务数量偏多时间窗口或时区不符合预期检查起止日期和 WORKFLOW_TIMEZONE_OFFSET
Notion 返回 401token 无效或没有进入当前进程重新设置环境变量,不要打印 token 排查
Notion 返回 403Integration 没有目标页面权限在测试页面的共享设置中添加 Integration
定时任务找不到命令PATH 和工作目录不同使用 Python 与 CLI 的完整路径

公开版本保留了哪些边界

这个仓库来自真实运行过的个人工作流,公开版没有携带生产 token、项目 ID、页面 ID、原始任务、运行日志和个人提示词。三个示例文件都是合成内容。

我没有逐句清洗生产日志后再上传。日志会同时暴露任务标题、时间、分类和失败命令,删掉一两个名字仍然可能还原个人信息。公开示例从零编写,风险更可控。

如果你准备把自己的自动化脚本放到 GitHub,至少检查源码、配置、数据库、日志、运行输出和文档元数据。代码里看不到 token,只能说明第一层检查通过。

后续从哪里继续

完整脚本、环境变量模板、架构图和排错文档放在 GitHub 仓库。项目为什么这样拆分、哪些部分由我完成、公开时删掉了什么,放在 飞书项目案例页

建议先跑通第二步的 dry-run,再决定是否接入真实任务和 Notion。这样每次只增加一个外部变量,报错时也更容易知道问题出在哪一层。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐