跳到正文
浏览文档
本页提纲

安全与执行边界

能够运行 Shell 命令的 Agent,其潜在影响范围取决于这些命令在操作系统层面能够触达的所有机器资源与服务。Holon 的工作区与信任规则负责组织这套执行流,但宿主本地(Host-local)后端本身并不提供通用的操作系统沙箱。

宿主本地运行时

命令执行与文件操作直接沿用宿主操作系统的环境与权限。执行进程可能读取项目外部的文件、访问内部网络服务,或读取当前进程具备权限的凭据。不要假定启动一个 Agent 就会自动创建容器、虚拟机或隔离的操作系统用户。

例如,审查未知仓库的 Agent 可能会遇到试图读取用户家目录文件的测试脚本。审查指令虽然禁止越界访问,但这种指令约束并非操作系统内核层面的强制阻断。在运行不受信任的代码前,务必审查脚本内容,并在适当隔离的环境中执行。

执行环境摘要(Execution environment summary)

Agent 在每次执行时会收到一份当前运行环境与安全策略的结构化摘要。这份摘要客观描述了哪些边界已被硬性强制、哪些尚未强制,不代表无条件的绝对安全保证。

例如,运行时可能严格控制消息接入与控制平面的归属权,但将文件系统与网络访问直接放给宿主环境。某一维度的强制执行并不代表其他维度同样具备强约束。具体的保证层级与工作区操作详见工作区参考与执行规格。

工作区绑定与隔离限制

活动工作区设定项目上下文与默认路径:相对 patch 针对其执行根进行应用,命令也在选定的工作目录中启动。只要后端和宿主操作系统的权限允许,显式绝对路径和 Shell 命令依然能够访问其他目录。

Git worktree 隔离的是独立的工作副本,而非宿主凭据或网络访问。使用 worktree 可以避免工作副本层面的文件冲突;如果需要更强的隔离保护,应使用宿主系统权限、专用独立账号、容器或虚拟机。

本地与远程网络访问

本地守护进程与通过网络对外提供服务具有完全不同的暴露面。本地 Unix 域套接字依赖宿主系统的文件访问控制;而通过网络对外暴露控制平面,则会让其他远程客户端能够发起连接,因此必须审慎配置身份认证与传输层加密保护。

身份认证(Authentication)核验客户端的身份凭证;授权检查(Authorization)则判定该调用方有权执行哪些具体操作。成功的登录并不意味着所有目标 Agent 或管理接口都会全部开放,也不能把任意载荷内容直接转化为可信指令。

遵循最小权限原则:仅开放工作流必需的访问通道。使用反向代理或隧道只是改变了网络连通性,并不能替代身份认证。即使连接通道已加密,Bearer Token 与浏览器会话依然需要严加保管。关于配置与验证,请参阅远程连接指南与OIDC 配置指南。

能力凭证 URL 的安全管理

外部回调使用的 URL 包含机密 Token。拥有该 URL 即可触发对应的唤醒或入队操作。虽然其权限远小于完整的控制平面管理权,但凭证泄露依然会导致意外激活或被注入非预期的外部消息。

务必将完整的回调 URL 视同核心机密。切勿将其写入源码仓库、公开报告、截图或无关日志中。使用受保护的加密传输协议;一旦发生泄露,应立即轮换或吊销该能力。绝不能假定控制平面的登录凭证能替代回调自身的能力校验。

信任分类与执行隔离的区别

信任边界规范 Agent 如何解读输入信息,并不限制 Shell 子进程在操作系统层面的系统调用能力;反之,即便身处严格隔离的沙箱进程,Agent 依然可能读到具有误导性的恶意文本。来源分类与执行隔离解决的是不同层面的安全风险。

生产与日常实践建议

在运行陌生代码前,不仅要核对请求的操作步骤,更要审视这些操作在宿主系统上能获取的全部权限。将凭据与文件系统访问限制在最小必需范围。对于远程运维场景,分别对身份认证、传输加密以及调用方权限进行独立验证。

任务结束后,只清理归属于该 Agent 且不再需要的资源。在删除 worktree、子 Agent 或外部集成之前,先妥善归档所有关键交付成果。单个目标的达成,并不意味着可以随意清除共享资源。

参见