自动化
Letaido 如何按计划为你运行工作。两种方式:一种是运行智能体为你构建的小程序;另一种是唤醒智能体,让它自己完成工作。
你描述想要完成的任务和时间。智能体会编写自动化流程、选择计划时间、请求一次批准,然后从那时起运行它。每次运行的输出(stdout、stderr、退出代码)都会被存储,方便你稍后查看。
两种自动化
1. 脚本化自动化
智能体只需编写一次小程序,然后按计划为你运行。快速、便宜且可预测:每次运行的步骤都不会改变。当任务是机械性的,且输出每周看起来都一样时,就使用它。
示例提问:
- "每周一 9 点,拉取上周的关键词变化数据,并在 Slack 上私信我。"
- "每月 1 日,将上个月的数据归档到报告归档中。"
- "每小时刷新 Brand Radar 缓存,让 Dashboard 立即加载。"
2. Agent 自动化
日程不会运行已保存的程序,而是用一条书面指令(即 提示词)唤醒智能体。智能体每次都会重新读取它,查看你当前工作区中的内容,并决定如何行动,就像它在与你聊天时一样。
当工作需要判断、运行之间情况会变化,或者你希望智能体在每个周期都做出一点小改进,并让这些改进随着时间累积起来时,就使用它。
示例提问:
- “每天 UTC 9 点,查看工作区中的变化,并更新团队 wiki。”(这是上方列表中的 Wiki 同步 自动化,将在下一节介绍。)
- “每周五下午,查看本周的竞争对手数据,并告诉我周一有哪些值得关注。”
- “每周一,查看这个着陆页草稿,找出一个最重要的改进点,并应用它。”运行几周后,页面会自行重写:看看经过多轮循环后会发生什么。
注意: Agent 自动化比脚本式自动化成本更高(每次运行都会调用一次 LLM,而不是普通的 Python),但它们能处理脚本无法完成的工作。
托管自动化(由 Letaido 预安装)
一些自动化会预安装在每个工作区中,并随着 Letaido 对它们的改进而保持最新。第一个托管自动化是 Wiki 同步,这是一项 Agent 自动化,每天运行,通过提炼新的聊天会话、文件编辑和上传内容,让你的工作区长期记忆在 ~/workspace/wiki/ 中保持最新。
wiki/ 文件夹是工作区长期记忆的概念验证:它是智能体记录决策、命名实体、惯例和近期工作的地方,让未来的聊天可以从过去中断的地方继续。Wiki 同步会让它保持最新,无需你记得去更新它。
托管的自动化在“自动化”标签页中标记为预安装,默认只读。如果你想自定义其中一个,点击自定义将其分叉为可编辑副本。你的分叉副本会保留在你的工作区中;原始版本会继续随 Letaido 的更新运行。
触发器(即将推出)
目前所有自动化流程都由 cron 触发。下一波更新将添加事件驱动触发器,这样当已连接的应用中发生某件事时,自动化流程就能触发:新的 GitHub PR 被打开、HubSpot 交易移动到 Closed-Won、Slack 消息发布到特定频道。
这会解锁如下模式:
- “每当我们的主仓库中有新的 PR 打开时,启动 Claude Code 和 Codex 进行安全审查,然后将联合摘要发布到 #engineering。”
- “每当有人在 Slack 的 #incoming-leads 中发帖时,在 Ahrefs 中查找该公司,并回复一段 4 行的背景摘要。”
在此之前,你现在已经可以通过将轮询 webhook 队列的 Scripted 自动化与 Webhooks 和触发器 中描述的订阅结合起来,对第三方事件采取行动。Slack、GitHub、HubSpot、Linear、Notion、Webflow 以及其他十几个提供商已经将事件传送到该队列;按 cron 计划运行的脚本只需取出这些事件并执行操作。
何时请求自动化 vs 一次性任务
需求的形式会告诉你想要哪一个。
- 如果你说“每周一”“每个季度”“每当 X 发生时”:自动化。
- 如果你说“本周一”“现在”“针对这一个 URL”:一次性聊天运行。
相比之下,一次性任务是指你现在只想执行一次的任何操作:
- "提取上周的数据,并给我摘要。"
- "检查这份包含 100 个 URL 的列表,并告诉我哪些返回 404。"
批准是什么样的
首次注册自动化时,你会看到一个审批卡片,其中包含:
- 名称和单行描述。
- 计划(cron 表达式)。
- 类型(脚本式或智能体)。
- 模型和上下文上限(用于智能体自动化)。
- 脚本正文或提示词正文。
所有者或管理员点击一次。之后,自动化会按计划运行。你可以在自动化标签页中暂停、恢复、手动触发(立即运行)、自定义或删除它。
常见计划
| 频率 | Cron 表达式 |
|---|---|
| 每 5 分钟 | */5 * * * * |
| 每小时整点 | 0 * * * * |
| 每天 9:00 UTC | 0 9 * * * |
| 每周一 8:00 UTC | 0 8 * * 1 |
| 每天两次(上午 9 点,下午 6 点) | 0 9,18 * * * |
此主机上的 Cron 时间为 UTC。如果你需要本地时区,agent 会选择一个全年都能映射到你本地时间的 UTC 时间,或者添加一个脚本内的 zoneinfo 守卫,仅在本地时间处于正确窗口时才执行。DST 很烦;当它带来问题时,agent 会告诉你。
依赖项
如果某项自动化需要尚未获批的 Python 包或连接器,智能体将:
- 检查依赖项是否存在。
- 如果不存在,请通过标准审批流程请求安装或连接器批准。
- 等待所有者/管理员批准。
- 然后注册自动化。
你会看到一张针对依赖项的批准卡片,以及一张针对自动化的批准卡片。该智能体通常会批量处理相关请求,因此你只需为整个流程点击一次,而不是点击三次。
此工作区中正在运行哪些自动化
你可以在工作区的 Automations 选项卡中列出它们。你正在阅读的文档网站由其中三个维护:
- Wiki 同步(每天,由 Letaido 管理):一种 Agent 自动化,会读取新的聊天会话、文件编辑和上传内容,并将其提炼到位于
~/workspace/wiki/的工作区 wiki 中。这是接下来两个自动化所依赖的长期记忆。 - 文档同步(每 30 分钟):一种脚本化自动化,会读取
~/workspace/docs/中的 markdown,将其渲染为 HTML,并推送到公开站点,让访问者在半小时内看到最新版本。 - 文档自动更新建议(每周一 10:00 Europe/Bucharest):一种 Agent 自动化,会读取 wiki,列出过去一周工作区中的变化,并按章节提出具体编辑建议,供 Andrei 审阅。仅提供建议;不自动发布。
限制
- 自动化运行会在 1 小时后超时。较长的任务应拆分为多个阶段,并将中间状态写入数据库。
- 每次运行的 stdout 和 stderr 上限为 50 KB。更大的内容应写入文件或数据库行。
- 计划任务在获批后由平台管理。要更改计划,agent 会注册新的自动化并移除旧的自动化;它不会静默编辑 cron。
底层机制。 每个自动化都是平台自动化表中的一行加上一条 crontab 条目。运行器会 shell 执行脚本(Scripted),或使用已保存的提示词启动一个新的智能体聊天(Agent),同时捕获 stdin/stdout/stderr,设置一个运行 ID 环境变量,并写回运行记录。如果脚本导入了任何未在系统范围内安装的内容,运行会快速失败,并在运行历史中显示清晰的错误。