Skip to content
🔧 进阶手册第 7 / 8 节

Ultrafast 排错:连不上、点不动、跑偏了怎么办 ​

跑 Jev Ultrafast 时出了问题,八成卡在四层之一:本地服务没起来、Chrome 没连上、模型调用被拒、决策执行碰壁。这节课把常见 jev-ultrafast 报错按「报错原文」逐个给原因和解法——先 60 秒速检,再对号入座。

所有报错原文都出自仓库源码(jev_ultrafast/model.py、agent.py、browser.py、demo.py 和 inspector 界面),逐字可搜、可复制去提问。前置课程卡住没关系,安装运行哪一步炸了都能回到这里查。

学完你能做什么 ​

  • 用 4 条命令在 60 秒内定位目录、Key、Chrome、浏览器执行层哪一环出了问题
  • 把 jev-ultrafast 报错对号入座:报错原文 → 原因 → 修复步骤
  • 分清三类报错的待遇:stale 类(自动模式自愈)、重试类(代码自动退避)、动手类(要你改配置或改目标)
  • 看懂 inspector 状态栏的 6 种显示,知道 done 和 blocked 各自下一步做什么
  • 记住不支持清单:shadow DOM、frames、canvas、上传、弹出新 tab、嵌套滚动、任意键盘组件
  • 用 Export trace 导出决策证据,带最小信息去提问

你现在的困境 ​

  • Start demo 点了没反应,不知道是服务没起来、Chrome 没连上,还是 Key 没配
  • 红框里的英文报错一闪而过,不知道拿哪句去搜、搜到了也看不懂是哪层的锅
  • agent 状态变成 done / blocked,页面却不是想要的结果——是目标写错了,还是这个页面根本跑不了?

什么时候用这一招 ​

当你需要:

而且不想:

  • 一报错就删库重装,从头再走一遍安装流程
  • 分不清「页面变了要重试」和「配置坏了要修」,白改半天

🎒 开始前的准备 ​

  • 完成了 Ultrafast 安装运行(卡住没关系,本课就是解卡的)
  • 仓库 clone 在本地,终端能在 jev-ultrafast/ 根目录执行命令
  • (可选)跑过 写自己的浏览器任务——用 Agent 库时碰到的报错,同样能在这里对号入座

核心思路 ​

先定层,再看报错。 一次 Ultrafast 任务要过四层,每层的报错长得不一样:

层检查什么典型报错 / 现象
1. 本地服务uv run jev 起没起、目录对不对、地址是不是 127.0.0.1Cannot reach local demo server / Forbidden
2. Chrome 连接Browser Harness、远程调试授权面板一直不动
3. 模型调用两个 Key、网络、额度TYPE_TEXT needs TEXT_MODEL_API_KEY / Model provider returned HTTP 401
4. 决策与执行页面变化、动作预算、页面控件边界Target changed or is covered / 状态变 blocked

三类报错,三种待遇。 看到报错先归类,别急着动手:

类型例子你要做的
自愈类(stale,页面变了)Page changed since the decision / Target changed or is covered什么都不用做:自动运行会重新观察再决策;手动模式点一次 Choose next
重试类(服务端临时拒绝)429 / 529 / 503 → 代码共尝试 3 次(重试 2 次),仍失败报 Model provider returned HTTP 429/529/503稍等再跑,查额度
动手类(配置 / 预算 / 边界)缺 Key、HTTP 401、60 动作预算、shadow DOM 不支持按下面各条改配置、改目标或换页面

💡 inspector 状态栏对照表(app.js 原文)

状态栏显示含义你要做什么
Ready to explore还没 Start demo填目标,点 Start demo
Page observed · ready for a decision页面已观察,等决策点 Choose next 或 Run automatically
Choice ready · inspect or execute决策已出,待执行检查概率后点 Execute choice
Jev reports complete · inspect the page模型选了 DONE亲自核对页面——DONE 不是成功证据
Stopped · no supported next actionblocked:连续无效动作或模型选了 BLOCKED看 Decision trail 最后几步,对照不支持清单
Paused · needs attention出错暂停看红框里的报错原文,对号入座

首次排查:60 秒速检 ​

四条命令按顺序跑,依次验证目录、Key、Chrome 连接、浏览器执行层。前提:跑 uv run jev 的终端还打印着 Jev Ultrafast: http://127.0.0.1:8766,浏览器用 127.0.0.1:8766 打开(不是 localhost,原因见下面 Forbidden 那条排错)。

bash
# 1. 当前目录对吗?——.env 从「当前目录」读取,必须在仓库根目录跑
pwd
# 应以 jev-ultrafast 结尾;不在就先 cd jev-ultrafast

# 2. 两个 Key 都配了吗?——应看到两行(值非空才算数)
grep -E "^(TYPESAFE_API_KEY|TEXT_MODEL_API_KEY)=." .env
# 顺手 echo $TYPESAFE_API_KEY 确认 shell 里没有旧值抢先——.env 不会覆盖已 export 的变量

# 3. Chrome 连得上吗?——官方诊断命令
uv run browser-harness --doctor
# 按提示在 Chrome 里允许远程调试

# 4. 浏览器执行层正常吗?——官方开发命令,不调用模型、不花 API 费
uv run python scripts/check_guards.py
# 在本地浏览器里跑执行守卫回归;脚本自己的说明:No model calls or external websites

你应该看到:第 1 条以 jev-ultrafast 结尾;第 2 条输出两行;第 3 条完成连接诊断;第 4 条结尾打印 PASS: N browser guard checks; no model calls。哪条断了就从哪条修;四条全过还报错,问题基本在模型调用或决策层——往下对号入座。

常见问题排查 ​

启动与 Chrome 连接(连不上) ​

"Cannot reach local demo server" ​

原因:inspector 页面连不上本地服务——uv run jev 没在跑、端口被换过,或者页面是个旧标签页。这句话出现在状态栏(app.js 的 fetch 失败分支)。

解决:

  1. 在仓库根目录重新启动,终端应打印:
bash
uv run jev
# Jev Ultrafast: http://127.0.0.1:8766
  1. 浏览器打开 http://127.0.0.1:8766。换了端口的话:TYPESAFE_DEMO_PORT 必须在启动前设好(demo.py 在模块导入时就读定端口),详见安装运行课的进阶技巧。

打开页面只显示 "Forbidden" ​

原因:用了 localhost:8766 而不是 127.0.0.1:8766。demo 服务校验 Host 头,只认 127.0.0.1:8766——这个服务只监听本机回环地址(demo.py 自称 Loopback-only inspector),POST 请求还会得到 {"error": "Local demo requests only"}。

解决:地址栏改成 http://127.0.0.1:8766,刷新即可。

Chrome 连不上、面板一直不动 ​

原因:Browser Harness 需要 Chrome 允许远程调试,首次连接时 Chrome 会弹提示;错过或拒绝后就连不上。README 的原话:Allow remote debugging in Chrome when prompted。

解决:

  1. 跑官方诊断命令,在仓库根目录:
bash
uv run browser-harness --doctor
  1. Chrome 再弹「允许远程调试」提示时点允许。
  2. 诊断通过但还不动:先跑上面的 uv run python scripts/check_guards.py——它不调用模型,能单独验证浏览器执行层。

"A browser step is already running" ​

原因:上一步还在执行。demo 服务用一把全局锁保证同一时刻只跑一个浏览器步骤,撞锁的请求返回 409 和这句话。

解决:等当前步完成;Run automatically 运行中想停就点 Pause。

"Local demo failed; no automatic retry. Reset to recover." ​

原因:demo 服务把未被特殊捕获的异常统一包装成这句 500 兜底提示。最常见诱因:TYPESAFE_API_KEY 完全没设——model.py 直接读 os.environ["TYPESAFE_API_KEY"],缺了抛 KeyError,不会显示原文,只会落到这句兜底。

解决:

  1. 检查 .env 两个 Key(60 秒速检第 2 条)。
  2. 按提示 Reset:点 Start demo 重开一次。
  3. 用 Agent 库的同学会直接看到原始 traceback(如 KeyError: 'TYPESAFE_API_KEY'),按缺哪个补哪个处理。

"Start a demo first" ​

原因:inspector 里还没 Start demo 就点了 Choose next / Execute choice / Run automatically——demo 服务在还没创建 agent 时拒绝这些命令。

解决:先填目标、点 Start demo,再执行控制按钮。

"Enter 1–2,000 characters" ​

原因:目标为空或超过 2000 字符(demo.py 的 reset 校验)。

解决:把目标写到 1–2000 字符以内。用 Agent 库传空目标会报 Supply a task(agent.py),同一个意思。

Key 与模型调用(TEXT_MODEL 报错高发区) ​

"TYPE_TEXT needs TEXT_MODEL_API_KEY; no text is hardcoded or guessed by the executor." ​

原因:.env 缺 TEXT_MODEL_API_KEY。这项检查只在操作为 TYPE_TEXT 时触发(model.py 的 field_text()),所以 demo 能启动、页面也能观察,一到「往输入框打字」才停——Flights demo 要生成城市名,躲不过去。

解决:

  1. 在 .env 里补上文本模型的 Key(去哪拿见安装运行课第 3 步的方式 A/B/C)。
  2. 注意读取规则:.env 从当前目录读取,且不会覆盖 shell 里已 export 的同名变量——明明填了还报,就 cd jev-ultrafast 后重跑、并检查 echo $TEXT_MODEL_API_KEY。

"Model provider returned HTTP 401; no action executed." ​

原因:模型端点返回了错误状态码,套进这句话模板(源码是 f"Model provider returned HTTP {response.status_code}; no action executed.")。401 = Key 无效。这句话 TypeSafe 和文本模型共用,先分清是哪一端:

什么时候报是哪一端查什么
第一步决策就报TypeSafe(决策每个周期都调用)TYPESAFE_API_KEY
跑到打字那步才报文本模型(只有 TYPE_TEXT 用)TEXT_MODEL_API_KEY 与 TEXT_MODEL_BASE_URL 是否匹配

解决:

  1. TypeSafe 侧:回 控制台 Keys 页 重抄 Key,可用 curl 验证(起步排错有完整命令)。
  2. 文本模型侧:确认 Key 是你配置的那个端点的(OpenRouter 的 Key 配 DeepSeek 端点就是 401)。
  3. 其他状态码含义(400/413/415/422 等)看 API 速查的状态码表——429/529/503 不会立刻报,见下面 "Model provider returned HTTP 429/529/503"。

"Model connection failed; no action executed." ​

原因:HTTP 客户端在网络层就抛了异常——连不上端点、DNS 解析失败这类,请求根本没发出去(model.py 捕获 httpx.HTTPError 后抛这句)。

解决:

  1. 检查网络能否访问 api.typesafe.ai 和你的 TEXT_MODEL_BASE_URL。
  2. 检查端点拼写:TEXT_MODEL_BASE_URL 常见错误是少了或多了 /v1(示例值 https://openrouter.ai/api/v1,DeepSeek 默认 https://api.deepseek.com/v1)。

"Model provider returned HTTP 429/529/503; no action executed."(限流与过载) ​

原因:模型端点返回 429(限流)/ 529(过载)/ 503。这类状态码不会立刻报:代码共尝试 3 次(重试 2 次,间隔 0.5s、1s),第 3 次仍失败才套进上面的状态码模板,报出 Model provider returned HTTP 429; no action executed.(529、503 同句式)。

源码里还有一句兜底文案 "Model unavailable"(model.py L27),但按当前控制流它不可达——429/529/503 重试耗尽后走的是状态码模板,界面上看不到这句;在源码里搜到它时,对号入座到本条即可。

解决:稍等再跑一次;频繁出现就查额度——TypeSafe 侧在 控制台 rate-limits 页 看,文本模型侧看你服务商的账单页。

"Invalid TypeSafe response; no action executed." ​

原因:决策响应没通过本地校验(model.py 的 validate_choice():选中的选项必须在候选里、每个选项都有概率、数值都在 0–1、概率和约为 1)。这是「响应不符合契约」的守卫,不是你的配置问题。

解决:先原样重跑一次(偶发);持续出现就导出 trace(见「还是不行?」)带去反馈。

"Text helper returned no valid field value; nothing typed." ​

原因:文本模型的输出不符合契约——必须是只含 text 一个键的 JSON,值是非空字符串且不超过 2000 字符(model.py 的解析规则)。两种常见触发:

触发机制
目标里缺必填值模型指令明文规定:缺值返回 {"text": null}、绝不发明个人信息(questions.py 的 TEXT_VALUE)——null 解析失败,什么都不打
模型不守规矩输出了一段注释文字而不是 JSON——官方性能报告就提到探测时拒绝过这种模型

解决:

  1. 把任务需要的值写进目标(日期、城市名这类,别让模型猜)。
  2. 还不行就换文本模型,并保留 TEXT_MODEL_REASONING=none(关推理的模型更少发挥)。
  3. 打了错的值(不是不打)也一样处理——官方探测还拒绝过把出发地和目的地写反的模型,换模型前先用小任务试。

执行中断与预算(点不动) ​

"Target changed or is covered. Observe again." ​

原因:执行前的安全复查发现目标变了:被覆盖、隐藏、禁用、移出视口,或者不再是观察时的那个节点。这是守卫在工作,不是 bug——模型输出永远只引用观察到的真实元素,执行前还会再核一遍几何位置。

解决:重新观察再决策。自动运行(不开 Slow motion)时每步走 tick,这类 stale 报错会被自动吞掉并重新观察,你根本看不到;手动逐步或开慢速时会暂停显示原文,点一次 Choose next 重新决策即可。

"Page changed since the decision. Choose again." ​

原因:stale 家族——决策做出后页面变了,旧决策作废。同族变体:Page changed before text generation. Choose again.(打字前页面变了)、Page changed since this decision. Observe again.(执行前复查)、Document changed during evaluation / Document is navigating(观察时页面正在变)。

解决:同上,重新观察。两个细节:

  1. 打字的值不会白生成:只有文本 helper 的输入完全不变时,重试才会复用上次生成的值(README 的 Reuse an interrupted text request)。
  2. 频繁出现说明页面动画/加载多,稍等再跑或换个稳定些的页面。

"Page did not settle" ​

原因:连续 10 次观察(每次间隔 20ms)页面都没稳定下来——动画不停或一直在加载。

解决:等页面消停再跑;某些重型页面(滚动动画、骨架屏常驻)可能就是不适合。

原因:原生 <select> 的执行结果没有被确认,或执行被打断(变体原文:Dropdown execution was interrupted; inspect before retrying.)。代码在这里选择保守停下,而不是盲目重试——重试可能造成重复选择。

解决:重新观察(Choose next / 重跑),让 agent 基于新页面重新决策。

"Observe and choose before acting" ​

原因:手动模式下没决策就点 Execute choice,或者决策出来后页面指纹变了、决策已被消费。

解决:点一次 Choose next 拿到新决策,再 Execute choice。

"Stopped at the 60-action demo budget" ​

原因:单次运行的硬预算用完:最多 60 个已执行动作(MAX_STEPS = 60)。决策调用数另有上限 120(MAX_STEPS × 2),到顶报 Reached the demo's model-call budget。

解决:任务太大就拆小——examples/run.py 的官方示例参数就叫 'A narrow goal',把目标写窄是官方建议。预算内没跑完,通常说明目标太泛或页面不适合(见下组)。

"This run has stopped. Start a fresh demo." ​

原因:状态已经是 done 或 blocked,还继续请求新决策——一次运行结束了。

解决:点 Start demo 重开一次新的运行。

状态栏显示 "Stopped · no supported next action"(blocked) ​

原因:两种来源:模型主动选了 BLOCKED(指令定义:没有受支持的操作能推进任务),或连续 3 个已执行动作(且都不是 WAIT)页面都没有任何变化——代码判定卡死,自动转 blocked。

解决:

  1. 看 Decision trail 最后 3 步:点的什么、页面为什么没变。
  2. 对照下面那组「不支持清单」——blocked 最常见的根因是页面里有跑不了的控件。
  3. 目标改窄、改具体一点,重开 demo。

结果不对与页面边界(跑偏了) ​

状态栏显示 "Jev reports complete · inspect the page",但页面不是想要的 ​

原因:模型选了 DONE,但 DONE 永远不是成功证据——官方在 Evidence and limits 里写得很直白:选了 DONE 仍然要独立验证结果。界面状态栏的后半句(inspect the page)就是在提醒你亲自看。

解决:

  1. 重要任务加独立验证。官方范本是 examples/flights.py 的 verify():对结果页逐项核对单程、出发地、目的地、日期、结果可见——不信任模型的 DONE;验证不过就退出并报 Final page did not satisfy the route/date checks。
  2. 目标里写清停止条件。官方 Flights 示例目标就以 Stop when … 收尾,照这个句式写。
  3. 「打开某结果」类目标尤其要注意:模型指令明文规定「只找到匹配链接不算完成」。

控件点了没反应 / 元素表里根本没有它(shadow DOM、canvas、上传……) ​

原因:撞上 MVP 边界了。DOM reader 只认常见 HTML 和 ARIA 控件,不实现完整的 accessible-name 算法。官方 Limits 清单,以下一律不支持:

不支持举例
shadow roots / frames组件框架渲染的内部控件
canvas地图、画布类交互
文件上传<input type="file">
弹出新标签页点击后开新 tab 的链接
嵌套滚动内部滚动容器
任意键盘组件快捷键、富文本编辑器

解决:任务开工前先对照清单筛一遍,涉及这些控件的页面目前别硬闯(原理课第 4 步有同一份边界);换个只含常规控件的页面或任务。另外注意:agent 的 tab 共用你现有的 Chrome profile——登录状态会影响页面内容,排查「页面和预期不一样」时想想这一层。

打进去的字不对,或者该打的字没打 ​

原因:字符串由文本 helper 从目标推断,不是 Jev 写的。字不对 = helper 模型理解偏了;不打 = 它按规则返回了 {"text": null}(目标缺必填值时拒绝发明,见上面 nothing typed 那条)。

解决:把必填值原样写进目标(「September 20, 2026」而不是「下个月」);还不行换文本模型,先用小任务探测——官方就是靠六次探测调用淘汰掉写反城市、输出注释的模型的(见性能解读)。

填完了却不提交、打完字不选建议 ​

原因:模型指令里其实写死了这些规则:填完必填字段要提交(「填好的字段不等于已应用的搜索」)、打完字的查询还要选匹配的自动补全建议。没做到多半是时机问题——打完字后代码最多等 200ms 建议就出来,建议加载慢的站点可能没赶上下一次观察。

解决:原样重跑一次通常就过;持续卡在同一处就把目标写得更明确(要提交什么、停在哪),或换个建议加载快的页面。

还是不行? ​

先隔离,再收集证据,最后带证据去问。

隔离利器是仓库自带的两个脚本(都在 scripts/,出自 README 的 Development 一节):

bash
# 只测浏览器执行层:本地页面、不调用模型、不花钱
uv run python scripts/check_guards.py

# 测完整链路:浏览器只开本地 fixture 页面,但会发起真实模型调用(产生付费 API 费用)
uv run python scripts/smoke.py

check_guards.py 过了、smoke.py 也过了、真实网站还失败——问题多半在那个网站本身(控件边界、加载时机),对照不支持清单。

收集证据,三样就够:

证据怎么拿里边有什么
决策 traceinspector 底部 Export trace ↓ 按钮下载 typesafe-browser-trace.json:完整决策历史、概率、目标、页面 URL 和可见文本(不含截图)
模型看到了什么页面折叠区 What the model sees发给模型的完整请求体,逐字段可查
报错原文红框里的那句话本页所有 H4 都能对上

⚠️ 发出去之前过一遍

trace 里有页面 URL 和可见文本,可能包含你的账号信息;另外注意:live 示例和录制脚本都会产生付费 API 调用(README 原话),反复复现前心里有数。

去哪里问:

渠道什么时候去
本课 + 安装运行先自查两遍,大部分问题到不了这一步
起步排错 / API 速查TypeSafe API 侧的状态码问题
GitHub IssuesUltrafast 本身的缺陷:带 trace + 报错原文 + 目标和 URL
TypeSafe Discord决策 API(Jev)侧的问题,官方说坏了直接报
Browser Use Cloud用托管版 BU Ultrafast(model: "bu-ultrafast")时的问题

检查点 ✅ ​

  • 60 秒速检四条命令都跑过,知道卡在哪一层
  • 我能分清三类报错:stale 自愈、429/529/503 自动重试、配置/预算/边界要动手
  • 状态 done 时我不会直接收工——重要任务加独立验证(flights.py 的 verify() 是范本)
  • 不支持清单过目:shadow DOM、frames、canvas、上传、新 tab、嵌套滚动、键盘组件
  • 提问时我会带上 typesafe-browser-trace.json、报错原文、目标和 URL

本课小结 ​

✅ 排错先定层:本地服务 → Chrome 连接 → 模型调用 → 决策执行,每层报错长相不同。

✅ jev-ultrafast 报错原文全部出自仓库源码,逐字可搜;H4 标题就是报错原文,复制去搜、去问都行。

✅ 三类待遇:stale 类交给自动重观察,429/529/503 交给代码重试,配置/预算/边界类才需要你动手。

✅ DONE 不是成功证据、blocked 先查不支持清单、60 动作是硬预算——这三条记住了,一半的「跑偏」能提前避开。

关键信号速查:

信号在哪一层第一步
Cannot reach local demo server / Forbidden本地服务重跑 uv run jev;用 127.0.0.1:8766 打开
面板一直不动Chrome 连接uv run browser-harness --doctor,允许远程调试
TYPE_TEXT needs TEXT_MODEL_API_KEY模型调用(文本侧).env 补 Key,注意 cwd 与 setdefault
Model provider returned HTTP 401模型调用(Key 无效)先分清 TypeSafe 还是文本模型,再重抄 Key
Model provider returned HTTP 429/529/503模型调用(限流/过载)稍等重跑,查额度
Target changed or is covered决策执行(stale)重新观察;自动模式自愈
Stopped at the 60-action demo budget决策执行(预算)目标写窄,任务拆小
状态 done 但结果不对结果验证亲自核对;加 flights.py 式的独立验证
状态 blocked页面边界对照不支持清单,换页面或改目标

下一课预告 ​

浏览器篇到此收工。下一课 Jev 1.13 踩坑手册:9 种失败模式与替代做法回到 Jev 模型本身——Ultrafast 之外,所有 Jev 应用通用。你会学到:

  • 官方 jaggedness 文档的 9 种失败模式:字面理解、算术计数、日期比较、间接引用……
  • 每种失败模式的替代做法:算术放代码、日期提部件、大 state 先过滤
  • 这些提问习惯怎么反哺你写 Ultrafast 的目标和其他 Jev 应用

相关教程 ​

附录:源码参考 ​

点击展开查看源码位置

更新时间:2026-11-04(仓库 github.com/browser-use/jev-ultrafast,本地信息源 sources/jev/repo-ultrafast/)

功能文件路径关键位置
报错原文:连接/HTTP/重试jev_ultrafast/model.pyL15–27 post_json(L20 连接失败、L21–23 对 429/529/503 自动重试·共 3 次尝试、L25 HTTP 状态码模板、L27 Model unavailable 兜底文案·当前控制流不可达);L12 客户端 timeout=25
报错原文:决策响应校验jev_ultrafast/model.pyL30–45 validate_choice(L44 Invalid TypeSafe response)
报错原文:文本 helperjev_ultrafast/model.pyL160–198 field_text(L163 缺 Key 原文、L187–193 JSON 契约校验、L193 nothing typed)
TypeSafe 请求与 Key 读取jev_ultrafast/model.pyL119(api.typesafe.ai/v1/systemone + os.environ["TYPESAFE_API_KEY"],缺了抛 KeyError)
报错原文:预算与状态机jev_ultrafast/agent.pyL74 已停止、L75–76 模型调用预算(MAX_STEPS×2=120)、L88–89 先观察再执行、L96/L107–108 stale 原文、L102–104 60 动作预算、L153–158 连续 3 次无变化→blocked
报错原文:stale 与执行守卫jev_ultrafast/browser.pyL86 Page did not settle、L102 执行前页面变化、L130–131/L162–163 下拉框未确认/被打断、L164 目标被覆盖;L16 StalePage(ValueError)
报错原文:demo 服务jev_ultrafast/demo.pyL16 端口(启动前设 TYPESAFE_DEMO_PORT)、L23–29 .env 读取(cwd + setdefault)、L48–52 场景与 1–2000 字符、L64–65 Start a demo first、L111–112 409 单步锁、L122–123 500 兜底
inspector 状态栏与报错显示jev_ultrafast/static/app.jsL63 Paused · needs attention、L82–88 五种状态文案、L173–183 自动循环(tick 自愈 vs 慢速分步)、L217–235 导出 trace(去截图)、L243 Cannot reach local demo server
界面按钮与折叠区jev_ultrafast/static/index.htmlL56–59 Choose next / Execute choice / Run automatically / Pause、L126 Export trace ↓、L133 What the model sees
模型指令(DONE/BLOCKED/提交/建议规则)jev_ultrafast/questions.pyL3–14 NEXT_ACTION、L21–24 TEXT_VALUE(缺值返回 null、不发明个人信息)、L26 MAX_STEPS = 60
安装、--doctor、远程调试、不支持清单README.mdL53–68 Try it(含 uv run browser-harness --doctor)、L118–126 Evidence and limits(DONE 需独立验证;shadow roots/frames/canvas/上传/新 tab/嵌套滚动/键盘组件不支持;tab 共用现有 Chrome profile)、L128–138 Development(check_guards、付费提示)
不支持清单(Limits 原文)docs/performance.mdL53–55;L49 探测拒绝过的模型(写反城市/输出注释)
独立验证范本examples/flights.pyL18–38 verify() 逐项核对、L63–64 Final page did not satisfy the route/date checks
本地守卫回归脚本scripts/check_guards.pyL1 文档字符串(No model calls or external websites)、L133 结尾打印 PASS: N browser guard checks; no model calls
本地 fixture 冒烟脚本scripts/smoke.pyL1 文档字符串(付费 API)、L19 --max-actions(默认 15)、L25 打印 trace 目录
搞懂AI关于我们怎么写隐私说明

独立的第三方教程,与文中提到的任何产品及其公司没有隶属或合作关系;产品名称和商标归各自所有者。价格和政策以官方页面为准。