安全、权限与护栏

多 Agent 平台的安全边界设计。

多 Agent 平台最大的风险不是"错误答案"——而是多个 Agent 接触工具、文件系统、shell、网络和外部系统时产生的失控操作链。

权限层级

级别操作默认策略
L0只读上下文、只读文档允许
L1文件读取、搜索、静态分析允许,但需记录日志
L2文件写入、配置变更需策略检查
L3Shell、依赖安装、网络调用需审批或沙箱
L4git 提交、部署、数据库写入需人工审批
L5生产环境、财务、权限变更默认拒绝或严格审批

护栏类型

类型示例
输入护栏检测提示注入、超出范围的请求
工具护栏限制 shell 命令、网络域名、文件路径
输出护栏检测泄露、危险建议、策略违规
预算护栏限制 token、时间、并发
状态护栏防止黑板污染
交接护栏防止循环和未经授权的接管

Shell 策略示例

TypeScript
const shellPolicy = {
  allow: ["ls", "cat", "grep", "rg", "sed", "python -m pytest"],
  deny: ["rm -rf", "sudo", "curl | sh", "chmod 777", "docker system prune"],
  requireApproval: ["git push", "npm publish", "kubectl", "terraform apply"],
};

审批卡片必须包含

  • action — 将执行什么操作
  • reason — 为什么执行此操作
  • scope — 影响范围
  • diff — 将发生什么变更
  • rollback — 如何撤销
  • risk — 严重程度等级
  • timeout — 审批超时会发生什么

常见失败场景

  1. 子 Agent 调用了宿主 Agent 不知情的工具。
  2. 交接后权限被扩大。
  3. MCP 服务器暴露了过多的工具。
  4. 审批卡片只显示一行描述,没有 diff 或影响范围。
  5. 追踪记录包含未脱敏的敏感信息。