运行时模型

Holon 把 Agent 执行当作运行时系统来处理。单次模型轮次很重要,但只是一部分。 运行时把持久身份、当前工作、受监督任务、唤醒条件和最终投递当作彼此独立的 概念分别跟踪,各有自己的生命周期。

核心概念

Agent

Agent 是可寻址的运行时执行者,包含:

Agent 类型:

工作项

工作项是能跨单次模型轮次存续的持久目标记录,包含:

工作项让 Holon 能跨轮次恢复工作、查看进度,或把未完成的工作移交给其他 Agent。 工作项不是聊天历史,而是内置于运行时的项目管理原语。

工作项生命周期:

[Created] -> [Draft plan] -> [Ready] -> [In progress] -> [Completed]
                ^                            |
                +--- [Needs input] <-- [Blocked]

当工作项完成时,会沉淀一份面向操作者的完成报告(Completion report)。 这份报告记录了最终结论、关键交付成果与验收证据。完成报告作为工作项的持久 记录被索引进记忆系统,使操作者与后续 Agent 能够随时查阅“我们在那个目标上 得出了什么结论、交付了什么”,而无需翻阅冗长的全部对话记录。 关于工具提升协议与调度结算的具体内部契约,请参阅维护者专属的 工作项规格。

任务

任务是受监督的执行句柄,包括:

任务生命周期独立于 Agent 面向用户的回答。你可以:

队列与唤醒

Holon 的调度原语决定 Agent 何时行动、何时休息:

这些状态转换是可见的,集成方不需要猜测隐藏的后台行为。

外部触发

外部触发让 Agent 等待运行时之外的事件:

Agent waits ──► External ingress provisioned ──► Event arrives ──► Agent wakes

Holon 会为每个 Agent 准备一个默认的外部入站能力。Agent 用它接收唤醒提示和 有内容的外部事件,不必在每个等待周期创建或取消触发器。

投递模式:

模式行为
wake_hint唤醒 Agent,让它自行查看外部状态(例如检查 CI 运行)。提示载荷不会作为消息入队。
enqueue_message唤醒 Agent,并把事件载荷作为消息投递到 Agent 队列。

当外部系统本身就有查询 API(GitHub API、CI 状态接口)时选 wake_hint; 当回调载荷本身就包含可操作信息时选 enqueue_message。

外部入站能力属于 Agent 级别。同一个 Agent 入站可以跨 PR、CI 运行、issue 和 WorkItem 复用;WorkItem 通过 blocked_by、plan_status 和 todo 状态单独记录 自己的等待状态。

投递

Holon 把内部执行轨迹和面向用户的投递分开:

简报和任务结果会关联回产生它们的运行时轮次。这样 Holon 就能在唤醒和任务结果 延续之间保持连续性,而不把原始对话记录当作唯一的上下文来源。关于提示布局、 投影和压缩的用户侧模型,见上下文连续性。

工作区

每个 Agent 只有一个活动工作区。工作区定义:

工作区可以附加、解除附加,或隔离出来做安全试验。

运行循环

Agent 每次执行都遵循这个模式:

  1. 入站 — 带着 origin、trust、priority 元数据到达。
  2. 锚定 — 非平凡工作先建立一个目标稳定的工作项。
  3. 加载上下文 — Agent 只读取当前决策需要的内容。
  4. 变更 — 通过显式的工作区工具(ApplyPatch、ExecCommand)进行修改。
  5. 验证 — 可用时运行真实项目检查(cargo test、cargo check)。
  6. 投递 — 给出简洁的面向用户结果,然后休眠或安排后续消息。

另见