Skip to content

Agenda(日程)

侧栏 → Agenda Profiles(位于 Tasks 分组),再在 Agent 编辑页 → Agenda 中按 Agent 开启。

Agenda 是 sbot 的有状态提醒 / 日程系统。每个日程条目(待办、提醒、日程、周期任务或未来自动化)携带一个或多个触发器;触发器到点时,sbot 把消息投递到该条目绑定的会话或渠道。

Heartbeat(固定间隔的提示词循环)不同,Agenda 是 内容驱动 的:条目可以由 Agent 在对话中创建,并在配置 sync 模型后,每轮对话结束自动保持同步。

条目与触发器

一个日程条目包含内容、分类、优先级、可选的截止时间和完成模式。每个触发器按计划触发:

触发器类型expr 含义示例
absolute单个 ISO 时间,触发一次2026-07-01T09:00
interval两次触发间隔的毫秒数86400000(每 24 小时)
cron6 字段 cron(秒 分 时 日 月 周0 0 9 * * 1-5(工作日 9 点)

触发时把 message 按其 action 模式投递到绑定的会话 / 渠道,并在 trigger_fire 日志表里记一行(纯审计,不参与调度)。一次性或有限次数的日程正常耗尽后进入已完成。一次性 absolute 触发器投递失败会短暂重试;错过宽限时间或重试超期后会停用,且仅当该条目已没有其它启用触发器时,条目才进入已过期。已过期条目作为历史保留,不会自动物理删除。

配置项

Agenda Profile 是存储 + 可选自动同步。侧栏 → Agenda Profiles → 新建:

字段说明
名称该 Profile 的显示名称
启用暂停该 Profile,而不删除配置
Sync 模型可选。每轮对话后从对话自动同步日程的模型(留空则关闭同步)
Sync 提示词可选。控制同步行为的提示词文件(缺省为 agenda/sync/default.txt

随后在 Agent → Agenda 区块开启 Agenda 并选择 Profile。开启后会注册日程工具;配置 sync 模型后,每轮对话都会从对话内容自动校正日程条目。

AgendaSync 通常用一次模型调用读取本轮对话和全部待处理条目的完整结构。输入超过 Sync 模型预算时,系统复用同一个模型抽取最多 12 条日程变更意图,先对完整 Pending 目录做本地相关性排序,再最多用 6 个 Token 预算批次筛选紧凑卡片。各批候选携带可跨批比较的相关性分数,最终 Writer 最多读取 20 条候选的完整结构;仍超预算时,触发消息改为 60 字符预览。若本轮对话本身过长,会保留开头与结尾并截去中段。Selector 的 shouldSync 只是建议,超预算路径仍会让最终 Writer 复核;单批失败也会回退到本地候选,不会丢掉整轮。因此一次降级同步最多调用模型 8 次(分析 1 次 + 卡片 6 批 + Writer 1 次)。这里没有独立的 Selector 模型配置。

在 Agenda Profiles 页面 → 查看 可浏览已存条目、按待处理 / 已完成 / 已取消 / 已过期筛选、手动 完成 / 取消,也可以新增 / 编辑 / 停用 / 重新启用 / 删除触发器、手动触发测试,并查看每个触发器的触发历史。恢复已过期条目只会把主体改回待处理;仍需另外调整时间或启用合适的触发器。

Agent 工具

开启后,Agent 获得以下工具:

工具用途
agenda_create创建带一个或多个触发器的条目
agenda_list列出当前条目(触发器的 message 截断为预览)
agenda_get按 id 读单条完整信息:message 全文、已停用的触发器、时间戳,可选触发历史
agenda_edit一次原子调用改主体字段和/或触发器(add / patch / remove)
agenda_close终结条目——outcome: done(做完了)或 dropped(不要了)
agenda_wiki边界场景的工具内参考(多触发器、dueAt vs 触发器、action 选择等)

Agenda vs Heartbeat

需求使用
有状态的待办 / 提醒 / 日程,从对话自动同步Agenda
一次性、间隔或 cron 触发,并保留投递审计历史Agenda
每隔 N 秒 / 分钟对某 Agent 运行固定提示词Heartbeat

基于 MIT 许可证发布。