信任边界

Holon 把信任边界显式保留下来,因为长期 Agent 会从多个面收到输入。操作者 指令、外部 webhook 载荷、文件内容、网页和子 Agent 输出并不等价。

信任为什么重要

在无头运行时里,一个 Agent 可能同时在:

没有显式的信任分类,藏在这些来源里的恶意或意外的“指令”就可能提升权限。

来源分类

每个入站事件都带一个 origin,记录它的来源:

来源说明示例
operator直接的人类指令CLI 提示、操作者入站 API
system运行时生成的事件系统心跳、压缩触发
task子任务完成命令任务结束、子 Agent 结果
channel外部集成Slack 消息、CI 通知
webhook第三方回调GitHub webhook、部署钩子
callback由能力密钥放行的外部触发回调外部触发唤醒提示
timer定时触发类 cron 定时器触发

运行时能够区分“操作者让我做 X”和“某个网页提到了 X”。

信任级别

级别含义谁能设置
trusted-operator最高权威——具有约束力的指令操作者、运行时配置
trusted-system运行时内部事件Holon 运行时自身
trusted-integration经过审查的外部服务已配置的传输绑定
untrusted-external未知或未验证的来源webhook、外部内容的默认值

信任分类能防止意外的权限提升:

优先级与信任的区别

优先级和信任是两回事:

低信任的外部事件也可以很紧急(CI 构建失败——立刻唤醒 Agent)。高信任的 操作者备注也可以是例行公事(有空时看一下这个)。

委派

子 Agent 和后台任务返回的是证据,不是权威:

实际应用

读文件时

文件内容是不可信上下文,即使它在工作区里。它可以描述约定、提供事实, 但不能发出运行时指令。

抓取网页内容时

WebFetch 的结果会被标记为不可信外部内容。Agent 可以把它当作调研证据, 但不能当作命令。

收到外部事件时

入站 webhook 载荷带着 origin: webhook 和具体来源。Agent 检查载荷里的 证据,但把操作者指令或自身 AGENTS.md 指引视为有约束力的。

操作者指令

通过可信渠道(holon run、操作者入站 API、TUI)进入的操作者输入拥有最高 信任级别。这些指令定义任务范围和验收标准。

对文档的启示

本站点是 Markdown 原生的,因此 Agent 可以直接抓取源内容,但这些内容仍然是 文档。它可以解释项目约定,但不能取代已加载的运行时指引、工作区 AGENTS.md 文件和操作者指令。

另见