
人工智能AI Agent浏览器控制GUI 自动化MCP 服务【免费下载链接】invisible_playwright_mcpPlaywright MCP server undetected by anti-bots and captchas: AI agent browses the web on anti-detect stealth Firefox, Python, undetected browser automation, scraping, computer use.项目地址https://gitcode.com/GitHub_Trending/jo/invisible_playwright_mcp点击查看免费下载invisible_playwright_mcp 自带浏览器但模型由你决定——本指南聚焦用哪个模型跑浏览器 Agent这个实际问题。文章以 docs/which-model-to-use-with-invisible-playwright-mcp.md 为核心骨架结合仓库源码llm.py、agent.py、cli.py、runner.py逐层拆解默认模型是什么、循环如何真实消耗 token、浏览器工作对模型提出哪些独特要求、OpenRouter 真实价格如何换算成任务成本以及一套不随价格表腐烂的选型标准。读完你将能看懂自己的 transcript 账单并在省钱的便宜模型与多轮重试的隐性花费之间做出有依据的取舍。默认模型与两种覆盖方式invisible_playwright_mcp 把浏览器交给你把模型交给 OpenRouter——并且在当前源码中模型只来自 OpenRouter 这一个来源。如果你什么都不设置拿到的是z-ai/glm-5.3-flash这个默认值直接写死在源码里位于 llm.pyBASE_URL https://openrouter.ai/api/v1 DEFAULT_MODEL z-ai/glm-5.3-flash它不是目录里的旗舰款而是便宜且快那一端的模型。你可以用两种方式覆盖它命令行参数invisible-playwright-mcp ui --model model-id。参数定义在 cli.pyclick.option(--model, defaultNone, helpModel id (or env INVISIBLE_MCP_MODEL).)环境变量INVISIBLE_MCP_MODEL。解析逻辑在 llm.py优先级是显式参数 环境变量 默认值def resolve_model(explicit: str | None, env: Mapping[str, str]) - str: return explicit or environment.read(environment.MODEL, env) or DEFAULT_MODEL两个细节值得注意。其一INVISIBLE_MCP_MODEL的名字由 env.py 统一管理它还兼容旧的AIHAWK_MODEL名字并会在命中旧名时打出警告。其二任何 OpenRouter 上存在的模型 id 都是合法值——所以真正的问题从来不是invisible_playwright_mcp 支持哪些模型全都支持而是这类工作值得为哪个模型付费这个答案比价格表表面看起来要复杂得多。另外运行ui命令需要 OpenRouter 密钥--openrouter-key参数或OPENROUTER_API_KEY环境变量且自 0.4.0 起没有密钥界面拒绝启动。想完全不花 token 的话invisible_playwright库同一套 stealth 引擎、Playwright 完整 API无模型是另一条路。循环的真实形态每轮都重发整个 transcript选模型之前先搞清一个事实循环的形态决定了账单。接口运行的是一个固定循环——模型收到任务和浏览器工具回复一段思考和一个通常只有一个工具调用工具执行结果进入 transcript然后模型再次被调用。在 agent.py 中这个循环没有任何轮数上限# No turn ceiling. ... What stops a run instead is the person watching it while True: resp await asyncio.to_thread( self.client.chat.completions.create, modelself.model, messagesself.messages, toolsself.tool_defs, tool_choiceauto, temperature0, max_tokensself.max_tokens, )每个回合有四个结构性参数全部可以在源码中确认agent.py参数值源码位置轮数上限无直到模型停止调用工具while True每轮回复 token 上限8,192MAX_TOKENS 8192温度固定 0temperature0工具结果截断长度8,000 字符给模型1,200 字符给观看者SHOWN, SENT 1200, 8000由此直接推出两条成本结论每一轮都重发完整 transcript。API 是无状态的所以第十二轮要为任务本身、此前每一段思考、此前每一个工具结果再付一次钱。任务早期读入的一大段页面不是付一次而是此后每一轮都付。界面的 token 计量器展示的是最后一轮的 prompt 大小原因就在这里见 agent.py 的注释这个数字就是上下文窗口当前的占用而且只增不减。源码中的计量结构是self.usage {prompt: 0, completion: 0, calls: 0, last_prompt: 0}——last_prompt刻意不累加因为把每一轮的 prompt 相加会把早期轮次重复数遍几分钟内就会冲过任何上限。一个任务的成本大致等于轮数 × 上下文 × 输入单价。输出在这里是小头——一轮回复是一句话加一个工具调用不是一篇作文。被反复重发且不断增长的输入侧才是大头。浏览器 Agent 对模型提出的四类要求这不是创意写作基于散文质量排序的榜单在这里会严重误导。循环实际考验的是工具调用纪律。每一轮都必须产生格式良好、JSON 参数合法的调用。循环对格式错误的调用是宽容的——agent.py 会把参数无法解析作为工具结果回给模型让它重试——但每一次重试都是花了全价却没推进任何事的一轮。在系统提示下遵循指令。agent.py 的SYSTEM_PROMPT要求模型行动前先检查页面、一次优先一个动作、任务完成就停止调用工具。答案已在手还继续调工具的模型烧轮数不读页面就回答的模型则凭空捏造结果。提示词里甚至有一条铁律绝不使用 emoji——因为历史上条件式规则被模型读成了许可。阅读又长又乱的上下文。任务进行到中段transcript 里大部分是抽取出来的页面文本。模型要在噪声里找到那个价格并且注意到一次点击什么都没改变。知道何时完成、何时卡住。最糟的结果不是错误答案而是自信地游荡且循环内没有任何机制会终止它。一个没注意到自己卡住的模型会继续占轮数每一轮重发比上一轮更大的 transcript直到有人喊停。这正是模型的自知力在这里成为一个成本问题的原因也是这个运行值得盯着看而不是启动后就离开的原因。此外速度在这里比在聊天中更重要人是一轮接一轮地盯着界面看的每轮延迟会被不断放大——而这个人也是唯一能终结一个不收敛运行的东西。真实价格与一次算到底的对比以下价格于 2026-09-08 从 OpenRouter 获取。OpenRouter 会把每个模型路由到多家供应商所以便宜模型显示的是价格区间而非单一数字而且这些数字都会变动——依赖它们之前请先查看模型主页。模型输入每 100 万 token输出每 100 万 tokenz-ai/glm-5.3-flash默认$0.071 – $0.388$0.237 – $1.358anthropic/claude-sonnet-4.5$3.00 – $3.30$15.00 – $16.50默认模型的区间这么宽是因为有二十多家供应商提供它而 OpenRouter 每次请求挑一家——所以一个任务的账单既取决于它跑了多久也取决于它落在了哪家供应商上。Sonnet 的低档数字是标准档超过 200,000 prompt token 会触发高档$6.00 / $22.50长时间运行的 agent transcript 确实可能达到——不过 8,000 字符的工具结果截断会让普通任务远低于这个阈值。同一页上还有一个会改变什么能终止运行的数字默认模型的上下文窗口是1,310,720 token对比它的前任默认z-ai/glm-4.6的204,800 token。工具结果截断在 8,000 字符意味着普通任务远远低于这两个数字所以你先遇到的要么是账单、要么是自己决定结束运行——而不是模型的上下文窗口。但放任一个运行游荡得够久它最终确实会撞上窗口而且在较小的那个窗口上会快得多。现在做算术示意性质而非实测一个 20 轮的任务每轮 transcript 平均 15,000 token约合 300,000 输入 token外加几千输出 token。默认模型、区间顶价约 $0.12 输入 不到 1 美分输出约$0.12路由到同一区间便宜端同样任务约$0.02。Claude Sonnet 4.5$0.90 输入 $0.06 输出约$0.96。同样的任务相对默认模型最贵供应商是 8 倍相对最便宜供应商约 40 倍。所有方案都不到 1 美元——这是单个任务诚实的量级真正复利的是倍数当你跑五十个这样的任务或者一个监控任务每小时跑一次时。反直觉的陷阱会重试的便宜模型并不便宜上面那张表假设两个模型都恰好花 20 轮——但它们不会。较弱的模型点错元素要发现并恢复、重读已经读过的页面或者漫游而不收敛——而漫游是最贵的失败因为没有任何东西能终结它且 transcript 恰好在它被最频繁重发的时候处于最大。三次失败的便宜运行加一次成功就能超过一个价格五倍模型的单次干净运行。这个警告同样适用于默认模型本身。它是一个又快又便宜fast, cheap的模型而本 wiki 没有任何关于它在这个特定循环里跑二十轮工具调用表现如何的实测。已知的是价格、上下文窗口、以及不设置就用它它在你任务上要花多少轮应该从你自己的 transcript 里读出来而不是从本页读出来。这两个方向都没有保证——所以唯一可信的比较是经验性的同一任务、两个模型、读 transcript。浏览器问题还是模型问题 一文讲了如何让这种比较变得干净同样传--seed保持浏览器身份恒定这样你移动的变量就只剩模型本身。从源码看--seed会经 runner.py 映射为STEALTHFOX_SEED环境变量交给引擎从而固定指纹。值得补充的是要鉴别浏览器侧问题还是模型侧问题该文档给出了一种零 token 成本的仪器——用pip install invisible-playwright在无模型的情况下用同一引擎重放失败步骤凡是不带模型也复现的失败就绝不是模型问题。实践中如何选四条决策标准从默认开始。如果默认模型能完成你的任务就没什么可优化的更大的模型会花几倍的钱做同样的工作。任务失败时先诊断再升级。被拦截的页面或挑战页不是模型问题任何模型投入都修不了它诊断页 把两者分开。只在模型侧症状出现时升级点错元素、循环、过早说完成、本该很短的长时间漫游。用前沿模型跑同一任务对比 transcript而不是对比感觉。让模型匹配任务的利害关系。每晚读一个数字的检查可以住在最便宜的能工作的东西上用 AI Agent 监控页面 正是这种形态而一个错误答案会付出代价的长多步抽取值得用更强的模型——因为模型是整个出错成本里最便宜的部分。一句话划清边界本页无法告诉你该粘贴哪个最佳模型 id——那个答案几周就会腐烂且取决于你的任务。上面这套标准不会。常见问题速答invisible_playwright_mcp 默认用什么模型z-ai/glm-5.3-flash经 OpenRouter。设置--model或INVISIBLE_MCP_MODEL可使用 OpenRouter 提供的任何其他模型。我需要 OpenRouter 账号吗对 invisible_playwright_mcp 自己的界面而言——是的。当前源码中模型只来自 OpenRouter且自 0.4.0 起invisible-playwright-mcp ui没有密钥拒绝启动。不花钱的路是你的 MCP 助手订阅本身就是模型和 invisible_playwright 库根本不用模型。前沿模型对浏览器自动化值得吗只有当 transcript 显示便宜模型有模型侧失败时才值得。默认模型能处理的任务前沿模型做同样的工作却要几倍的钱默认模型搞砸的任务前沿模型可能比重试还便宜。为什么一个短任务比预期贵因为每一轮都重发完整 transcript成本随轮数 × 上下文增长而不是随你指令的长度增长。一次早期的整页读取会在之后每一轮再付一次。这是无状态 API 加上 agent.py 中messages列表逐轮追加的结构性结果。invisible_playwright_mcp 会把密钥发到 OpenRouter 以外的地方吗密钥只用于 OpenRouter API并且在浏览器引擎启动前就从其环境中被剥离——按名字、也按值。这由 runner.py 的without_key实现它同时处理大小写变体openrouter_api_key和以别名如OPENAI_API_KEY存放的同值变量tests/test_key_isolation.py 专门有一套测试任何破坏这一保证的改动都会让测试失败。能给任务设置花费上限吗当前源码中没有金钱上限也没有轮数上限唯一的结构性上限是每轮回复 8,192 token。你得到的替代品是可见性 停止界面在任务运行中展示 token 用量且工作在进行中时发送按钮会变成红色停止按钮——只要消息框为空输入文字会让它变回排入下一轮的按钮。所以失控的运行在还便宜时是可见的、可终结的但只有正在盯着看的人才能做到。停止的实现在 chat.pyt.cancel()与前端 04-composer.js调用/chat/stop并读取stopped字段中routes.py 暴露了/chat/stop路由。记住什么模型只有一个来源OpenRouter。默认z-ai/glm-5.3-flash写在 llm.py用--model或INVISIBLE_MCP_MODEL覆盖。成本 轮数 × 上下文 × 输入价因为每一轮重发整个 transcriptagent.py。输出是零头。最贵的失败是漫游而循环里没有任何东西会终结它——停止按钮是你的工具使用它的前提是你在看。别让价格表替你决定会重试的便宜模型不便宜三败一成的组合能超过价格高五倍的干净运行。唯一诚实的比较是同一任务双模型读 transcript固定--seed只动模型一个变量。本页的机制性事实默认值、上限、重发的 transcript读自源码价格读自 2026-09-08 的 OpenRouter。两者都会漂移——请信任标准甚于信任数字。赞分享人工智能AI Agent浏览器控制GUI 自动化MCP 服务【免费下载链接】invisible_playwright_mcpPlaywright MCP server undetected by anti-bots and captchas: AI agent browses the web on anti-detect stealth Firefox, Python, undetected browser automation, scraping, computer use.项目地址https://gitcode.com/GitHub_Trending/jo/invisible_playwright_mcp点击查看免费下载相关推荐什么是 AI Web Agent语言模型与真实浏览器之间的循环以及 invisible_playwright_mcp 的落地实现什么是 AI Web Agent语言模型与真实浏览器之间的循环以及 invisible_playwright_mcp 的落地实现 AI Web Agent人工智能AI Agent浏览器控制GUI 自动化MCP 服务开源 AI 浏览器代理全景对比从 browser-use 到 invisible_playwright_mcp 的选型指南开源 AI 浏览器代理全景对比从 browser use 到 invisible_playwright_mcp 的选型指南 本篇技术指南以 invisible人工智能AI Agent浏览器控制GUI 自动化MCP 服务txtai 模型指南推荐模型选型、加载机制与默认模型全解析txtai 模型指南推荐模型选型、加载机制与默认模型全解析 本篇指南以 docs/models.md https://link.gitcode.com/i/4人工智能大模型RAGAI Agent向量数据库NLP本地部署上一篇微博满屏推荐与广告YAWF 免费用户脚本搞定信息流过滤与版面改造下一篇PR-Agent 安全策略深度解读自托管数据边界、镜像版本固定与供应链验证实战创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考