自动化
自动化是一项你设置一次、然后让 Codeg 自行运行的智能体任务——按计划运行,或按一下按钮运行。你像撰写一条普通消息那样撰写它(一段提示词、一个智能体、一个文件夹、一种模式),给它设定一个节奏,此后 Codeg 便会以无头方式触发它:每次运行都会启动智能体、完成工作,并落地为一次你可以打开阅读的普通对话。无需任何人守在键盘前。
它是聊天频道的“放手不管”对应物:聊天频道让你从手机上驱动 Codeg,而自动化则在完全无人驱动的情况下运行。对于那些你不愿手动启动的例行智能体工作,就用它——每晚一次的代码审查、每周一次的依赖升级、CI 排障、周期性的安全扫查。
自动化位于何处
自动化有自己的视图,从左侧边栏的自动化(那个 ⚡ 图标项,就在你的对话旁边)打开。这是一个双栏界面:左侧是你的自动化列表,右侧是所选自动化的详情。如果某次计划运行失败了,侧边栏项会带上一个小徽标以引起你的注意——当你打开该视图时它就会清除。
第一次进入时没有任何内容可显示,因此你会来到一个可供起步的模板库。
创建一个——从模板或从零开始
点击新建自动化,然后要么选择一个模板,要么从空白开始。Codeg 附带七个模板,每个都是一段可直接编辑的起始提示词:
| 模板 | 作用 |
|---|---|
| 代码审查 | 审查近期变更中的缺陷、回归和质量问题 |
| 依赖更新 | 找出过时的依赖并应用安全的升级 |
| 测试覆盖 | 为价值最高的缺口编写测试 |
| 安全审计 | 扫查注入、认证漏洞、密钥处理等问题 |
| CI 排障 | 调查失败的检查并提出修复方案 |
| TODO 清理 | 收集 TODO/FIXME 注释并排定优先级 |
| 发布说明 | 总结自上一个发布标签以来的变更 |
模板只是为编辑器填充初始内容——一段建议的提示词和节奏,之后由你调整。编辑器本身就是你在普通对话中使用的同一个 composer:一个富文本提示框,支持用 @ 提及文件、智能体、会话、提交和技能,还有 / 命令菜单、一个智能体选择器,以及模式与选项栏。凡是你会为一次性消息设置的东西,都可以在这里捕获为可复用的启动配置。给它起个名字,写好提示词,剩下的就是在何处和在何时。
将它指向一个文件夹——并隔离运行
在目标下,选择自动化运行所在的工作区文件夹,并选择它如何隔离自己的工作:
- 每次运行新建 worktree (默认)——每次运行都会新建一个全新的 git worktree,因此它绝不会触及你的工作树,重复运行之间也绝不会相互冲突。对于任何会写入文件的操作,这都是你想要的。
- 在文件夹中运行——运行直接在该文件夹的树中进行,可选地在你选定的分支上进行。它会共享你未提交的更改,因此可能与正在进行的工作发生冲突——Codeg 会就地这样提示你。(仅存在于远程的分支需要使用 worktree 选项;共享模式无法跟踪它。)
为它排期——或保持手动
在触发器下,选择按计划或仅手动。
对于计划,你不必手写 cron。这里有一键预设——每小时、每天上午 9 点、工作日上午 9 点——如果你需要,还有一个原始 cron 输入框,以及一个可视化的计划生成器(选择一个频率——每 N 分钟、每小时、每天、工作日、每周的某个工作日、每月的某一天——它就会写出表达式)。一行实时的下次运行会精确显示它下次将在何时触发,采用你设备自动检测的时区,且由调度器所用的同一个求值器计算得出——因此预览绝不会骗你。
如果你确实要手写 cron,它就是标准的五个字段:
┌─ minute (0–59)
│ ┌─ hour (0–23)
│ │ ┌─ day of month (1–31)
│ │ │ ┌─ month (1–12)
│ │ │ │ ┌─ day of week (0–6, Sun–Sat)
│ │ │ │ │
0 9 * * 1-5 # 09:00, Monday–Friday
0 * * * * # every hour, on the hour
*/30 * * * * # every 30 minutes仅手动的自动化永远不会自行触发——它们会一直待命,直到你按下立即运行。
一次运行究竟做了什么
无论是按计划触发还是你点击了立即运行,一次运行都是一个真实、实时的会话:
- 它以无头方式启动智能体,并产生一次普通对话,该对话在它一开始的那一刻就出现在你的侧边栏中。打开它即可观看工作实时呈现,或亲自介入。
- 它会重放你保存的模式,因此它自行推进的程度恰好就是你在编辑器中选择的那种模式。一次运行是一个真正的智能体会话:如果智能体停下来请求权限或提出问题,这会在所产生的对话中呈现出来。若要实现真正无人值守的节奏,请选择一种不会因等待批准而暂停的模式,或者让任务保持只读——那些分析类模板是特意写成不更改文件的。
- 每个自动化同一时间只运行一次。 如果下一次到期时上一次运行仍在进行,新的这次会被记录为已跳过,而不是叠加上去。
详情面板的运行历史是每次运行的时间线——其状态(运行中、成功、失败、已取消或已跳过)、开始时间和耗时、一行摘要或错误信息、一个用于跳入其产物的查看对话链接,以及在运行仍在进行时的一个取消按钮。
运行发生在 Codeg 运行期间
调度器位于 Codeg 内部——桌面应用或服务器。在 Codeg 关闭期间到期的计划,会在它下次打开且到期时触发一次,而不是为每个错过的时段各触发一次。而如果 Codeg 在运行中途退出,那次运行会在下次启动时被标记为失败(绝不会伪装成已完成)——该自动化只会在它的下一个计划时间再次触发。
管理它们
每一行——通过 ⋯ 菜单或右键单击——都提供立即运行、启用/禁用、编辑和删除;详情面板上也有相同的操作。禁用会暂停一个自动化的计划而不删除它。当你有好几个时,可按文件夹或按启用状态筛选列表。
须知
- 在服务器上运作方式相同。 该引擎在桌面应用和独立服务器中都能运行,因此无论 Codeg 在哪里运行,自动化都会触发。(如果桌面应用和服务器共享同一个数据目录,那么只有其中之一会驱动这些自动化——它们不会重复触发。)
- 每次运行都是一个完整的智能体会话——有它自己的令牌开销,在你的历史中有它自己的条目。频繁的计划会把两者成倍放大。
- worktree 运行会留下文件夹。 每个按次运行的 worktree 都是一个由 Codeg 跟踪的真实文件夹;用同样的 worktree 工具即可清理它们。较旧的运行历史会随时间自动修剪。
后续步骤
- 聊天频道——让 Codeg 无需人工干预运行的另一种方式:从 Telegram、Lark 或 WeChat 驱动它。
- Git 与 Worktree——按次运行的隔离是如何工作的,以及如何管理运行所创建的 worktree。
- 使用智能体——自动化所重放的智能体和模式。
- 技能——把一个可重复的工作流封装进一个
/command,并将其放入自动化的提示词中。