笔记

方法笔记

Agent 工作流设计模式:规划、工具和人工复核

从 step planning、tool selection 到 human-in-the-loop,拆解一个可维护 Agent 工作流的基本结构。

8 分钟

先把任务拆成状态,而不是直接写提示词

Agent 工作流最容易失控的地方,是把所有职责都塞进一个大 prompt。模型既要理解输入,又要规划步骤,还要决定工具,还要判断结果是否合格,最后很难知道错误出在哪里。

更稳的方式是先拆状态:输入解析、计划生成、人工确认、工具执行、结果验证。每个状态都有明确输入和输出,失败时也能知道应该回到哪里。

在 CAD 转 3D 的项目里,parse、plan、confirm、execute、validate 这五个节点不是为了形式完整,而是为了让每一步都能单独解释、测试和替换。

Step planning 要输出可执行动作

规划节点不能只输出一段自然语言建议。真正能接工具的规划,应该产生结构化动作,比如创建墙体、放置门窗、设置材质、保存文件、触发验证。

结构化动作的价值是可以被执行器检查:参数是否齐全、坐标是否合理、依赖对象是否存在。这样工具层不需要理解整段意图,只需要执行明确命令。

如果规划结果无法被机器检查,后续所有错误都会变成“模型没理解”。这会让调试停在很粗的层级。

Tool selection 要和业务边界绑定

工具选择不是把所有 API 都暴露给模型。模型能调用什么,应该由当前状态和业务规则决定。

比如建模阶段可以调用 Blender 操作,但确认阶段不应该直接执行;验证阶段可以读模型结果,但不应该修改业务输入。工具权限越清晰,越容易控制风险。

这也是工具抽象的意义:Agent 层只知道有一个 BlenderTool,至于底层是 Background 还是 MCP 适配器,可以在不改流程的情况下替换。

Human-in-the-loop 是状态设计,不是弹窗

很多项目把 human-in-the-loop 理解成“让用户点一下确认”,但真正有价值的是确认前后状态怎么变化。用户批准、修改、重做和取消,应该进入不同路径。

如果用户修改了计划,系统要知道哪些上下文被改变,是否需要重新规划,之前的验证结果是否作废。否则确认按钮只是界面动作,不是工作流节点。

人工复核的重点是让关键风险停在可判断的位置。对于高成本或不可逆步骤,这比追求全自动更重要。

验证闭环让 Agent 变得可复盘

Agent 不是执行完就结束。真实流程里还需要验证结果是否符合输入、是否满足业务规则、是否需要回到规划阶段。

验证可以拆成硬校验和软校验。硬校验看实体数量、尺寸、文件是否生成;软校验看语义是否合理、是否符合建筑常识或业务预期。

一旦验证失败,反馈要回到规划节点,而不是只给用户一句错误。这样 Agent 才从一次生成变成可迭代流程。