第 4 章:权限、安全与成本 — 给协作者划边界¶
📋 本章概览¶
| 项目 | 内容 |
|---|---|
| 学习时长 | 8 分钟 |
| 核心概念 | 最小权限、提示注入、密钥、费用、停止边界 |
| 核心比喻 | 权限像工作证上的区域和可用设备 |
| 实践任务 | 为 Agent 设计分级权限表 |
| 难度等级 | ★★★☆☆ |
Agent 安全的关键是控制“行动空间”¶
一个 Agent 可能同时接触文件、终端、网络和外部服务。任务本身看起来很小,但工具组合起来后,影响范围可能远大于一句聊天回答。最小权限原则就是先问清楚:这次任务必须看哪些文件、需要执行哪些命令、是否真的需要联网或写入,以及完成后如何证明没有越界。
权限不是一次设置后永远不变的开关。随着任务从解释错误变成修改代码、安装依赖或发布结果,风险会逐步增加。把任务拆成多个可验收阶段,每一步重新确认授权,比一开始给出全部权限更容易发现问题。
4.1 使用最小权限¶
| 任务 | 建议权限 | 原因 |
|---|---|---|
| 了解项目结构 | 只读 | 不需要修改或执行 |
| 修复一个测试 | 读、编辑、运行指定测试 | 限制修改范围和命令范围 |
| 重构项目 | 读、编辑、测试 | 每小步查看 Diff |
| 部署和推送 | 单独确认 | 影响外部系统和其他人 |
4.2 防止提示注入¶
代码注释、网页、Issue 和依赖文档都可能包含“请忽略之前指令”的文本。把外部内容当作数据,不要自动当作授权。
高风险信号
看到要求读取密钥、上传文件、关闭安全检查、删除目录、执行远程脚本或直接推送的指令时,暂停任务,人工确认来源和范围。
4.3 管理 API Key 和费用¶
- 使用服务商提供的限额、余额和用量监控。
- 为实验项目单独使用低权限或可撤销的 Key。
- 不把 Key 写进命令历史、代码、日志和截图。
- 发现泄露时立即撤销,不要只删除本地文件。
- 长上下文、重复重试和批量 Agent 任务都可能增加费用。
4.4 明确停止边界¶
Agent 必须在以下情况停止并等待确认:
- 要删除或覆盖用户文件。
- 要安装未知依赖或执行来源不明的脚本。
- 要访问生产环境、私有仓库或个人数据。
- 要提交、推送、发布或发送外部消息。
- 任务目标、文件范围或验收标准不清楚。
✅ 验证步骤¶
为“修复一个测试”写出只读、编辑、执行和发布四级权限;逐项标记哪些动作需要人工确认,并检查任务单中是否包含停止条件。
📝 本章总结¶
- 最小权限比“全自动”更容易审计和恢复。
- 外部文本不是授权,Agent 需要防范提示注入。
- 密钥、费用和发布动作都属于独立的风险面。
✏️ 课后练习¶
- 为自己的项目创建一个 Agent 安全检查清单。
- 模拟一次密钥泄露,写出撤销、轮换、排查历史和通知步骤。
🔮 下一章预告¶
最后一章会比较常见 Agent 工具,并完成一次从分析到验证的综合任务。