You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何优雅处理电商网站导航中带决策点的动态浏览器自动化

电商浏览器操作决策优化方案

核心思路

放弃单步触发的状态机和独立Agent模式,改用操作单元封装+LLM驱动的状态判断,将每个业务操作(如搜索、加入购物车)封装为原子操作单元,内置操作完成的判定逻辑,再通过统一的LLM状态管理器做路径决策。

具体实现步骤

1. 原子操作单元封装

将每个业务动作封装为独立的操作单元,每个单元包含三个核心部分:

  • 执行逻辑:调用browser_use完成具体操作(比如输入关键词、点击搜索按钮)
  • 完成判定:通过LLM分析页面内容(而非硬编码HTML元素)判断操作是否完成,例如搜索操作的完成标准是“页面显示与目标关键词相关的商品列表”
  • 结果提取:提取操作后的关键业务信息(比如商品列表名称、购物车商品数量)

示例代码:

class SearchUnit:
    def __init__(self, browser_instance, llm_instance):
        self.browser = browser_instance
        self.llm = llm_instance
    
    def run(self, keyword):
        # 执行搜索操作
        self.browser.use("输入关键词并触发搜索", {"keyword": keyword})
        # 获取页面内容摘要(而非全量HTML)
        page_summary = self.browser.get_page_content_summary()
        # 调用LLM判断操作是否完成
        completion_check = self.llm.query(f"请判断当前页面是否是'{keyword}'的有效搜索结果页?仅回复'是'或'否'。页面摘要:{page_summary}")
        if completion_check == "是":
            # 提取关键结果
            item_list = self.llm.query(f"提取当前页面的商品名称列表,用逗号分隔。页面摘要:{page_summary}")
            return {"status": "success", "data": item_list}
        else:
            return {"status": "failed", "reason": "未加载出有效搜索结果"}

2. 全局状态管理器

用一个全局状态管理器维护操作全流程的状态信息,每次原子操作完成后,由它调用LLM做下一步决策:

  • 存储内容:当前操作阶段(如「搜索阶段」「商品详情页阶段」「购物车阶段」)、历史操作结果(如搜索到的商品列表、已加入购物车的商品)
  • 决策逻辑:基于预设的业务规则(比如“若搜索结果不相关则重新搜索,否则选择第一个商品进入详情页”)和当前状态,让LLM输出明确的下一步操作指令

3. LLM调用效率优化

  • 复用实例:全程使用同一个LLM实例,避免每步新建Agent带来的资源开销
  • 精简输入:只传入页面关键摘要给LLM,减少token消耗和响应时间
  • 固定模板:针对操作完成判定、路径决策等不同场景使用预设prompt模板,提升LLM输出的准确性和一致性

方案优势

  • 多站点适配:无需硬编码DOM元素定位规则,依赖LLM分析页面内容,自动适配不同电商网站的页面结构
  • 避免误触发:原子操作单元内置完成判定逻辑,只有当操作真正完成后才会触发下一步决策,解决了on_step_end在操作拆分时的误触发问题
  • 架构清晰:原子操作单元负责执行和结果判定,状态管理器负责路径决策,职责分离,便于维护和扩展
  • 性能提升:复用LLM实例、精简输入内容,有效解决原方案运行缓慢的问题

内容的提问来源于stack exchange,提问作者Rauf Aliev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 12:12:21