会话生命周期管理
Session Lifecycle Management
管理 Agent 会话从创建到完成的完整生命周期,包括状态机、轮询和自动清理
子问题
1.状态转换检测
2.会话恢复
3.自动清理
4.并发轮询
5.多源状态推断优先级冲突
6.反应升级阈值配置
7.终态会话的转换检测边界
8.原子会话 ID 预留与并发 spawn
各项目的解法1 solutions
Signals
横向对比
| 维度 | AgentOrchestrator |
|---|---|
| 状态机规模 | 16 态 SessionStatus + 6 态 ActivityState,覆盖完整 PR 生命周期 |
| 轮询机制 | setInterval 30s + re-entrancy guard 布尔标志,Promise.allSettled 并发检查 |
| 反应升级 | ReactionTracker 按次数/时间双阈值升级,状态转换时自动重置 |
| 元数据存储 | flat-file key=value 格式,O_EXCL 原子预留,归档式删除支持恢复 |
| 多源状态推断 | 5 层优先级:Runtime→Agent→PR 自动检测→CI/Review→默认回退 |
| 会话恢复 | 从 archive/ 读取元数据 + 工作区重建 + Agent getRestoreCommand |
最佳实践
1.使用 re-entrancy guard 防止轮询重入
2.状态变更时重置反应追踪器
3.用 Promise.allSettled 并发检查所有会话避免单个失败阻塞全局
4.终态会话仅在刚变为终态时检查一次转换后跳过
5.归档式删除保留历史元数据支持后续恢复
6.用 O_EXCL 原子文件创建防止并发 spawn ID 冲突