事件驱动反应系统
Event-Driven Reaction System
基于状态转换自动触发预配置反应,支持重试、升级和多通道通知路由
子问题
1.状态转换检测
2.反应配置与执行
3.重试计数与超时升级
4.通知优先级路由
5.反应抑制:send-to-agent 处理中抑制重复人类通知
6.全量完成检测:所有 Session 终态时触发 all-complete 汇总
7.探测容错:Agent 探测失败时保持 stuck/needs_input 不误判为 working
各项目的解法1 solutions
Signals
横向对比
| 维度 | Agent |
|---|---|
| 事件检测 | 30s 轮询 + 5 层优先级状态探测链(Runtime→Agent→SCM) |
| 反应配置 | YAML 声明式 reactions 映射表 + Zod 校验 + 9 种默认反应 |
| 动作类型 | send-to-agent / notify / auto-merge 三级动作体系 |
| 升级机制 | retries 计数 + escalateAfter 时间窗口双维度升级 |
| 通知路由 | 4 级优先级 × 多渠道路由表(desktop/slack/composio) |
| 配置层级 | 全局默认 + per-project 展开覆盖 |
| 并发安全 | polling 重入守卫 + Promise.allSettled 并发检查 |
最佳实践
1.两级处理:routine 自动化 + judgment 通知人类
2.per-project reaction 覆盖全局默认
3.双层映射解耦:EventType 面向系统 + ReactionKey 面向用户配置
4.状态转换时重置 tracker,避免跨状态的重试计数污染
5.Promise.allSettled 并发检查所有 Session,单个失败不阻塞全局