八、运行时治理与安全边界(Agent Governance)
本章主要治理参与软件开发的 Agent(包括本地编码 Agent、CI Agent、浏览器操作 Agent 及其工具链)。开发质量门禁与运行时控制必须并行:前者验证变更是否可交付,后者约束动作在何种身份与边界内发生。
8.1 最小权限原则与按环境授权(Least Privilege)
- 隔离测试环境:在已授权的独立沙箱内,允许 Agent 自动化执行准备、数据库重建与清理;破坏性操作仍需程序化核验目标资源归属;
- 共享与生产环境:任何破坏性改动必须纳入严格的人工审批流程;凭据按环境实施强隔离,严禁将生产环境长期有效的凭据直接暴露给编码 Agent;
- 授权多维约束:授权同时限定工具、资源、数据类别、目标环境、网络出口、有效期与预算限额;“只读工具”亦可能引发敏感数据外泄,须严格审查外发目的地;
- 授权内执行与人工检查点:有效授权内的常规操作自动化执行;仅当超出边界、授权到期或触碰规定红线时,才触发人工检查点;模型自述“置信度高”不构成越权依据。
8.2 提示词注入与执行授权隔离
- 不可信数据隔离:Agent 读取的外部网页、Issue 评论、日志堆栈、第三方依赖文档等,均被视为不可信外部数据;
- 防止注入指令导致越权:严禁由外部数据中解析出的“指令”直接触发敏感工具调用、凭据读取或绕过门禁检查;
- 规则配置审查:
AGENTS.md、Skills、Hooks、工具描述和长期记忆须标明版本与适用范围,修改安全规则必须经过人工审查;执行权限策略必须从受保护配置加载,严禁 Agent 通过修改工作目录中的说明文件自行放权; - 多 Agent 委派隔离:子 Agent 的有效权限不得超过父任务委派范围与自身许可范围的交集;共享记忆严格区分来源与信任级,严禁将不可信输出持久化为全局高优先级指令。
8.3 可执行边界登记要素
初次接入时,由工程负责人与权限管理员核对实际配置并完成登记(小团队可在项目文档记录):
| 登记维度 | 登记内容 | 实施机制 |
|---|---|---|
| 所有者与身份 | 具名人类所有者、使用人、Agent/会话 ID、服务账号;严禁将 Agent 设为自身审批人 | 身份提供方(IAM)、执行器与任务记录强绑定 |
| 工具与接入源 | CLI/IDE/CI/浏览器、MCP 服务端、Skills 版本;托管服务记录端点与配置版本 | 受控安装源;无法锁定上游版本时必须显式标注限制 |
| 能力与资源域 | 允许读/写/执行的具体目标,数据库、目录、网络边界、数据类别与外发目的地 | 沙箱、文件系统权限、网络出口白名单、服务端 ACL |
| 授权与有效期 | 任务引用的授权依据、有效范围、失效条件;声明必须单独确认的动作清单 | 策略引擎(Policy Engine)与实际审批交互入口 |
| 资源预算与子任务配额 | 时长、Token/费用消耗、有副作用的工具调用次数、并发上限;多任务共享计数 | 编排器/执行器统一计数;重启或重试严禁重置额度 |
| 审计与退出 | 日志存储路径、保留期限、访问权限;紧急停止、撤权及退役责任人 | 受保护日志系统与 Runbook 演练条目 |
8.4 执行点校验机制(Guard at Execution Points)
- 工具执行前校验:校验受信任身份与实际解析参数,严禁仅凭提示词内的“已获批”放行;前缀字符串检查不能代替底层沙箱与 ACL 隔离;
- 人工介入点控制:高风险一次性审批必须将授权绑定至规范化参数、操作对象、有效时限与唯一操作标识(Operation ID),防范参数篡改与审批重放;
- 执行器控制:执行器重新校验授权与实际参数,原子检查并消费一次性审批,同时预留或扣减共享配额,防范审批重放和并发击穿预算;重试复用 Operation ID 查询既有结果,一次性审批不能代替业务幂等;
- 控制机制不可用时的处理:若授权服务中断或审计日志无法写入,高危动作强制挂起,严禁降级放行。
8.5 结构化操作审计留痕
操作事实由执行器或服务端如实记录,并以 Task ID 和 Operation ID 关联至验证记录:
最小审计事件字段:
{ 时间, Task ID, Run ID, Parent ID, Actor/Agent ID, 授权引用, 工具及版本, 目标资源, 参数摘要, 策略版本及决策, Operation ID, 执行状态, 结果证据 }
- 执行前记录“拟执行/已放行”,执行后记录“实际回执”;若存在执行前记录但缺少回执,标记为结果未知待核查;
- 审计记录实施访问控制与防篡改保护,参数与返回值按规则脱敏,密钥只存引用。
8.6 紧急停止与事后状态处置(Kill Switch)
针对预算超限、持续异常、越界攻击及人工紧急中止,制定明确的响应预案:
- 阻断准入:立即关闭新任务准入,吊销相关临时令牌(Token),切断执行入口;
- 排查在途:枚举在途请求、后台进程与子 Agent,调用安全退出接口;严禁仅靠关闭聊天窗口判定停止;
- 状态核查:对结果未知的操作,使用受限核查身份依据原 Operation ID 读取真实落盘状态,严禁盲目重新写入;
- 受控恢复:有权负责人评估停止原因,补偿与回滚按恢复预案执行,严禁借“收尾”之名继续原业务操作。
撤权可能受令牌缓存、连接或远端作业影响,应实测生效与排空时间。已发出的请求仍可能完成,停止不会自动撤销既有副作用。临时例外记录范围、批准人、补偿措施、到期和处置责任,到期后撤销或重新评估;Agent 退役同时回收凭据、计划任务与入口,按保留规则处理日志和记忆。
8.7 治理能力落地验收矩阵
| 验证场景 | 必须观察到的客观事实 |
|---|---|
| 授权内正常操作 | 动作实际执行成功,身份、任务与系统副作用严格关联可查 |
| 越界目标 / 凭据过期 / 参数篡改 / 一次性审批并发重放 | 对应拒绝在执行点生效;同一一次性批准至多获准执行一次,底层无额外副作用;结构化日志记录具体原因 |
| 提示词诱导越权 / 敏感外发 | 权限未被放大;隔离接收端未收到标记数据;拦截依据不依赖模型自述 |
| 并发任务 / 重试耗尽配额 | 共享限额得到执行;超出预算的操作被挂起,在途状态完整落盘 |
| 写入已发送但回执丢失后停机 | 依据原 Operation ID 查回最终事实且不重复写入;停止后尝试原本获准的新标记动作,确认因停止被拒且目标无新增副作用;存在后台或子任务时核查其停止或排空 |
| 策略服务 / 审计服务宕机 | 敏感与高危操作自动阻断,未发生静默放行 |