定时任务与目标
按日历计划运行任务,并让智能体追求一个在每轮结束后自我评估的目标。
除单次对话外,NevoFlux 还能按计划运行工作,并追求一个在每轮结束后自我检查的
目标。这两项能力在 v0.3.11 中作为 /schedule 与 /goal 技能引入。若需要低于 1
小时、由事件驱动的重复运行,请改用循环。
定时任务(/schedule)
一个 schedule 是周期性或一次性的后台作业 —— 类似 "routines"。用自然语言告诉智能体, 它就会为你创建:
/schedule 每个工作日早上 9 点,汇总我未读的新闻邮件并通知我在创建前,智能体总会先与你确认该 schedule 的名称和一个人类可读的节奏。
- 节奏 —— 周期性作业使用 5 字段 cron 表达式(如
0 9 * * *),一次性作业使用at时间(RFC3339,或 Unix 秒)。二者互斥。 - 最小节奏为 1 小时。 触发频率高于此的 cron 会被拒绝 —— 更高频的工作请使用 循环。
- 运行内容 —— 每次触发重新下发的原始提示,或一个被包装的技能。
- 模式 ——
chat(默认)、browser或agent,决定每次运行获得的工具目录。 - 浏览器策略 ——
none(默认,无需浏览器)、headless(后台网页或登录任务)或live(借用你当前可见的窗口/标签页 —— 仅在运行确实需要该状态时使用)。若触发 时所需浏览器不可用,运行可选择defer(延后)或skip(跳过)(on_unavailable)。 - 补跑 —— 开启
catch_up后,若 NevoFlux 离线期间错过了某次计划,下次启动时会补 触发一次。
Schedule 由 NevoFlux 守护进程触发,因此只要 NevoFlux 在运行它们就会运行;轮询粒度远 小于 1 小时的最小节奏。
管理定时任务
智能体提供以下工具(同时也呈现给侧边栏 UI):
| 工具 | 作用 |
|---|---|
schedule_create | 创建周期性或一次性作业 |
schedule_list | 列出所有 schedule(活动、暂停、已运行、已取消) |
schedule_pause / schedule_resume | 暂停;或恢复(从当前时间重新计算下次触发) |
schedule_run_now | 立即触发一次,不影响正常节奏 |
schedule_cancel | 永久取消(终态) |
schedule_runs | 最近运行历史 —— 状态、时间、错误 |
通知
无论定时与否,一次运行都能通过 notify_user 工具在侧边栏关闭时也触达你 —— 它会
发送桌面通知外加一个应用内 toast。它用于提醒和你明确要求被告知的事项,而非用于叙述
日常进度。
示例: "每天早上 8 点查看天气,如果预报有雨就通知我。"
目标驱动的运行
一个 schedule 可以携带自然语言的成功条件(goal_condition)。设置后,每次触发都
会运行一个 目标循环:智能体在每轮后重新评估,持续进行直到目标达成,或耗尽轮数/预算。
goal_max_turns—— 启用目标的运行的轮数预算(默认 20)。max_tokens_per_run—— 每次运行的 token 预算;目标轮次与评估器调用都会计入。evaluator_model/evaluator_provider—— 判定条件所用的模型/提供商(默认沿用当前 的;ACP/CLI 类提供商以降级的一次性模式判定)。
会话目标(/goal)
你也可以给智能体设定一个当前对话的目标,与任何 schedule 无关:
/goal 持续修复,直到 `cargo test` 退出码为 0每轮之后,是否完成由以下方式判定:
- 一个针对最近工具结果的可选程序化
check—— 若成立,则目标达成且完全不调用 模型(因此在没有 API 密钥、或仅有 ACP/CLI 提供商时也可用);否则 - 一个独立的、无工具的评估器模型。
只要条件可机器验证(退出码、从页面读回的值、返回结果的知识库查询),就优先使用
check。一个 check 包含:
matches—— 子串,或用斜杠包裹时为/正则/(必填)tool—— 仅限某一工具的输出(可选;省略则匹配任意工具)negate—— 要求该模式不出现而非出现(可选)
条件本身必须能从对话输出中自证(把检查点说清楚,如 "cargo test 退出码为 0"),最长
4000 字符,并带一个可选的 max_turns(默认 20)。
| 工具 | 作用 |
|---|---|
goal_set | 设置会话的完成条件(+ 可选 check、max_turns、评估器) |
goal_status | 报告状态(活动 / 已达成 / 已过期 / 已清除 / 无)、已用轮数、上次原因 |
goal_clear | 清除活动目标并停止轮后评估 |
同一套
check语义也驱动循环的每次迭代verify选项 —— 见 循环。