背景与动机
Agent 一旦能读写文件、执行命令、访问网络,就不再只是文本生成器,而是一个能改变系统状态的执行体。环境和沙箱的设计,就是为了让这种能力可控。
安全边界应该在系统层实现,而不是只靠提示词提醒模型“不要乱做”。

环境包含什么
一个 Agent Environment 通常包括:
- 工作目录。
- 可读写路径。
- 可执行命令。
- 环境变量。
- 网络权限。
- 外部工具凭据。
- 资源限制。
每一项都应该有默认最小权限。
文件系统权限
建议区分:
只读目录可写工作区禁止访问目录生成产物目录例如,Agent 可以读取源码,但不一定能读取用户主目录;可以写当前任务分支,但不能直接改生产配置。
命令执行权限
命令可以按风险分级:
- 低风险:
rg、ls、git status、测试命令。 - 中风险:安装依赖、运行格式化、生成代码。
- 高风险:删除文件、数据库迁移、部署、推送。
高风险命令需要人工确认,不能只靠 Agent 自己判断。
网络和密钥
网络访问要限制目标,密钥要限制用途。不要把完整云账号权限直接暴露给 Agent。
更好的方式是:
- 使用只读 token。
- 为工具单独创建服务账号。
- 按环境区分 dev、staging、prod。
- 写操作需要确认或审批。
常见陷阱
- 默认给 Agent 全盘文件访问。
- 所有命令都通过无限制 shell 执行。
- 密钥放在普通上下文里,让模型直接看到。
- 生产环境和本地测试环境没有隔离。
沙箱设计清单
默认是否只读?哪些路径允许写入?哪些命令必须禁止?哪些网络域名允许访问?凭证是否按任务临时注入?高风险动作是否有人工确认?工具输出是否会带入提示注入?一句话总结
Agent 的安全不能只靠提示词,必须通过环境、沙箱、权限和人工确认点共同约束。