AI 编程应选择“完成任务所需的最低权限”,而不是一开始就让 Agent 自由修改、联网和部署。解释代码、生成补全、提交补丁、运行命令和操作生产系统是五种不同风险;权限越大,越需要隔离环境、差异审查、独立测试、人工批准和可验证回滚。
先选择最低够用的辅助层级
| 层级 | 适合任务 | 允许能力 | 上线要求 |
|---|---|---|---|
| 解释与建议 | 读代码、排错思路、API 说明 | 只读上下文,不执行 | 人工判断建议是否适用 |
| 代码补全 | 局部样板、测试、重复逻辑 | 当前文件或有限上下文 | 逐段审查并运行现有测试 |
| 仓库补丁 | 跨文件修复、重构、小功能 | 工作树内读写和受限命令 | 独立分支、差异审查、完整门禁 |
| 编码 Agent | 多步骤实现、调查和验证 | 沙箱内工具、测试与许可域名 | 阶段审批、日志、资源限制和回滚 |
| 生产自动化 | 发布、工单、通知或系统动作 | 最小服务账号和明确工具白名单 | canary、幂等、熔断、人工确认和审计 |
如果任务只需要比较模型、助手或资料,先进入知识问答与研究;如果自动化的核心是分析业务数据,先在数据分析与可视化确定口径和复算方法。
把需求写成可验收任务契约
目标:需要修复或新增什么用户可见行为,明确不做什么。
范围:允许读取、修改和新建的目录、文件、服务与数据。
约束:语言版本、框架、兼容性、安全、性能、风格和依赖政策。
验证:必须通过哪些测试、静态检查、构建、浏览器或手工场景。
交付:补丁、测试、运行说明、已知限制、日志、负责人和回滚步骤。
先让 AI 复述目标、列出不确定项和计划,再允许编辑。计划与任务不一致时应先修正上下文,不要通过扩大权限掩盖理解错误。
权限按“读、写、执行、联网、外部副作用”分开
| 权限 | 默认策略 | 允许例子 | 必须确认 |
|---|---|---|---|
| 读取 | 只给任务相关目录 | 源码、测试、公开文档 | 密钥、个人数据、合同、生产配置 |
| 写入 | 限制在独立工作树 | 目标代码、测试、文档 | 父目录、共享配置、生成密钥 |
| 执行 | 沙箱和命令白名单 | 测试、lint、构建、只读检查 | 删除、提权、安装、迁移、长时任务 |
| 联网 | 域名白名单 | 官方文档、受控包源 | 上传代码、未知脚本、任意外部 API |
| 副作用 | 默认禁止 | 测试环境的可撤销动作 | 发布、付款、发信、改权限、生产写入 |
工具层权限和操作系统沙箱是互补层。只在提示中写“不要访问密钥”不等于真正隔离;需要通过文件系统、网络和服务账号边界执行限制。
十步补丁与自动化工作流
- 记录基线。保存版本、分支、未提交改动、当前测试和可复现故障。
- 划定范围。声明允许目录、工具、网络、数据和禁止动作。
- 让 AI 先调查。读取入口、调用链、测试和约定,只输出发现与计划。
- 建立失败测试。修复前用最小用例证明问题存在;新功能先写验收场景。
- 生成最小补丁。一次解决一个问题,避免顺手重构和无关依赖升级。
- 人工审查差异。检查数据流、错误处理、权限、兼容、依赖、秘密和日志。
- 运行分层测试。从目标测试到完整套件、构建、静态分析和安全检查。
- 验证异常路径。模拟超时、空值、重复请求、权限不足、部分失败和回滚。
- canary 发布。限制流量、用户、资源和时间,监控错误与业务指标。
- 交接并留痕。保存补丁、测试证据、审批、部署日志、限制和回滚命令。
测试矩阵不能只让同一个 AI 自问自答
功能
正常路径、边界值、错误输入和兼容场景都要有确定断言。
安全
检查鉴权、越权、注入、密钥、依赖、日志泄露和不可信输入。
运行
验证超时、重试、幂等、并发、限流、资源耗尽和部分失败。
交接
新环境能按文档运行;负责人知道监控、限制和撤销方法。
AI 代码审查可以补充人工审查,但不能证明没有问题。至少保留一种独立于生成过程的验证:现有回归套件、第二位审查者、静态/动态分析、浏览器实测或生产 canary。
上线前先证明回滚真的可用
- 代码可以通过明确的版本、提交或制品恢复,不依赖聊天记录。
- 数据库迁移有向前修复或经过验证的回退方案,备份已实际读取测试。
- 功能开关、流量 canary 和停止阈值已定义,负责人和观察窗口明确。
- 外部动作具有幂等键、审批记录与补偿方法,重复执行不会造成二次损害。
- 日志能够定位输入、版本、动作和结果,同时不泄露密码、密钥与敏感数据。
- 回滚后会重新运行健康检查和关键业务测试,而不是只确认进程启动。
这些情况应停止 Agent 或自动化
- 任务不断扩大到未授权目录、服务、账号或外部网络。
- 要求关闭测试、忽略安全警告、跳过备份或直接修改生产来“先跑起来”。
- 补丁混入无关重构、依赖升级或格式化,无法独立审查和回滚。
- 命令会删除、付款、发布、发信、改权限或处理敏感数据,却没有人工确认。
- 测试只能由生成补丁的同一模型解释通过,没有可执行证据。
- 失败后无法确认哪些动作已经发生,或自动重试可能重复产生副作用。
从已核验编程入口继续
下方推荐覆盖工具选型、代码补全、终端 Agent、前端生成与模型接入。模板只展示仍处于 A/B 认证状态的内容。
来源与复核说明
权限与隔离参考 Claude Code 官方Permissions和Sandboxing;AI 审查边界参考 GitHub Docs 的Copilot code review与Responsible use;安全开发流程参考 NIST Secure Software Development Framework。
页面由兰塞 AI 编辑部于 2026-07-18 复核。查看编辑与核验标准、来源政策;发现技术或链接错误可通过更正机制提交可复现证据。