信任与来源

本页定义 Holon 如何对消息来源、准入/认证、指令权威和执行策略进行分类, 以及这些标签如何流经运行时的当前契约。

Last verified: 2026-09-13 against src/types.rs MessageEnvelope, MessageOrigin, AuthorityClass, MessageDeliverySurface, AdmissionContext, src/policy.rs, src/ingress.rs, src/http/mod.rs, src/http/state.rs, src/context/mod.rs, src/context/render.rs, src/prompt/mod.rs, src/operator_event.rs, src/presentation.rs, src/runtime/message_dispatch.rs, src/runtime/operator_dispatch.rs, and src/runtime/turn/execution.rs.

源 RFC

消息信封

Holon 中每条排队消息都在 MessageEnvelope 中携带来源、准入、权威和调度标签:

MessageEnvelope {
    origin: MessageOrigin,
    authority_class: AuthorityClass,
    priority: Priority,
    delivery_surface: Option<MessageDeliverySurface>,
    admission_context: Option<AdmissionContext>,
    trigger_kind: Option<ContinuationTriggerKind>,
    source_refs: BTreeMap<String, String>,
    ...
}

下面四个概念有意保持分离:

来源:MessageOrigin 与 source refs

MessageOrigin 记录内容的生产者。它不编码入口如何认证,也不单独授予工具权限。

Origin 变体当前含义典型 kind
Operator { actor_id }操作者直接撰写的内容。准入表面可以是本地 CLI、run-once、HTTP control 或远程操作者传输。OperatorPrompt、Control
Channel { channel_id, sender_id }外部渠道内容。公共 enqueue 默认将其作为外部证据接受。ChannelEvent
Webhook { source, event_type }外部 webhook 内容。未提供 origin 时,公共 enqueue 默认使用该来源。WebhookEvent
Callback { descriptor_id, source }由 capability secret 准入的外部触发器回调。正文是集成信号,不是操作者指令。CallbackEvent
Timer { timer_id }定时器按计划触发。TimerTick
System { subsystem }运行时拥有的内部消息,例如 scheduler、lifecycle 或 internal follow-up。SystemTick、InternalFollowup、Control
Task { task_id }来自被监督命令或子 Agent 的任务状态/结果。TaskStatus、TaskResult

MessageEnvelope::normalize_admission_fields 推导 trigger_kind、任务来源消息的 task_id,以及 source_refs,例如 task_id、task_result_id、timer_id、 external_trigger_id、wait_id、wait_generation、callback_delivery_id 和 queued_event_id。work_item_id、task_id 这类绑定字段只会从经由 RuntimeSystem 或 TaskRejoin 准入的运行时拥有消息的 metadata 中投影;不可信的外部 metadata 仍只是证据。

准入/认证:投递表面与准入上下文

MessageDeliverySurface 记录消息从何处进入运行时,或由运行时何处产生:

投递表面当前用途
CliPrompt本地交互式提示输入。
RunOnce本地一次性运行输入。
HttpPublicEnqueue远程访问准入后的公共 HTTP enqueue;不能请求 Interject 优先级,也不能覆盖权威。
HttpWebhookHTTP webhook 传输。
HttpCallbackEnqueue将消息入队的 callback 端点。
HttpCallbackWake用作 wake hint 的 callback 端点。
HttpControlPrompt已认证的 HTTP control prompt。
RemoteOperatorTransport已认证的远程操作者传输。
TimerScheduler运行时定时器调度器。
RuntimeSystem运行时拥有的系统表面。
TaskRejoin任务监督器结果/状态 rejoin。

AdmissionContext 记录 Holon 为何接受该入口:

准入上下文当前含义
PublicUnauthenticated未使用操作者凭据即准入的公共 enqueue/webhook 式输入。
ControlAuthenticated由配置的 control token 准入的控制平面请求。
OperatorTransportAuthenticated作为操作者表面通过认证的远程操作者传输。
ExternalTriggerCapability凭持有外部触发器 capability secret 而准入的 callback。
LocalProcess本地进程或本地控制表面;当前 host-local 执行策略仍然适用。
RuntimeOwned由运行时自身产生的消息。

准入不等同于指令权威。例如,ExternalTriggerCapability 证明某个 callback URL 有效, 但 callback 载荷仍是 IntegrationSignal,不是 OperatorInstruction。

权威类别(AuthorityClass)

AuthorityClass 是当前的指令权威词汇表:

类别含义默认来源
OperatorInstruction操作者撰写、Agent 应遵循的指令,但受指令优先级和执行策略约束。Operator
RuntimeInstruction运行时拥有的指令或生命周期/任务信号。System、Task、Timer
IntegrationSignal已配置的集成或 callback 信号。它可以唤醒或告知工作,但不是操作者指令。Webhook、Callback
ExternalEvidence供检查的外部渠道内容。Channel

关键契约:

过渡期的 trust 措辞

早期的 trust / trusted_* / untrusted_* 词汇不是主要的公开契约。当前代码在两处保留兼容:

src/context/render.rs 保留了一个旧版 trust_label 映射,把 authority_class 映到旧的 trusted_* / untrusted_* 名称;但当前模型上下文 的消息头用 authority_class_label(operator_instruction、runtime_instruction 等) 标注消息。新文档和新契约应直接使用 authority_class。

当前分类矩阵

生产者/路径OriginKind权威投递表面准入上下文
本地操作者提示OperatorOperatorPromptOperatorInstructionCliPrompt / RunOnceLocalProcess
带 token 的 HTTP control promptOperatorOperatorPrompt 或 ControlOperatorInstructionHttpControlPromptControlAuthenticated
远程操作者传输OperatorOperatorPromptOperatorInstructionRemoteOperatorTransportOperatorTransportAuthenticated
公共外部渠道 enqueueChannelChannelEventExternalEvidenceHttpPublicEnqueuePublicUnauthenticated
公共 webhook enqueueWebhookWebhookEventIntegrationSignalHttpPublicEnqueue / HttpWebhookPublicUnauthenticated
外部 callback enqueue/wakeCallbackCallbackEventIntegrationSignalHttpCallbackEnqueue / HttpCallbackWakeExternalTriggerCapability
定时器触发TimerTimerTickRuntimeInstructionTimerSchedulerRuntimeOwned
运行时系统/internal follow-upSystemSystemTick / InternalFollowup / ControlRuntimeInstructionRuntimeSystemRuntimeOwned
任务状态/结果TaskTaskStatus / TaskResultRuntimeInstructionTaskRejoinRuntimeOwned

优先级

优先级调度效果
Interject抢占排队工作;在普通优先级消息之前投递
Next在当前 interject 消息之后、Normal 之前投递
Normal标准队列位置
Background低紧急度;在更高优先级消息之后投递

优先级影响队列顺序,不影响权威、准入或执行策略。

执行策略

执行策略是具体进程、文件、网络、消息入口、控制平面、workspace 投影和 Agent 状态 操作的最终允许/拒绝边界。它以当前执行策略快照的形式向模型汇总,并在存在硬强制 的地方由运行时/工具表面执行。

权威标签为执行策略提供信息,但不取代它。例如,OperatorInstruction 可以请求某个 操作,但工具仍会在当前 workspace 投影、进程执行、密钥隔离以及路径/写入/网络策略 下运行。反过来,RuntimeInstruction 可以携带生命周期状态,但这不会让任意外部 载荷文本变得可信。

来源保留与暴露

Holon 的来源契约:

验证

已验证的实现要点:

漂移与后续分类