定时任务
Fenno 支持按固定时间自动运行 AI 任务,适合日报汇总、周期性代码检查、知识库整理、例行维护等场景。
你可以通过两种方式创建定时任务:
- Portal:在控制台中手动创建和管理任务
- 仓库配置:在默认分支的
.fennoai.yml中声明schedule:任务
什么时候适合用定时任务
- 每天生成 Issue / PR 摘要
- 定期扫描仓库中的 TODO、失败用例或过期依赖
- 周期性整理文档、知识库或发布说明
- 在固定时间触发例行分析,不依赖人工评论
方式一:通过 Portal 创建
在 Portal 的 Scheduled Tasks 页面中,你可以直接创建一个任务。当前可配置字段包括:
Task Name:任务名称,同一仓库内需要唯一Repository:执行目标仓库Branch:执行分支Agent:使用的 AI ProviderModel:可选,默认可保持autoCron Expression:5 段 cron 表达式Prompt:交给 AI 的执行说明
示例:
Task Name: Daily review summary
Repository: acme/platform
Branch: main
Agent: claude
Model: auto
Cron Expression: 0 9 * * *
Prompt: Summarize the last 24 hours of merged PRs and open issues, then draft a short engineering update.
创建后,你可以在 Portal 中:
- 查看任务列表
- 立即触发一次运行
- 查看运行历史
- 查看最新日志
- 编辑、暂停、删除手工创建的任务
方式二:通过 .fennoai.yml 声明
如果你希望把自动化规则和仓库一起管理,可以在默认分支添加 .fennoai.yml:
default_ai_provider: claude
schedule:
- name: Daily issue triage
cron: "0 9 * * *"
prompt: "Review newly opened issues in the last 24 hours, group them by theme, and draft a triage summary."
- name: Weekly dependency check
cron: "0 10 * * 1"
branch: main
agent: codex
prompt: "Check dependency updates merged in the last 7 days and summarize any follow-up work needed."
每个 schedule 任务支持这些字段:
name:任务名,必填,同一仓库内唯一cron:5 段 cron 表达式,必填prompt:任务提示词,必填agent:可选,未设置时使用default_ai_providerbranch:可选,未设置时使用仓库默认分支
配置文件路径
推荐使用 .fennoai.yml。同时兼容这些旧路径:
.xgopilot.yml.codeagent.yml.github/fennoai.yml.github/xgopilot.yml.github/codeagent.yml.fenno/fennoai.yml.codeagent/xgopilot.yml.codeagent/codeagent.yml
Fenno 会按优先级读取第一个找到的文件。
Cron 规则
- 使用标准 5 段 cron:
分钟 小时 日 月 星期 - 最小执行间隔为 1 小时
- 不支持秒级表达式
常见示例:
0 9 * * * 每天 09:00
0 */6 * * * 每 6 小时
0 10 * * 1 每周一 10:00
0 9 1 * * 每月 1 日 09:00
同步与生效方式
Portal 手工创建的任务在保存后即可生效。
仓库内 schedule: 任务的同步方式不同:
- Fenno 会在默认分支收到 push 后重新读取仓库配置
- 新增或修改
schedule后,需要把配置提交到默认分支 - 删除某个
schedule项后,对应的 in-repo 任务也会被删除
这意味着仅在功能分支修改配置、但未合入默认分支时,线上任务不会更新。
Portal 与 in-repo 任务的边界
通过 .fennoai.yml 创建的任务可以在 Portal 中查看和手动触发,但不能在 Portal 中:
- 编辑
- 暂停 / 恢复
- 删除
这类任务的真实来源始终是仓库配置文件。
限制与注意事项
- 单个仓库最多支持
20个schedule任务 - 单个任务名最长
200个字符 agent只能填写受支持的 AI Provider.fennoai.yml里只适合放模型与调度相关配置,不要写 API Key 等敏感信息
常见问题
为什么我改了 .fennoai.yml,任务没有立刻更新?
因为 schedule: 任务是在默认分支 push 后同步的。请确认修改已经进入默认分支,并且仓库产生了新的 push。
为什么 Portal 里不能编辑某些任务?
如果任务来源于 .fennoai.yml,Portal 只提供查看和触发能力,编辑入口由仓库配置管理。
应该优先用哪种方式?
- 想快速创建、由 Portal 集中管理:用 Portal
- 想把自动化规则纳入版本管理、随仓库演进:用
.fennoai.yml