从聊天助手到可靠工具:AI 工作流为什么需要明确的执行边界

3 阅读5分钟

把大模型接入一个输入框,可以很快得到一个能回答问题的演示。但如果希望它真正完成工作,例如整理文档、填写表单、发布文章,难点会从“回答是否流畅”转向“操作是否正确、失败后能否恢复”。

这篇文章从工程设计角度,介绍一种容易落地的分工:让 AI 帮助理解和规划,让确定性的程序负责执行,让状态记录负责解释发生了什么。

一、把“生成内容”和“执行动作”分开

假设我们要做一个多平台文章发布工具。输入是标题、正文和图片,输出应该是目标平台上的文章,以及能够追踪的发布结果。

如果把所有事情都交给一个自由运行的模型,每一步都由模型临时决定,会遇到几个问题:相同输入的执行路径可能不同;网页变动时难以定位哪一步失效;网络超时后无法判断是否已经提交。

一种可行的结构是:

用户确认的内容
    ↓
经过校验的任务参数
    ↓
版本化的平台操作配置
    ↓
浏览器执行器
    ↓
结果核验与本地任务记录

AI 可以在开发阶段协助分析页面、提出选择器和生成配置,但这些产物仍然需要测试。运行阶段则可以只依赖浏览器自动化,不要求每个用户都配置模型服务。

这种设计并不排斥智能,而是把智能放在最需要理解和适应的地方。

二、页面配置需要描述什么

一个最小配置不应该只有“发布按钮的选择器”。它还应该说明:

  • 从哪个页面开始,以及允许访问哪些域名;
  • 标题和正文分别对应什么控件;
  • 哪些字段是必填项,例如标签、摘要或封面;
  • 哪一个动作会真正对外提交;
  • 什么页面证据能够证明提交成功。

可以用简化的结构表达:

{
  "platform": "example-blog",
  "version": 1,
  "steps": [
    { "action": "fill", "target": "title", "valueFrom": "title" },
    { "action": "fill", "target": "body", "valueFrom": "content" },
    { "action": "click", "target": "publishSettings" },
    { "action": "click", "target": "submit", "commit": true }
  ],
  "success": { "evidence": "publishedArticleLink" }
}

这里的配置只是结构示意,不是任何真实平台可以直接运行的适配文件。真实页面可能使用富文本编辑器、弹窗或异步上传,必须根据实际控件验证。

三、点击完成不等于发布成功

自动化最容易犯的错误,是把“点击按钮没有报错”当成成功。

按钮点击之后,平台可能还在上传图片,也可能提示必填项缺失、要求登录,或者进入审核状态。因此,执行器应区分至少三类结果:

  1. 已确认成功:读取到成功页面或可识别的文章链接。
  2. 明确未提交:例如标题校验不通过,提交动作还未发生。
  3. 结果待核实:提交动作已经发生,但由于超时或页面变化,暂时无法确认结果。

第三种状态尤其重要。此时立即自动重试,可能产生重复文章。更稳妥的做法是先去文章管理页核对,再决定是否重试。

四、让任务中断后仍然能够继续

可靠的工作流需要保存进度,而不仅仅是打印日志。

可以在本地记录任务编号、文章编号、平台、配置版本、当前步骤、提交是否开始、最后更新时间和结果链接。进入关键动作前先写入状态,动作完成后再更新。

例如:

prepared → filling → ready_to_submit → submitting → verified
                                             ↘ needs_review

如果程序在 submitting 阶段意外退出,重启后应进入核对流程,而不是从头再次点击发布。

这种机制不能凭空实现跨网站事务,但可以显著减少“程序不知道自己做到哪里”的问题。

五、给自动化保留必要的人机协作

扫码、短信验证、验证码和账号安全提示,不适合通过绕过机制处理。执行器应该保留浏览器窗口,提示用户完成验证,并在确认页面恢复可操作后继续。

同样,平台要求选择内容声明或授权条款时,程序不能为了消除弹窗而任意勾选。可以预先收集明确的发布选项,再将它们作为任务参数执行。

人机协作不应该退化为让用户复制标题和正文。正常的数据录入和按钮操作由程序完成;确实依赖用户身份或判断的步骤才交回用户。

六、如何验证一个最小版本

建议从一个平台、一种编辑模式开始,按下面的顺序验收:

  • 标题和正文能否完整写入,包括中文、换行和代码块;
  • 登录失效时能否停止,并保留当前任务;
  • 必填字段不满足时能否给出具体原因;
  • 点击提交后能否读取真实结果;
  • 超时之后是否避免重复提交;
  • 应用重启后,能否恢复文章和任务状态。

本地模拟页面适合检查执行器的控制逻辑,但不能替代真实平台验收。平台改版后,即使自动化测试仍然通过,真实页面配置也可能已经失效。

结语

AI 应用的价值不只体现在生成了多少文字,也体现在能否把明确的意图转换成可靠的结果。

将内容、配置、执行和结果核验分开,可以让问题更容易定位,让平台变化更容易维护,也让用户更容易信任自动化的行为。对于一个小型工具而言,先让单条工作流完整、可追踪地跑通,通常比同时展示许多尚未接通的功能更有意义。


本文由 AI 辅助撰写,讨论的是通用工程设计思路;文中的配置示例不代表某个平台的现成接口或已验证实现。