定时任务

Fenno 支持按固定时间自动运行 AI 任务,适合日报汇总、周期性代码检查、知识库整理、例行维护等场景。

你可以通过两种方式创建定时任务:

  • Portal:在控制台中手动创建和管理任务
  • 仓库配置:在默认分支的 .fennoai.yml 中声明 schedule: 任务

什么时候适合用定时任务

  • 每天生成 Issue / PR 摘要
  • 定期扫描仓库中的 TODO、失败用例或过期依赖
  • 周期性整理文档、知识库或发布说明
  • 在固定时间触发例行分析,不依赖人工评论

方式一:通过 Portal 创建

在 Portal 的 Scheduled Tasks 页面中,你可以直接创建一个任务。当前可配置字段包括:

  • Task Name:任务名称,同一仓库内需要唯一
  • Repository:执行目标仓库
  • Branch:执行分支
  • Agent:使用的 AI Provider
  • Model:可选,默认可保持 auto
  • Cron 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_provider
  • branch:可选,未设置时使用仓库默认分支

配置文件路径

推荐使用 .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 中:

  • 编辑
  • 暂停 / 恢复
  • 删除

这类任务的真实来源始终是仓库配置文件。

限制与注意事项

  • 单个仓库最多支持 20schedule 任务
  • 单个任务名最长 200 个字符
  • agent 只能填写受支持的 AI Provider
  • .fennoai.yml 里只适合放模型与调度相关配置,不要写 API Key 等敏感信息

常见问题

为什么我改了 .fennoai.yml,任务没有立刻更新?

因为 schedule: 任务是在默认分支 push 后同步的。请确认修改已经进入默认分支,并且仓库产生了新的 push。

为什么 Portal 里不能编辑某些任务?

如果任务来源于 .fennoai.yml,Portal 只提供查看和触发能力,编辑入口由仓库配置管理。

应该优先用哪种方式?

  • 想快速创建、由 Portal 集中管理:用 Portal
  • 想把自动化规则纳入版本管理、随仓库演进:用 .fennoai.yml

支持

需要协助或定制方案?

部署指导、企业支持,或基于 Fenno AI Gateway 的模型聚合方案。

contact@fenno.ai400-808-9176 转 1
联系我们