07 / AUTOMATION

后台与定时任务

在交互模式启动 siada-cli 时,会同时拉起一个后台守护进程,用它执行定时任务、整理每日进展,并按需推送消息。这一章说明如何查看和停止它,以及把周期性的工作交给它。


守护进程

守护进程是独立于当前会话的后台进程,有自己的运行状态与日志。它随交互会话启动;非交互的 --prompt 运行不会启动它。退出终端界面不会停止守护进程,需要显式结束。

TERMINAL
siada-cli --daemon-status
siada-cli --stop-daemon
siada-cli --restart-daemon

--daemon-status 会显示进程是否运行;--stop-daemon 结束后台进程,--restart-daemon 先停止再启动。后台发现、等待你处理的任务可以在会话里输入 /task-list 查看。

siada-cli --no-daemon 禁止本次启动自动拉起守护进程。它不会停止已经运行的后台进程;需要停止时,先执行 siada-cli --stop-daemon。

用对话创建定时任务

直接说清时间、项目目录和任务内容即可。Siada 使用 manage-cron-task 技能保存周期任务,由守护进程到点后在本机执行,并记录结果。

对话输入示例
每天早上九点半,按照 docs/release.md 编译并打包。
每周五 18:00 汇总本周提交,生成一份周报草稿。
每天凌晨两点执行测试用例,失败时说明原因。

查看、修改、停用和删除同样用对话完成,例如“列出所有定时任务”“把周报改到周五 17:30”“先停用每天凌晨的测试任务”。改动通常在半分钟内生效,不需要重启守护进程。

任务依赖本机的守护进程

定时任务只在守护进程运行时触发。机器处于关机或休眠状态、或守护进程已经停止时,任务不会在这个时间段执行;重新启动 siada-cli 后再查看任务状态即可。

每日摘要

开启每日摘要后,后台会在设定时间根据当天的工作记录整理一份进展摘要。生成时间默认是 06:00,为了避免同时占用资源,实际开始时间会在一个时间窗内错开。

开启推送后,摘要会在 08:30 之后的错开窗口内发送到已配置的 IM(例如飞书),发送时间同样不是精确到分的一刻。飞书侧的接入方式见 飞书远程入口。

生成与推送由同一个开关控制

只有 proactive.send_daily_summary_to_im 打开时,后台才会安排每日摘要任务;关闭时不会生成摘要文件,也就不会推送到 IM。

后台设置

后台行为写在个人配置 ~/.siada-cli/conf.yaml 的 proactive 段中。没有对应命令的设置,可以编辑配置,或请 Siada 帮你改。

配置项默认值作用
proactive.enabledtrue每日固定工作与主动分析开关;单独创建的周期任务按各任务开关运行。
proactive.daily_task_execution_time"06:00"每日摘要开始生成的时间,随后在时间窗内错开执行。
proactive.daily_im_send_time"08:30"摘要最早发送到 IM 的时间;实际发送会在之后的窗口内错开。
proactive.send_daily_summary_to_imfalse生成每日摘要并推送到已配置的 IM。
proactive.llm_config未设置为后台与定时任务单独指定模型,写法与顶层 llm_config 相同。
~/.siada-cli/conf.yaml · 示例
proactive:
  enabled: true
  daily_task_execution_time: "06:00"
  daily_im_send_time: "08:30"
  send_daily_summary_to_im: true
  llm_config:
    model: "your-model-id"

用 /task-list 查看后台发现的任务。你主动创建的周期任务会按计划触发,需要暂时停止时,停用该任务或停止守护进程。

修改 proactive 段后,重启守护进程让设置生效:

TERMINAL
siada-cli --stop-daemon
siada-cli

版本自动更新

守护进程默认会在后台检查并安装新版本,相关设置位于 auto_update 段:enabled(默认 true)控制开关,check_interval_minutes(默认 30)控制检查间隔,channel(默认 prod)选择发布通道。

TERMINAL
siada-cli --just-check-update
siada-cli --upgrade

--just-check-update 只检查一次版本并返回结果,不会安装,适合放进脚本里判断;需要立刻升级时用 --upgrade。启动时的版本检查由 --check-update 控制,默认开启,也可以用 --no-check-update 关闭。