每天写日报真的太烦了,我用 Hermes 搭了个自动 Agent 拯救自己

做了一天活,下班前还得对着屏幕发呆,回忆早上到底干了啥。这种痛,懂的都懂。我试过各种日报模板、番茄钟记录、甚至语音备忘录,最后发现最靠谱的解法是:让 AI 替我写。前后折腾了两周,用 Hermes 搭了一个自动写日报的 Agent,每天下班前日报自动生成,我改两笔就能发。省下的时间,够我刷完一集剧。

先说说我的硬件环境:一台 2021 年的 MacBook Pro M1,16GB 内存,系统是 macOS Ventura。Hermes 版本是 0.4.2,Python 3.10。没有 GPU,全靠云端 API 跑。模型选的 DeepSeek V3,API Key 去 platform.deepseek.com 注册就行。DeepSeek 的定价是真的香——100 万 token 才 1 块钱。我实测了一次日报生成,平均消耗 2000-3000 token,算下来成本不到一分钱。比起那些动不动就几毛钱一次的 API,这简直像白送。

踩坑提醒:注册 DeepSeek 时,邮箱验证可能进垃圾箱。我用的 QQ 邮箱,等了 10 分钟才收到。另外,API 调用频率限制是每分钟 60 次,写日报完全够用,但如果你同时跑多个 Agent,记得加个 sleep 间隔。

设计工作记录格式:从零散到结构化

Agent 再强,也得有原料。我搞了一个叫 ~/work-log.md 的文件,随手记几笔。格式很简单:时间 + 做了什么,一行一条。比如:

09:15 处理生产环境告警,修复 Redis 连接池泄漏
11:00 和设计组对齐新首页改版方案,确认交互流程
14:30 写用户画像模块的单元测试,覆盖 3 个边界 case
16:00 代码审查 PR #284,发现一处空指针隐患

这个习惯我大概花了一周才养成。刚开始老忘,后来在终端里搞了个 alias:alias log='echo "$(date +%H:%M) $(pbpaste)" >> ~/work-log.md'。每次干完一件事,复制关键词,敲个 log 就完事。实测,平均每天记 6-8 条,每条耗时不超过 10 秒。

有个坑:我一开始用自然语言写,比如"上午改了个 bug",结果 Agent 生成日报时,信息太模糊,没法用。后来强制自己用"动作 + 对象 + 结果"的句式,比如"修复了用户登录页的 500 错误,原因是 session 超时未清理"。Agent 抓取关键信息的能力直线上升。

如果你用 Obsidian 或 Notion,也可以把记录写在那里面,但 Hermes 默认只读本地文件,所以最好导出一个纯文本副本。我试过直接读 Obsidian 的 .md 文件,但 Obsidian 的链接语法会干扰解析,建议用纯文本。

创建日报技能文件:把规则喂给 Agent

Hermes 的技能文件放在 ~/.hermes/skills/daily-report/SKILL.md。这个文件就是 Agent 的"大脑",告诉它怎么干活。我的配置大概长这样:

# Daily Report Skill

## Trigger
- Manual: hermes run daily-report
- Cron: 17:55 every weekday

## Input
- Source: ~/work-log.md
- Format: timestamp + action

## Processing
- Model: DeepSeek V3
- Temperature: 0.3
- Max tokens: 1024
- System prompt: "你是一个技术团队的日报助手。根据用户提供的工作记录,生成一份简洁、结构化的日报。禁止添加任何用户未提及的内容。"

## Output
- Format: Markdown
- Structure: 今日完成 / 遇到的问题 / 明日计划
- Length: 200-300字
- Prohibited words: "赋能"、"抓手"、"闭环"、"颗粒度"、"对齐"

Temperature 设 0.3 是关键。我一开始用默认的 0.7,结果 Agent 给我编出来"参与了跨部门协同赋能会议"这种鬼话。0.3 下输出基本忠实于记录。

禁用词列表也是血泪教训。之前生成的日报里动不动就"对齐需求"、"闭环交付",看得我尴尬。加上禁用词后,Agent 会自动规避。

设定时任务自动跑:每天省 15 分钟

执行:

hermes cron create --name daily-report --schedule "55 17 * * 1-5" --skill daily-report

每周一到周五的 17:55 自动执行。留 5 分钟复核。第一次跑差点翻车——cron 任务默认用系统 Python,但我装的 DeepSeek SDK 在 conda 环境。报错 ModuleNotFoundError。最后在 ~/.hermes/config.yaml 里加上 python_path 才解决。

还有一个坑:cron 日志默认不输出到终端。我跑了三天才发现 Agent 根本没执行,因为 work-log.md 路径写错了。日志在 ~/.hermes/logs/cron.log,用 tail -f 实时看。

实际效果:以前写日报平均 20 分钟,现在 5 分钟。一个月省 5 小时。

恢复与调试:Agent 崩了怎么办

场景一:生成空白日报——DeepSeek API 返回 503。解决方案:配 fallback 模型。

场景二:日报内容重复——旧记录没清理。解决方案:技能里加预处理,只读取当天记录。

场景三:输出格式乱掉——Markdown 符号被转义。补了规则:"使用标准 Markdown 语法"。

恢复步骤:检查版本 hermes version,备份 ~/.hermes/skills/,清 ~/.hermes/cache/ 缓存。

故障场景踩坑记录

坑一:API Key 过期——DeepSeek Key 有效期 30 天。解决方案:写定时任务提前 3 天发邮件。

坑二:cron 在周末执行——Hermes 0.4.2 bug 把 1-5 解析成含周六。升级 0.5.0 解决。

坑三:工作记录文件被误删——rm ~/work-log.md 后 Agent 空跑。技能文件加文件存在性检查。

坑四:内容太啰嗦——Agent 把"10:00 开会"扩写成小作文。加约束:"每条不超过 40 字,禁止形容词副词"。

坑五:多 Agent 冲突——日报和周报共用文件,互相覆盖。分配独立输入文件解决。

如果你也想搭,建议先从手动触发开始。我的配置文件放 GitHub 了,搜 hermes-daily-report-skill