| name | scheduler-design |
| description | Consolidation 触发机制:自动触发通过 Factory 配置内联,手动触发通过 StelloAgent API;全局 reflection 由应用层在 SDK 之上自行实现。 |
Consolidation 触发机制
概述
Consolidation 的触发机制有两条路径:
- 自动触发:
consolidateEveryNTurns 配置项,由 Factory 内联处理
- 手动触发:
agent.consolidateSession(sessionId)
跨 Session 的 reflection 由应用层在 agent.listSessionDigests / agent.putInsight 之上自行实现,详见 skill session-usage。
自动 Consolidation
在 orchestration 配置中设置 consolidateEveryNTurns,每 N 轮对话后自动触发 consolidation(fire-and-forget):
orchestration: {
consolidateEveryNTurns: 5,
}
这是框架提供的唯一自动触发策略。逻辑内联在 Factory 的 hook 中,无独立调度器组件。
手动触发
await agent.consolidateSession(sessionId)
应用层可在任意时机调用,例如 session 结束时、定时任务、用户操作后。
应用层 Reflection 循环
async function reflect() {
const digests = await agent.listSessionDigests({ status: 'active' })
for (const [id, content] of Object.entries(insightsByTarget)) {
await agent.putInsight(id, content)
}
}
可在 hooks.onRoundEnd / hooks.onSessionFork 内 fire-and-forget 触发,或绑定到外部 cron / 用户操作。框架不假设调用频率与策略——这部分被有意外推到应用层。
设计决策
调度被有意压到最小:
- 自动调度只保留"每 N 轮 consolidate"——这是高频被用的唯一策略,其他策略都被应用层覆盖
- 全局 reflection 的频率 / prompt / schema / LLM tier 选择强烈与应用业务耦合,框架不假设
- reflection 由应用层在
listSessionDigests / putInsight 之上自行实现,框架不持有跨 Session 状态