SuperAPI AI 工具集

pulse

智能体与模型

查看项目

更新于 10-26 18:53

技能介绍

用途

pulse 是 bro 工具集中的会话节拍器技能,用于让一个会话按固定节奏醒来,检查长时间运行的任务(如 fleet、loop、convoy 类工作),避免盲目轮询或长时间失去可视性。资料明确说明:所有机制都在 bro CLI 中,本技能只是策略层;节拍机制由 bro pulse 提供,快照形态由 bro review watch 提供。

前置条件

需要 bro 在 PATH 中,或使用 npx -y @broject/bro@0 运行。

主要能力与命令

  • bro pulse [S]:会话节拍器,作为长期运行的子进程,每 S 秒(默认取 watch.intervalSec,即 60)跳动一次并打印每个 tick,同时把 tick 作为 pulse.lock 持有者投入邮箱。资料强调“邮件即唤醒”:后台子进程的退出无人接收,tick 的投递是唯一能在回合中途送达的通道。
  • bro pulse [S] --no-notify:仅保证 stdout 存活,不向邮箱投递(默认是 --notify)。
  • bro pulse [S] --json:每次跳动输出一个结构化对象,形如 {ts, …snapshot, pulse:{sec,mailing}},探针模式则为 {ts,sec,cmd,code,stdout,stderr,mailing}。
  • bro pulse [S] -- <cmd>…:把 tick 内容替换为自定义命令,stdout/stderr 原样回显;探针失败只作为该次跳动的内容,不会终止进程。

使用方式(策略要求)

在可见的后台 shell 中启动(如 bro pulse 60 在 exec 后台 shell 中),然后放手。每次邮箱投递会在下一次工具调用时进入上下文。不要在前台轮询,也不要手写 while sleep;节拍应是一条 bro 命令、一个子进程、连续跳动。

每次收到投递时只做摘要、不盯守:查看当下要紧的内容(bro status、bro review watch --once、loop shell 的输出、act 门槛),发出摘要后继续当前回合。无论是否查看,节拍都持续跳动;邮箱静默才是警报(节拍死亡则什么也不投递)。

适用场景与限制

  • 只有编排者可以启动节拍;设置了 BRO_AGENT_ID 的被派生工作进程会被拒绝(退出码 2),以防递归监视者。
  • 每个仓库只允许一个邮件发送者,不存在静默节拍:pulse.lock 决定谁投递邮件,而非谁跳动。第二个 bro pulse 会照常打印每次跳动(可见存活)但在现任存活期间不投递邮件;现任死亡时立即接管,没有“待命”式静默。
  • pulse.json 是持久化意图记录:每次启动都会重写 <git-common>/bro/pulse.json,会话启动时的提示会读取该标记;若已启动但无活动锁,则重新挂载无人值守分支(bro review watch --every S --for S --notify)。bro review watch uninstall 可解除。
  • 在仓库外使用时没有标记、没有锁、没有邮箱,会给出一次警告,节拍仍在 stdout 上继续,相当于可选点检的纯计时器。
  • 停止方式是杀掉进程:节拍一直运行到 shell 被终止,不会自行退出;解除标记(uninstall)只阻止未来重新挂载,不会停止当前存活的子进程。
  • 汇报进度时用文字说明而非 ID,与 /watch 规则一致:摘要说明智能体在做什么、发生了什么事,不使用裸的 mol/bead/PR ID。