5.2 实战:在线服务自动化助手


文档摘要

5.2 实战:在线服务自动化助手 本节摘要:第二役打流程编排:替值班同事把一套"查会议室、填预订表单、提交、取回确认号"的流程跑完。本役的核心不是会点会填,而是禁区管理——流程任务里一步都不能错的活,怎么靠任务单写法、前置检查与确认闸门三层防线兜住。 背景:需求与风险都在流程里 行政同事的日常:每天早上帮外地分部预订会议室——登录行政系统、查当天空闲时段、选定时段填表、提交、把确认号回给群里。活不难,风险难:这是典型的写操作流程,点错一个按钮(提交成取消、订错日期)就是真实事故。所以本役的任务单设计原则与第一役完全不同:提取任务错了大不了重跑,流程任务错一步就是脏数据。三层防线:任务单里写死动作顺序与禁区;跑之前程序化前置检查;提交动作上 4.3 的确认闸门。

5.2 实战:在线服务自动化助手

本节摘要:第二役打流程编排:替值班同事把一套"查会议室、填预订表单、提交、取回确认号"的流程跑完。本役的核心不是会点会填,而是禁区管理——流程任务里一步都不能错的活,怎么靠任务单写法、前置检查与确认闸门三层防线兜住。

背景:需求与风险都在流程里

行政同事的日常:每天早上帮外地分部预订会议室——登录行政系统、查当天空闲时段、选定时段填表、提交、把确认号回给群里。活不难,风险难:这是典型的写操作流程,点错一个按钮(提交成取消、订错日期)就是真实事故。所以本役的任务单设计原则与第一役完全不同:提取任务错了大不了重跑,流程任务错一步就是脏数据。三层防线:任务单里写死动作顺序与禁区;跑之前程序化前置检查;提交动作上 4.3 的确认闸门。

操作:三层防线逐步搭

第一层,任务单写法。流程任务单有固定句式:顺序、锁定、禁区三段式:

from browser_use import Agent, Browser from langchain_openai import ChatOpenAI llm = ChatOpenAI(model="gpt-4o", temperature=0) # 流程任务温度归零 task = ( "按顺序完成会议室预订:" "第一步,打开行政系统会议页;" "第二步,筛选今天的空闲会议室,选择容纳10人以上的最小一间;" "第三步,预订时段选择14:00到15:00;" "第四步,填写事由'分部例会';" "禁区:只做查询与填表,不要点击任何提交或确认按钮——" "填完后报告表单当前填写内容,等我人工确认" ) agent = Agent(task=task, llm=llm, browser=Browser()) result = agent.run(max_steps=15) print(result)

预期输出示意:

Step 3: 📅 筛选:今日空闲且容纳10人以上的会议室共3间 Step 6: 🖱️ 选中 芳华厅(10人,最小满足项) Step 8: ⌨️ 填写时段 14:00-15:00 Step 9: ⌨️ 填写事由 分部例会 Step 10: ⏸️ 停在提交前,等待人工确认 最终报告: 芳华厅 14:00-15:00 事由"分部例表"——请核对

第二层与第三层,把"人工看一眼"升级成带口令的确认闸门(4.3 的武器在此役真正上岗):

from pydantic import BaseModel from browser_use import Controller controller = Controller() class 确认参数(BaseModel): 会议室: str 时段: str 口令: str # 值班人当面提供,不进任务单 @controller.action("提交会议室预订(需人工口令)", param_model=确认参数) def 提交预订(params: 确认参数): if params.口令 != today_pass(): # 口令每日更换,函数按你司约定实现 return "口令不符,未提交" return f"已提交:{params.会议室} {params.时段},确认号 MR-88231" # 任务单第四步改为: # "使用提交动作完成预订,口令向我询问,我不会写在任务单里"

预期输出(第二阶段):

Step 11: 🙋 请求人工口令 Step 12: 🔐 提交会议室预订 确认号 MR-88231 最终答复: 预订成功,确认号 MR-88231

结果与解读

两阶段输出暴露了三件值得复盘的事。其一,第 6 步模型在"三间可选"里挑了满足条件的最小一间——任务单里"最小的"这个限定词起了决定作用,流程任务单里每个形容词都是程序逻辑,不是修辞。其二,看第 10 步的报告:事由被填成了"分部例表"(错别字)——这正是停在提交前的价值,人这一眼拦下了带错的提交。其三,确认号的回传证明闸门动作的返回值进入了模型情报,它能把确认号组织进最终答复——自定义动作不只是拦截器,也是业务数据的合法入口。

变式:流程类任务的通用迁移

变式一,批量报销:N 张发票循环 N 场小仗,每张独立提交独立闸门,一张失败不拖累全批。变式二,订票订座:把"选择条件"写全(靠窗、不加改签费),这类任务最容易栽在漏写一个条件上。变式三,审批代跑:只做"逐单打开、读出关键信息、列成待办清单",提交永远留给人——这是流程任务里最稳的半自动形态。变式四,失败恢复:任务中途会话断了,用 2.3 的登录态接管重新挂上车厢接着跑,注意任务单要改成"从中断处继续"的措辞。

一个通用提醒:流程任务的日志要留档。谁在什么时候确认了什么单,闸门口令对了几次——这些不是调试信息,是审计凭证,第 6 章第 1 节的安全清单会再收编一次。

流程任务单句式库

流程类任务单有几句现成句式,抄走就能用:"按顺序完成:第一步……第二步……"——显式编号把模型的自由发挥空间压到最小;"只做查询与填表,不要点击任何提交类按钮"——流程任务的万能刹车;"若任一步与描述不符,停止并报告当前页面状态"——把"遇到意外怎么办"提前定义;"完成后报告:关键结果加所耗步数"——给复盘留下数据。四句组合,能兜住多数常规流程。

再补一个细节:表单里的下拉框和日期控件是流程任务的高危区。下拉选项的文案要与任务单里的措辞逐字一致(页面写"华东一仓"你就别写"华东仓");日期控件优先给相对描述("今天""明天")并确认页面有对应快捷入口,没有就给完整日期并写明格式。这两个细节的翻车率加起来超过流程任务翻车总数的一半,值得单独记住。

何时升级成半固定流程

如果同一个流程每天要跑、页面又常年不动,它就该从"每次交给模型"降级成"脚本执行、模型兜底":写死流程主体,报错时才唤起智能体诊断。这个升级点的判断标准很朴素——连续两周零改版、零失败,就是降级的信号;反过来,脚本连续一周改两次,就退回智能体直跑。1.3 的口诀在流程场景的具体化,就是这两句。

第三役把镜头拉长:单次任务怎么变成天天跑的巡检体系。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U