1. openclaw 浏览器自动化到底能帮你做什么
openclaw 浏览器自动化,说白了就是让一个 AI 代理去替你操作 Chrome:打开网页、输入关键词、点击搜索结果、在岗位详情页停留几秒、把标题和链接抓回来。它和传统爬虫最大的区别在于——它模拟的是“人”的行为路径,而不是直接怼接口。对于找工作这种场景,很多招聘站点对高频请求有风控,纯脚本容易被拦,而浏览器自动化因为带着真实的渲染环境和交互节奏,反而更稳。
我第一次接触这个需求,是帮一个做后端的朋友批量筛岗位。他每天要手动开几十个标签页,复制 JD、对比技能栈,重复劳动特别多。后来用 openclaw 的 Chrome 扩展插件做了一层“浏览器中继”,让 AI 通过插件去控制当前浏览器,整个流程就顺了。你不需要懂 Puppeteer,也不用配 Playwright,装个插件、填个令牌,就能让 AI 帮你跑。
这套方案适合谁?三类人最明显:一是正在密集投简历、需要批量检索岗位的求职者;二是做招聘信息聚合、想快速验证抓取可行性的开发者;三是想学习浏览器自动化但不想一上来就啃底层框架的新手。openclaw 把“控制浏览器”这件事封装成了插件 + 令牌的形式,门槛低了很多。
核心检索词这里再明确一下:openclaw 浏览器自动化、Chrome 浏览器扩展插件、模拟人打开浏览器、批量检索岗位。这几个词贯穿全文,你照着做就能跑通。
需要提前说清楚的是,openclaw 本身负责的是“浏览器控制层”,它不绑定某一家模型服务。你可以把它的请求端点指向统一的 API 通道,比如 TaoToken,这样 Key 和调用量都在一个地方管理,不用在多个平台之间来回切换。后面第 2 节会具体讲怎么接。
2. TaoToken 前置准备:统一 Key 与 API 通道
在开始配插件之前,先把“模型调用”这一层理顺。openclaw 的浏览器中继负责操作页面,但它在做页面理解、岗位信息抽取、判断“这个链接要不要点”的时候,是需要调用大模型的。如果你每个环节都单独去申请 Key、单独配端点,后面排障会非常痛苦。
我的做法是:把 openclaw 的请求端点统一改到 TaoToken 的 API 通道。TaoToken 提供的是统一的 Key 管理和 API 入口,官网地址是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end ,API 端点是 https://taotoken.net/api 。你只需要在 TaoToken 控制台创建一个 Key,然后把这个 Key 和 Base URL 填到 openclaw 的配置里,所有模型调用就走同一条通道了。
具体操作分三步。第一步,打开 TaoToken 控制台,进入 API Keys 页面创建一个新 Key。建议按用途命名,比如openclaw-job-hunt,方便后面区分。创建后把 Key 复制出来,注意它只显示一次。
第二步,确认你要用的模型 ID。openclaw 在做页面理解和信息抽取时,建议选一个上下文较长、指令跟随稳定的模型。你可以在模型对话页面先测一下,确认模型能正常返回。模型对话入口在 https://taotoken.net/api 对应的控制台里能找到。
第三步,把 Base URL 和 Key 写进 openclaw 的配置。openclaw 的配置通常是一个 JSON 或 TOML 文件,具体路径取决于你的安装方式。下面给一个可复制的 JSON 片段,路径和字段名按你本地实际文件为准:
{ "openclaw": { "browserRelay": { "enabled": true, "relayPort": 18789, "token": "你的_openclaw_网管令牌" }, "model": { "baseUrl": "https://taotoken.net/api", "apiKey": "你的_taotoken_key", "modelId": "你的模型ID", "timeoutMs": 60000 }, "automation": { "humanLikeDelay": true, "minStayMs": 2500, "maxStayMs": 6000, "clickJitter": true } } }这里有几个点要注意。relayPort是浏览器插件和 openclaw 主进程通信的端口,默认 18789,如果你本地被占用可以改。token是 openclaw 自己的网管令牌,不是 TaoToken 的 Key,这两个别搞混。baseUrl填 TaoToken 的 API 地址,不要带多余路径。modelId填你在 TaoToken 控制台确认过的模型 ID。
如果你用的是 TOML 格式,等价写法是这样:
[openclaw.browserRelay] enabled = true relayPort = 18789 token = "你的_openclaw_网管令牌" [openclaw.model] baseUrl = "https://taotoken.net/api" apiKey = "你的_taotoken_key" modelId = "你的模型ID" timeoutMs = 60000 [openclaw.automation] humanLikeDelay = true minStayMs = 2500 maxStayMs = 6000 clickJitter = true配好之后,openclaw 在需要调用模型时就会走 TaoToken 的通道。这样做的好处是:你只需要维护一个 Key,调用量、余额、错误日志都在 TaoToken 控制台看,不用在多个服务商之间对账。对于找工作这种需要反复调试提示词的场景,统一通道能省很多事。
另外提醒一句,apiKey不要提交到 Git 仓库。建议用环境变量注入,或者在本地配置文件里加.gitignore。openclaw 支持从环境变量读取,字段名通常是OPENCLAW_API_KEY,你可以在启动脚本里 export。
3. 可复制配置:Chrome 扩展插件加载与参数详解
这一节是全文最核心的操作部分。openclaw 的浏览器自动化依赖一个 Chrome 扩展插件作为“中继”,插件负责接收 openclaw 的指令,在当前浏览器里执行点击、输入、滚动、停留等动作。你不需要自己写扩展,直接用官方发布的插件即可。
第一步,安装 Chrome 浏览器扩展插件。用 Chrome 打开扩展商店页面,搜索 openclaw browser relay,找到对应插件后点击“添加至 Chrome”。安装完成后,浏览器右上角会出现插件图标。如果你所在网络访问扩展商店不稳定,也可以下载 crx 文件后通过开发者模式加载,但优先推荐商店安装,更新更方便。
第二步,获取 openclaw 网管令牌并填入插件。装完插件后点击图标,会弹出一个配置界面,要求输入 openclaw 的网管令牌。这个令牌不是 TaoToken 的 Key,而是 openclaw 自身的鉴权令牌。你可以在 openclaw 网页端登录后,在设置或令牌管理页面找到;如果接了飞书机器人,也可以直接在机器人里问“我的 openclaw 令牌是多少”。拿到后粘贴进插件输入框,点击保存。
第三步,确认插件与 openclaw 主进程连通。插件保存令牌后,会尝试连接本地 openclaw 的 relay 端口。你可以在 openclaw 主进程的日志里看到类似browser relay connected的输出。如果没连上,先检查 openclaw 是否在运行、relayPort是否和插件里填的一致。
第四步,配置模拟人行为参数。openclaw 的自动化配置里,humanLikeDelay、minStayMs、maxStayMs、clickJitter这几个参数决定了它像不像人。humanLikeDelay开启后,每次点击和输入之间会有随机延迟;minStayMs和maxStayMs控制页面停留时间范围;clickJitter让点击坐标有微小偏移,避免每次都点同一个像素点。下面是一个更完整的配置片段,你可以直接复制到 openclaw 的配置文件里:
{ "openclaw": { "browserRelay": { "enabled": true, "relayPort": 18789, "token": "你的_openclaw_网管令牌", "allowedOrigins": ["https://www.zhipin.com", "https://www.liepin.com"] }, "automation": { "humanLikeDelay": true, "minStayMs": 2500, "maxStayMs": 6000, "clickJitter": true, "scrollSteps": 3, "typingDelayMs": 80 }, "model": { "baseUrl": "https://taotoken.net/api", "apiKey": "你的_taotoken_key", "modelId": "你的模型ID" } } }allowedOrigins是白名单,限制插件只在指定站点上执行自动化,避免误操作其他页面。scrollSteps控制每次滚动分几步,模拟人浏览时的分段滚动。typingDelayMs是输入每个字符的间隔,80ms 左右比较自然。
如果你用的是 Cline MCP 或 Codex 的auth.json方式接入,配置结构会不同,但三件套不变:Base URL、Key、Model ID。以 Codex 的auth.json为例:
{ "openai": { "baseURL": "https://taotoken.net/api", "apiKey": "你的_taotoken_key", "model": "你的模型ID" } }Cline MCP 的配置通常在mcp_settings.json里,字段名可能是baseUrl、apiKey、model,你按实际 schema 填。核心原则就一条:所有模型调用都指向 TaoToken 的 API 通道,Key 用同一个。
配完这些,插件层和模型层就都通了。下一步是实际跑一次验证。
4. 验证请求:一次完整的岗位检索跑通
配置写完不代表能跑,必须做一次端到端验证。我建议用一个真实招聘站点做测试,比如打开某个岗位搜索页,让 openclaw 执行“输入关键词 → 点击搜索 → 停留 → 抓取前 5 条结果标题和链接”这个流程。
先启动 openclaw 主进程,确认 relay 端口在监听。你可以在终端执行:
openclaw start --config ./openclaw.json --log-level debug看到browser relay listening on 18789和model endpoint: https://taotoken.net/api这两行,说明主进程和模型通道都就绪了。
然后打开 Chrome,点击 openclaw 插件图标,确认状态显示“已连接”。如果显示未连接,回到第 5 节排查。
接着在 Chrome 里打开一个岗位搜索页,比如搜索“后端开发”的列表页。保持这个标签页在前台,然后在 openclaw 的对话入口输入指令:
请在当前页面执行以下操作: 1. 在搜索框输入“后端开发” 2. 点击搜索按钮 3. 等待页面加载完成后停留 3 秒 4. 抓取前 5 条岗位的标题和链接 5. 以 JSON 数组返回,字段为 title 和 urlopenclaw 会把这条指令拆解成浏览器动作,通过插件执行。你会在页面上看到搜索框被自动填入、按钮被点击、页面滚动。停留结束后,openclaw 返回类似这样的结果:
[ {"title": "后端开发工程师", "url": "https://example.com/job/123"}, {"title": "高级后端开发", "url": "https://example.com/job/456"}, {"title": "Java 后端开发", "url": "https://example.com/job/789"}, {"title": "Go 后端开发", "url": "https://example.com/job/101"}, {"title": "后端开发专家", "url": "https://example.com/job/112"} ]如果你拿到了这个 JSON,说明整条链路通了:插件控制浏览器、openclaw 调度动作、模型通过 TaoToken 通道做页面理解、结果结构化返回。
验证时重点看三个信号。第一,页面是否真的被操作了,搜索框有没有被填入、按钮有没有被点。第二,停留时间是否符合配置,太快或太慢都要调minStayMs/maxStayMs。第三,返回的 JSON 字段是否完整,如果标题为空或链接不对,说明模型对页面结构的理解有偏差,需要调整提示词,把“标题”和“链接”的选择器描述得更具体。
我实测下来,第一次跑通常会遇到两个小问题:一是搜索框的 selector 不唯一,页面有多个 input;二是搜索结果异步加载,停留 3 秒不够。前者在提示词里加“定位页面顶部的主搜索框”能缓解,后者把minStayMs调到 5000 以上。
跑通这一次之后,你就可以把指令改成批量模式,比如“依次搜索后端、前端、算法三个关键词,每个关键词抓前 10 条,去重后返回”。openclaw 会按顺序执行,中间自动处理页面跳转和停留。
5. 常见报错排查:401、local proxy failed、reading choices、OAuth
这一节按真实报错来。你在配 openclaw + TaoToken + Chrome 插件的过程中,大概率会碰到下面几类问题。
401 Unauthorized。这个最常见,通常是 Key 填错或没生效。先检查 openclaw 配置里的apiKey是不是 TaoToken 控制台创建的那个,注意前后不要有空格。然后确认baseUrl是https://taotoken.net/api,不要写成带/v1或其他路径的版本。如果 Key 没问题,去 TaoToken 控制台看这个 Key 是否被禁用或余额不足。还有一种情况是环境变量覆盖了配置文件,检查启动脚本里有没有旧的OPENCLAW_API_KEY。
local proxy failed。这个报错说明 openclaw 主进程和浏览器插件之间的 relay 连接断了。先确认 openclaw 是否在运行,终端有没有browser relay listening。然后检查插件里填的relayPort和配置文件里是否一致,默认 18789。如果端口被占用,换成 18790 并同步改插件。另外,Chrome 如果开了多个用户配置,插件可能装在另一个配置里,确认你操作的是同一个 Chrome 实例。
reading choices 报错。这个通常出现在模型返回结构不符合预期时,openclaw 在解析模型输出、提取选项或字段时失败。原因可能是模型返回了多余的解释文字,而不是纯 JSON。解决办法是在提示词里明确要求“只返回 JSON,不要任何额外说明”,并在 openclaw 配置里开启严格解析模式。如果用的是 TaoToken 通道,可以在模型对话里先测一下同一个提示词,确认模型输出稳定。
OAuth 相关报错。如果你在 openclaw 里配了需要 OAuth 的模型服务,或者插件尝试用 OAuth 登录,可能会卡在回调。建议直接用 API Key 方式,不要走 OAuth。TaoToken 的通道就是 API Key 鉴权,配好baseUrl和apiKey即可,不需要额外的 OAuth 流程。如果报错信息里出现OAuth token expired,检查是不是误配了其他服务的认证方式。
插件显示已连接但页面不动。先看当前标签页是否在allowedOrigins白名单里,不在的话插件会拒绝执行。然后确认页面没有弹窗遮挡,有些站点会弹 cookie 同意框,需要先处理掉。最后看 openclaw 日志里有没有action dispatched,如果有但页面没反应,可能是 selector 匹配失败,换一个更稳定的定位方式。
模型返回慢或超时。把timeoutMs调大,比如 120000。同时确认 TaoToken 通道的网络连通性,可以在终端用 curl 测一下:
curl -X POST https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer 你的_taotoken_key" \ -H "Content-Type: application/json" \ -d '{"model":"你的模型ID","messages":[{"role":"user","content":"ping"}]}'如果这条命令能返回正常结果,说明通道没问题,问题在 openclaw 配置或插件层。
排障的核心思路是分层:先确认模型通道通不通,再确认 openclaw 主进程和插件通不通,最后确认页面动作能不能执行。一层一层往下查,比盲目改配置快得多。
6. 把 openclaw 接到 TaoToken:统一管理调用与后续扩展
跑通一次岗位检索之后,你可能会想把它做成日常工具:每天定时跑一批关键词,抓取新岗位,去重后推送到自己的笔记或表格。这时候“统一管理调用”就很重要了。
把 openclaw 的模型端点固定在 TaoToken 的 API 通道上,好处有三个。第一,Key 只有一个,不用在 openclaw、模型服务商、其他工具之间来回同步。第二,调用量和错误日志集中在一个控制台,排查问题时不用到处翻。第三,后续换模型或调参数,只改modelId一个字段,不用动其他配置。
如果你打算长期跑编码类或 Agent 类任务,可以了解一下 Coding Plan,它更适合高频、长时间的自动化调用。入口在 TaoToken 控制台里能找到。对于找工作这种场景,如果你只是每天跑几次检索,按量调用就够;如果要做成持续运行的 Agent,再考虑套餐。
接入文档里有完整的端点和参数说明,配 openclaw 时遇到字段不确定的,直接对照文档填。API Keys 页面用来创建和管理 Key,建议给 openclaw 单独建一个,方便统计用量。
最后给一个实用技巧:把 openclaw 的岗位检索指令存成一个模板文件,比如job-search.md,里面写清楚关键词列表、抓取字段、去重规则。每次跑的时候直接引用这个文件,不用重复输入长指令。模板大概长这样:
任务:批量检索岗位 关键词:后端开发、前端开发、算法工程师 每个关键词抓取:前 10 条 字段:title、company、url、salary 去重规则:按 url 去重 输出:JSON 数组openclaw 读取这个模板后,会依次执行搜索、停留、抓取、去重,最后返回结构化结果。你把这个结果存到本地或推送到自己的工具里,就是一个最小可用的求职信息聚合流程。
整个流程里,Chrome 扩展插件负责“手”,openclaw 负责“脑”,TaoToken 的 API 通道负责“模型调用”。三层各司其职,你只需要维护好配置和提示词。先把第 4 节的验证跑通,再逐步加关键词和字段,不要一上来就追求大而全。