Hogwarts测试开发
07-03·北京测吧员工
搭一个更稳的浏览器自动化 Agent 二
核心思路:把浏览器操作变成工具整个 Agent 的核心逻辑其实不复杂:你把 Playwright 的常用操作封装成一个个工具函数,LLM 根据用户指令决定调用哪些工具、按什么顺序调。我用的方案是 LangGraph + Ollama。LangGraph 负责控制 Agent 的执行流程,Ollama 负责推理决策。先封装浏览器工具:这些函数看着简单,但每个都藏着坑。后面会细说怎么让它们更稳。搭建 Agent有了工具,下一步是让 LLM 学会用它们。我这里用 LangGraph 搭了一个简单的 ReAct 风格的 Agent:跑起来大概是这样的:让 Agent 更稳的几个关键点上面这套能跑,但离“稳”还差得远。下面是我踩坑之后总结的几个关键优化。1. 选择器要够鲁棒这是最大的坑。LLM 生成的 selector 经常是精确匹配的 CSS 选择器,页面稍微一变就完蛋。Playwright 本身支持 基于角色的定位器(get_by_role)和 基于文本的定位器(get_by_text),这些比 CSS 选择器稳定得多。但问题是 LLM 默认不太会用。我的做法是在工具描述里显式告诉 LLM 优先用什么:TOOLS_DESC = """填表时,优先使用以下方式定位元素(按优先级):1. placeholder 文本:`input[placeholder="搜索"]`2. 角色+名称:`role="button", name="登录"`3. aria-label:`[aria-label="关闭"]`4. 最后才用 class 或 id"""实测下来,加了这段提示之后 selector 失效的概率降了一大截。
发布于 北京
分享
评论
1
未登录
友善发言
image-upload
评论
加载中