加载中...
加载中...
在让智能体真正「动手」之前先让它「模拟走一遍」——干运行模式让Agent在无副作用的沙箱环境中执行完整推理链路并输出预期操作计划,开发者审核确认后再切换到真实执行,就像Git的--dry-run一样,先列出要做的事给你看,确认无误再真正执行。
干运行(Dry-Run)模式是Agent的「演习模式」——让智能体在隔离的沙箱环境中完整执行推理→规划→工具选择的全流程,但**不真正执行任何有副作用的操作**(不写数据库、不发API请求、不修改文件),而是将每一步「如果执行会做什么」完整输出供人工审核。就像Git的 --dry-run 或 Terraform 的 plan 命令:先预览变更,确认安全后再 apply。这是Agent从「开发调试」走向「生产可信」的关键安全机制。
干运行模式的实现包含三个递进层级,从「纯文本预览」到「完整模拟执行」逐步增强:
**① Level 1:计划输出模式(Plan-Only Mode)**
最基础的实现——在System Prompt中增加指令:「请只输出你的执行计划,不要实际调用任何工具」。Agent正常走完推理链(思考→拆解任务→选工具→规划参数),但将工具调用替换为文字描述。例如原本要调用 create_issue(title="修复登录Bug"),实际输出变为「我计划调用 create_issue 工具,参数为 title='修复登录Bug'」。优点是零成本实现,缺点是纯文本无法验证参数类型、工具名是否正确,Agent可能「说一套做一套」。
**② Level 2:Mock拦截模式(Tool-Mock Mode)**
将Agent运行在真实执行环境中,但在工具调用层(Tool Executor)前插入Mock拦截器。当Agent发出工具调用时,Mock层拦截请求、验证参数格式、返回一个符合预期的「假成功」响应,Agent继续正常推理——整个过程Agent「以为自己真的执行了」,实际所有副作用被隔离。例如:Agent调用 GitHub API 创建 Issue → Mock拦截 → 验证参数合法性 → 返回 mock_response = {"id": 99999, "url": "https://github.com/.../issues/99999"} → Agent继续处理。需要预定义每个工具的Mock规则,包括:合法参数范围、返回值格式、错误场景模拟。
**③ Level 3:影子执行模式(Shadow Execution Mode)**
最高级的实现——Agent 同时运行在两个通道:「主通道」正常推理但不执行、「影子通道」在完全隔离的 Staging 环境(独立数据库/测试账户/沙箱仓库)中真实执行。主通道输出审核通过的步骤,影子通道已经验证了该步骤在真实环境中的可行性。例如:Agent要删除 S3 bucket 中的文件,主通道输出计划,影子通道在 test-bucket 中真实执行删除操作并验证权限、参数、API响应全部正确。这实际上是一种「预演+验证」的双重保障机制。
三层模式从「纯文本」到「真实验证」,实际项目中通常Level 2用于日常开发调试,Level 3用于CI/CD流水线中的回归验证。
以下4项可操作测试覆盖从简单到完整的干运行验证体系:
「分享到微信」:手机浏览器打开时一键调起系统分享面板,选择微信即可分享到朋友圈或聊天。电脑上回退为复制文案。
暂无留言,来说两句吧