多 Agent 平台最大的风险不是"错误答案"——而是多个 Agent 接触工具、文件系统、shell、网络和外部系统时产生的失控操作链。
权限层级
| 级别 | 操作 | 默认策略 |
|---|---|---|
| L0 | 只读上下文、只读文档 | 允许 |
| L1 | 文件读取、搜索、静态分析 | 允许,但需记录日志 |
| L2 | 文件写入、配置变更 | 需策略检查 |
| L3 | Shell、依赖安装、网络调用 | 需审批或沙箱 |
| L4 | git 提交、部署、数据库写入 | 需人工审批 |
| 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— 审批超时会发生什么
常见失败场景
- 子 Agent 调用了宿主 Agent 不知情的工具。
- 交接后权限被扩大。
- MCP 服务器暴露了过多的工具。
- 审批卡片只显示一行描述,没有 diff 或影响范围。
- 追踪记录包含未脱敏的敏感信息。