唤醒与延续

本页定义 Holon Agent 如何从休眠中唤醒、接收外部事件并解析延续决策的当前契约。

Last verified: 2026-09-13 against src/types.rs ContinuationTriggerKind, ContinuationClass, ContinuationResolution, PendingWakeHint, ExternalTriggerScope, CallbackDeliveryMode, ExternalTriggerSummary, ExternalTriggerCapability, WaitConditionRecord, and src/runtime/waiting.rs.

源 RFC

触发器分类

Agent 被重新激活时,运行时按触发类型和类别对这次延续分类:

触发类型(ContinuationTriggerKind)

类型来源
OperatorInput操作者直接消息(CLI、HTTP、TUI)
TaskResult命令任务或子 Agent 任务进入终态
ExternalEvent外部系统通过 ingress URL 发来带内容的事件
TimerFire计划中的定时器到时
InternalFollowupAgent 通过 Enqueue 给自己排了一条后续消息
SystemTick调度器为可运行 WorkItem 发出运行时自有的后续消息

SystemTick 也是 Holon 在晋升的 CompleteWorkItem 报告结束当前轮次后恢复其他 可运行 WorkItem 的方式。

延续类别(ContinuationClass)

类别含义
ResumeExpectedWait触发器与先前的等待原因完全匹配
ResumeOverride触发器覆盖了先前的等待(例如操作者打断)
LocalContinuationAgent 未休眠即继续(同轮次后续)
TaskResultReentry终态任务结果重新进入同一个 WorkItem,而先前轮次并未在等待它
LivenessOnly唤醒提示:不携带模型可见内容

唤醒提示与带内容事件

唤醒提示是活性信号。它们告诉调度器“外部有变化,重新评估 Agent 是否该唤醒”。 提示载荷不会作为模型可见消息投递。Agent 唤醒后必须自行向外部系统查询细节。

带内容的外部事件使用 enqueue_message 投递模式。事件载荷作为一条消息进入 Agent 队列,并保留来源信息。

投递模式行为
WakeHint活性信号;调度器发出 EmitSystemTick
EnqueueMessage完整事件载荷作为消息入队

外部触发能力

Holon 在初始化时为每个 Agent 分配一个默认外部 ingress 能力。这是一个带密钥 token 的能力 URL:

能力模型

字段用途
external_trigger_id唯一的触发器标识
trigger_urlingress URL(能力密钥)
target_agent_id该触发器唤醒的 Agent
delivery_modeWakeHint 或 EnqueueMessage
scopeAgent
statusActive 或 Revoked

外部触发器在 Agent 初始化时分配。Agent 不会在运行时创建或撤销触发器。

延续解析

Agent 唤醒时,ContinuationResolution 记录这次激活是怎么发生的:

字段含义
trigger_kind导致唤醒的事件类型
class这次唤醒与先前等待的关系
model_reentry是否应带上下文重新进入模型
prior_closure_outcome先前轮次的决定
prior_waiting_reasonAgent 当时在等待什么
matched_waiting_reason触发器是否匹配该等待原因

关键契约:

已知缺口