12.1 一个让人偷懒的故事
我有个朋友做投资,每天早上 7 点起床第一件事是打开 10 个网站、20 个公众号,看一遍昨天的市场新闻、政策动向、研报摘要。一小时过去,他才能开始真正的工作。
他用 Codex 之后,做了三件事:
- 写了一个 Skill 叫"morning-brief",定义"每天该看哪 30 个信息源、按什么标准筛选、生成什么格式"
- 设了一个 Automation,每天早上 6:00 自动跑这个 Skill
- 让结果进入 Triage,每天 7:00 他打开手机就看到一份个人简报
现在他每天早上多了 50 分钟。他用这 50 分钟健身,体脂从 22% 降到 16%。
这一章讲的就是这种"让 AI 替你定时干活"的能力——Automations。
12.2 什么是 Automation
Automation 是 Codex 的"定时任务"机制。
简单说:你定义一个任务(比如"读取昨天的销售数据并生成日报"),设定触发条件(比如"每天早上 8 点"),Codex 就会自动执行,结果送到你的 Triage 收件箱。
跟 cron 任务的本质区别:
| cron 任务 | Codex Automation | |
|---|---|---|
| 写法 | 写 Shell 脚本 | 写自然语言描述(或调用 Skill) |
| 灵活性 | 死板 | AI 能根据上下文调整 |
| 错误处理 | 自己写 | AI 会自己重试、自我纠错 |
| 输出 | 文件 / 邮件 | Triage 收件箱 + 多种格式 |
| 谁能用 | 程序员 | 任何人 |
12.3 一个 Automation 的三个组成
┌─────────────────────────────────┐
│ 触发器(When) │
│ ── 什么时候跑 │
└─────────────┬───────────────────┘
│
▼
┌─────────────────────────────────┐
│ 任务(What) │
│ ── 做什么、怎么做、用哪些 Skills │
└─────────────┬───────────────────┘
│
▼
┌─────────────────────────────────┐
│ 交付(Where) │
│ ── 结果去哪儿(Triage / 邮件 / 文件)│
└─────────────────────────────────┘
12.4 触发器:什么时候跑
Codex 支持几种触发方式:
时间触发
最常见。支持:
- 每天某时(每天 8:00)
- 每周某天某时(每周一 9:00)
- 每月某日某时(每月 1 日 10:00)
- Cron 表达式(高级用户)
事件触发
- 文件夹有新文件(监控 ~/Downloads/)
- 收到符合条件的邮件
- 某个网页有更新
- GitHub 有新 PR
链式触发
- 上一个任务完成后触发
- 某个外部 webhook
手动触发
- 你随时可以点"立即运行一次"
新手主要用时间触发,先把"每天/每周固定动作"自动化。
12.5 任务:做什么
任务可以是:
形式 1:自然语言描述
读取 ~/Documents/work-log/ 里今天的日记,
生成一份"今日总结",按"完成 / 卡点 / 明日计划"三块写,
保存到 ~/Documents/daily-summaries/YYYY-MM-DD.md
最简单。Codex 每次按这段描述执行。
形式 2:调用 Skill
调用 daily-news Skill。
输入:行业 = AI Agent,数量 = 5 条
输出:保存到 Triage
更稳定。Skill 内部的 SOP 不会因为偶尔的 prompt 措辞变化而走样。
形式 3:调用脚本 + AI 加工
1. 运行 scripts/fetch-data.py 抓取数据
2. 让 AI 对结果分析、写一段 200 字解读
3. 输出到 reports/YYYY-MM-DD.md
确定性的事用脚本,理解和创造的事用 AI。
12.6 交付:结果去哪儿
Codex 支持几种交付方式:
1. Triage(最推荐)
结果进入收件箱,等你审核。适用于:
- 需要人工把关的任务
- 涉及对外发布、决策的任务
2. 文件
直接写入指定目录。适用于:
- 不需要审核的资料归档
- 给后续流程做输入
3. 邮件
发到指定邮箱。适用于:
- 你早晨打开邮箱就想看到的简报
- 需要发给团队的简短信息
4. Slack / Teams / 飞书 Webhook
通过插件发到指定群。适用于:
- 团队每日同步
- 异常告警
5. PR / Commit(GitHub)
自动开 PR 或提交到分支。适用于:
- 自动修小 bug
- 自动更新文档
12.7 实战:搭建一个"晨间简报" Automation
我们一步步搭一个完整的 Automation:每天早上 7 点自动整理 5 条 AI 行业新闻,发到我邮箱。
第 1 步:先写一个 Skill
在 ~/.codex/skills/morning-brief/SKILL.md:
---
name: AI 行业晨报
description: 抓取昨天 AI 行业的关键新闻,整理成 5 条要闻 + 简短点评
keywords: [晨报, 早报, brief, news, AI 新闻]
version: 1.0.0
---
## 何时使用
用户说"AI 晨报"、"morning brief"、"今日 AI 新闻"时调用。
## 输入
- 抓取范围:默认昨天(北京时间 0:00 - 23:59)
- 信息源:references/news-sources.md 中列出的网站
- 数量:默认 5 条
## 步骤
1. 用 In-App Browser 访问 references/news-sources.md 中的所有网站
2. 提取昨天发布的所有新闻标题
3. 按重要性打分(融资 > 产品发布 > 技术突破 > 观点 > 八卦)
4. 选 TOP 5
5. 每条用 references/template.md 模板生成:标题 + 一句话要点 + 50 字点评
6. 输出整体简报到当前目录 brief-YYYY-MM-DD.md
## 输出
- 文件:brief-YYYY-MM-DD.md
- 格式:Markdown
- 长度:500-800 字
## 验收
- 5 条都有出处链接
- 点评不是简单复述,要有"为什么重要"
- 没有重复(同一事件不同来源算一条)
配套 references:
~/.codex/skills/morning-brief/
├── SKILL.md
└── references/
├── news-sources.md # 信息源清单
└── template.md # 单条新闻模板
references/news-sources.md:
# AI 行业新闻源
## 中文
- 36kr.com (AI 板块)
- huxiu.com
- mp.weixin.qq.com 公众号:量子位、机器之心、AI 科技评论
## 英文
- techcrunch.com (AI tag)
- theverge.com (AI tag)
- arstechnica.com
- news.ycombinator.com
第 2 步:测试 Skill
手动跑一次:
帮我跑一下 morning brief
看输出是不是符合期望。不满意就调整 Skill。
第 3 步:创建 Automation
桌面版:菜单 → Automations → New Automation。
填表:
Name: 每日 AI 晨报
Trigger:
Type: Schedule
Cron: 0 7 * * * (每天 7:00)
Timezone: Asia/Shanghai
Task:
调用 morning-brief Skill
Delivery:
- Triage(审核版)
- Email to: cassius@example.com(自动发版)
CLI 版可以用配置文件:
# ~/.codex/automations/morning-brief.yaml
name: 每日 AI 晨报
trigger:
schedule: "0 7 * * *"
timezone: Asia/Shanghai
task:
skill: morning-brief
delivery:
- type: triage
- type: email
to: cassius@example.com
第 4 步:第一次试运行
不用等明天 7 点。点"Run Now"立即跑一次:
- 看完整执行流程
- 检查输出格式
- 调整任何不满意的地方
第 5 步:上线观察
第一周每天看输出,记录问题。一周后稳定了,你只需要每天扫一眼简报。
12.8 "两层交付"工作流
最佳实践:Codex 干活 + 人审核。
┌──────────────────┐
│ Automation 触发 │
└────────┬─────────┘
▼
┌──────────────────┐
│ Codex 执行任务 │
│ (读、写、查、整理)│
└────────┬─────────┘
▼
┌──────────────────┐
│ 结果进 Triage │
│ (草稿状态) │
└────────┬─────────┘
▼
┌──────────────────────┐
│ 你审核(早晨 5 分钟) │
└────────┬─────────────┘
▼
┌────┴────┐
▼ ▼
┌────────┐ ┌────────┐
│ 通过 → │ │ 不通过 │
│ 发布 │ │ → 退回 │
└────────┘ └────────┘
为什么不直接发?
- 质量保证:AI 偶尔出错(事实错误、链接失效、措辞不当),人审能抓出来
- 责任明确:发出去的东西署你的名字,最终责任是你
- 持续改进:每次审核中发现的问题,迭代回 Skill
什么场景可以"直接发",跳过 Triage?
- 内部消费的,不发外面(比如自己看的简报)
- 已经迭代了 3 个月,错误率 < 1%(反复验证后再放开)
- 错了影响小(小的 typo,不是事实错误)
12.9 几个值得搭的 Automation
Automation 1:每日个人简报
每天早上 7:00,整理:
- 昨天关键新闻(行业 + 公司)
- 今天日历上的会议(来自 Google Calendar 插件)
- 今天的天气和提醒
Automation 2:每周项目周报
每周五下午 5:00:
- 扫描这周的 git commit
- 扫描这周的 Slack / 飞书重要消息
- 起草周报到 Triage
- 你周一上班审完发出
Automation 3:竞品价格监控
每天早上 9:00:
- 访问 5 个竞品的官网
- 抓取主推产品价格
- 跟你们的价格对比
- 有变化时发邮件 + 飞书提醒
Automation 4:未读邮件分类
每小时一次:
- 扫描收件箱新邮件
- 按"立即处理 / 今日 / 本周 / 不重要"分类
- 把"立即处理"摘要推送到飞书
- 把"不重要"标记已读归档
Automation 5:客户咨询回复模板
每次收到新工单(事件触发):
- 调用 customer-faq Skill 找匹配回答
- 生成回复草稿到 Triage
- 客服点击"发送"或"修改后发送"
Automation 6:周末账单整理
每周日晚上 8:00:
- 扫描这周的支付宝、微信账单
- 按消费类别分类
- 生成开销报告
- 跟预算对比,超支项目标红
Automation 7:技术博客自动收录
每天晚上 11:00:
- 检查你订阅的 RSS / 公众号
- 把今天新文章读一遍
- 选出"值得收藏的"3 篇
- 提取要点存到 ~/Notes/inbox/
Automation 8:Bug 自动初筛
每次 GitHub 有新 Issue(事件触发):
- 读 Issue 描述
- 判断是 bug 还是 feature
- 如果是 bug,初步分析可能原因
- 在 Issue 评论里回复你的初步判断
- 如果是低优先级 bug 且改动小,直接尝试修
Automation 9:定期备份与归档
每周一凌晨 2:00:
- 把本周生成的所有报告归档到 archives/
- 把超过 6 个月的报告压缩
- 同步到外部硬盘
Automation 10:学习计划检查
每天晚上 10:00:
- 检查今天的学习目标完成情况(来自 todo.md)
- 提醒明天该学什么
- 周日生成本周学习总结
12.10 Automation 的"保护"机制
定时跑很爽,但出错了就累积错。Codex 内置几个保护:
失败重试
任务失败后自动重试 3 次(指数退避:1s、5s、25s)。
异常告警
如果重试后仍失败,发告警到你设定的渠道(默认是 Triage 顶部红色提醒 + 邮件)。
资源限制
每个 Automation 单次执行最长 10 分钟(可配置)。超时自动终止。
配额管理
频繁跑会消耗你的 ChatGPT Plus / Pro 配额。控制台能看每个 Automation 的"日均消耗 token"。
审计日志
每次执行的完整记录(输入、输出、耗时、用了哪个 Skill)保存 30 天。出了问题可以追溯。
12.11 一些常见坑
坑 1:信息源失效
网站改版、公众号删除、API 变了——Skill 用的"references/news-sources.md"也要定期更新。建议每月一次"维护日"。
坑 2:触发时间冲突
如果你设了多个 Automation 都在 7:00 跑,会排队。错峰:6:55、7:00、7:05……
坑 3:Triage 堆积
Automation 每天产出,但你没每天审,结果 Triage 里堆了 50 条未审。两个解决:
- 每天固定时间清理 Triage(比如刚到办公室那 10 分钟)
- 给低优先级 Automation 设"一周不审就自动归档"
坑 4:电脑没开机
桌面版 Automation 依赖电脑开着。要"完全不依赖电脑",用 Codex Web 的云端 Automation 或者 GitHub Action。
坑 5:泄露敏感信息
Automation 自动发邮件 / 推 Slack——如果内容里有敏感数据(客户名、价格、内部数据),可能泄露。审核 Skill 时检查"输出会不会包含敏感信息"。
12.12 进阶:Automation 链
复杂场景,让多个 Automation 串起来:
06:00 抓取竞品价格 ──→ 写入 prices.csv
07:00 读取 prices.csv,生成对比报告 ──→ 进 Triage
08:00 你审核 ──→ 通过则发飞书群
09:00 飞书群收到消息,团队开始一天工作
这就是"端到端"的自动化业务流。
12.13 本章小结
- Automation = 自然语言版的定时任务,比 cron 更聪明
- 三要素:触发器 + 任务 + 交付
- 任务推荐用 Skill 包装,更稳定
- "两层交付"工作流:Codex 做 + 人审,平衡效率与责任
- 10 个值得搭的 Automation:晨报、周报、监控、回复、归档...
- 保护机制:重试、告警、限额、审计
- 常见坑:信息源失效、触发冲突、Triage 堆积、电脑关机、敏感泄露
第四篇结束。下一篇我们走入"实战篇"——按你的身份对号入座,看具体场景怎么用。从 第十三章 · 文字工作者的 Codex 开始。