Skip to content

Latest commit

 

History

History
101 lines (71 loc) · 4.22 KB

File metadata and controls

101 lines (71 loc) · 4.22 KB

心跳

「心跳」在 CoPAW 里指的是:按固定间隔,用你写好的一段「问题」去问 CoPAW,并可选择把 CoPAW 的回复发到你上次对话的频道。适合做「定期自检、每日摘要、定时提醒」——不用你主动发消息,CoPAW 到点就干活。

如果你还没看过 项目介绍,建议先看一眼那里对「心跳」和「频道」的说明。


心跳是怎么工作的?

  1. 你有一个文件 HEARTBEAT.md(默认在工作目录 ~/.copaw/ 下),里面写的是每次心跳要问 CoPaw 的内容(一段或几段话都行,CoPaw 会当成一条用户消息)。
  2. 系统按你配置的间隔(例如每 30 分钟)执行一次:读取 HEARTBEAT.md → 用这段内容去问 CoPaw → CoPaw 回复。
  3. 发不发到频道 由配置里的 target 决定:
    • main:只跑 CoPaw,不把回复发到任何频道(适合只做「自检」、结果自己看日志或别处)。
    • last:把 CoPaw 的回复发到你上次和 CoPaw 对话的那个频道/会话(例如上次你在钉钉和它聊,这次心跳的回复就发到钉钉)。

还可以设置 active hours(活跃时段):只在每天的某段时间内跑心跳(例如 08:00–22:00),其余时间不跑。


第一步:写 HEARTBEAT.md

文件路径默认是 ~/.copaw/HEARTBEAT.md。内容就是「每次要问 CoPaw 什么」,纯文本或 Markdown 都行,CoPaw 会整体当作一条用户消息。

示例(你可以按自己需求改):

# Heartbeat checklist

- 扫描收件箱紧急邮件
- 查看未来 2h 的日历
- 检查待办是否卡住
- 若安静超过 8h,轻量 check-in

初始化时如果执行过 copaw init(没加 --defaults),会提示你是否编辑 HEARTBEAT.md;选是会用系统默认编辑器打开。你也可以之后随时用任何编辑器改这个文件,保存即可,下次心跳会用到新内容。


第二步:在 config.json 里配置心跳

心跳的间隔、发到哪、活跃时段都在 config.json 里,路径一般是 ~/.copaw/config.json

agents.defaults.heartbeat 下可以配置:

字段 含义 示例
every 间隔多久跑一次 "30m""1h""2h30m""90s"
target 回复发到哪 "main" 不发送;"last" 发到上次对话的频道
activeHours 可选,只在每天这段时间内跑 { "start": "08:00", "end": "22:00" }

示例(只跑 CoPaw、不发到频道,每 30 分钟):

"agents": {
  "defaults": {
    "heartbeat": {
      "every": "30m",
      "target": "main"
    }
  }
}

示例(发到上次对话的频道,每 1 小时,且只在 08:00–22:00 跑):

"agents": {
  "defaults": {
    "heartbeat": {
      "every": "1h",
      "target": "last",
      "activeHours": { "start": "08:00", "end": "22:00" }
    }
  }
}

改完保存 config.json;若服务在跑,会按新配置生效(部分实现可能需重启,以实际为准)。


和「定时任务」的区别

心跳 定时任务 (cron)
数量 只有一份(HEARTBEAT.md) 可以建很多个
间隔 一个全局间隔 每个独立设定时间
投递 可选发到「上次频道」或不发 每个独立指定频道和用户
适用 固定的一套自检/摘要 多条不同时间、不同内容的任务

需要「每天 9 点发早安」「每 2 小时问待办并发到钉钉」这类多条任务?用 CLIcopaw cron create 做定时任务,不用心跳。


相关页面