已登录浏览器交给 AI,bsk 侧 Agent 由 TaoToken 结算

发布时间:2026/9/18 14:29:19
已登录浏览器交给 AI,bsk 侧 Agent 由 TaoToken 结算 1. bsk 借已登录浏览器模型调用交给 TaoToken 结算如果你已经把 BrowserSkill 装好bsk也能看到浏览器扩展却在 Claude Code 或 Codex 里收到401 Unauthorized别急着怀疑登录态。bsk 只解决“借用已登录标签页”不解决 bsk 侧 Agent 的模型通道。先把模型通道切到 TaoToken到 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentbrowser_skill_bsk 拿 KeyBase URL 填 https://taotoken.net/api。这样 bsk 负责浏览器动作TaoToken 负责结算来源 csdn_ugc 的这次实践就是把这两条链路拆开后跑通的。很多教程把 BrowserSkill 讲成“浏览器自动化神器”但真正落地时会发现它只是把浏览器借出去bskCLI 扩展 你日常已经登录的 Chrome/EdgeAgent 在独立窗口里操作标签页遇到验证码或扫码会请求你接管。它没有承诺替你解决模型调用额度、API 端点、模型名映射。于是出现一个很典型的割裂浏览器侧已经能打开后台模型侧还在用默认 endpoint任务跑到第一步就断。这篇不重复讲“登录态多难”而是给一份可跟做的接入清单先让 bsk 稳定借到标签页再把 bsk 所调用的 AgentClaude Code、Codex、CC Switch 管理的其他入口切到 TaoToken最后产出 bsk 任务脚本与结算记录。你不需要重装浏览器也不需要养测试账号你只需要把两条链路分别验证。先记住三个固定值TaoToken 官网入口https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentbsk_agent_settlementBase URLhttps://taotoken.net/apiKey 占位符YOUR_API_KEY后面所有配置都围绕这三个值展开。bsk 侧 Agent 无论是 Claude Code 还是 Codex最终都要把模型请求发到 TaoToken再由 TaoToken 结算到你的账户。2. 先验证 bsk 链路扩展、已登录标签页、独立 Agent 窗口在改模型配置之前先把浏览器侧跑通。顺序错了会很难排查明明 Agent 报的是模型 401你却在反复重装浏览器扩展最后发现只是 Key 没写对。建议按下面顺序做一次最小验证。第一步确认bskCLI 能在当前 shell 里执行。新开一个终端执行bsk --help如果提示 command not found说明安装脚本写入的 PATH 没被当前终端加载。重开终端或在~/.zshrc、~/.bashrc里补上安装目录然后source一下。不要急着改 Agent 配置命令都找不到时配置写得再对也没用。第二步确认浏览器扩展已连接。打开你日常用的 Chrome 或 Edge保持目标平台已经登录。比如你要操作 CSDN 后台、知乎后台、微信公众号后台就先把这些页面登录好并保留一个可用标签页。BrowserSkill 的思路不是新建无头实例而是借用你已经登录的浏览器会话。所以“已登录”是前提不是安装后的自动结果。第三步让 bsk 侧 Agent 做一个只读任务。不要一上来就发布文章或导出全量数据。先让 Agent 打开一个后台页面读取当前登录账号名称或者读取页面标题然后停下来。这个动作能同时验证三件事bsk 能找到浏览器上下文扩展能把标签页借给 AgentAgent 的模型通道能正常返回。如果只读任务能完成说明浏览器链路和模型链路基本通了。再做导出、填表、发布这类写操作排障范围会小很多。常见现象与处理现象bsk 提示没有可用浏览器上下文 检查扩展是否安装并启用目标浏览器是否正在运行是否已经登录目标站点 处理重启浏览器和 bsk 守护进程保持一个已登录标签页打开 现象Agent 能启动但打开的是空白页 检查bsk 借用的标签页是否被关闭浏览器是否切到了无痕模式 处理在普通窗口登录目标平台重新发起借用 现象任务撞到验证码后一直停住 检查是否配置了人工接管 处理在 bsk 侧确认接管提示手动完成验证码或扫码再让任务继续bsk 的价值在于“可见 可接管”。它不是黑箱托管所以你不需要追求完全无人值守。遇到扫码登录、短信验证、确认弹窗让它停下来找你比强行绕过更稳。3. 把 bsk 侧 Agent 切到 TaoTokenKey 和 Base URL 放哪里浏览器侧通了之后重点就变成bsk 调用的 Agent 到底在用哪个模型端点。bsk 本身是浏览器技能层它会把任务交给 Claude Code、Codex、Cursor 这类 Agent。Agent 再去请求模型。如果你不显式配置Agent 可能还在用默认端点或者用了一个已经失效的 Key。表现就是401、403、model not found、连接超时。所以正确做法是在 Agent 的配置层写入 TaoToken 的 Base URL 和 Key。TaoToken 的 Base URL 固定为https://taotoken.net/apiKey 从 TaoToken 控制台获取。如果你还没有 Key可以从官网入口进入https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentbsk_agent_key拿到 Key 后不要直接写进脚本仓库。建议用环境变量或本地配置文件保存。本文所有示例都用YOUR_API_KEY占位你替换成自己的 Key 即可。这里要特别强调Claude Code 和 Codex 的配置格式不同不能把ANTHROPIC_*环境变量套到 Codex 上也不能把 Codex 的config.toml直接复制给 Claude Code。两者协议、配置键、读取位置都不一样。下面分开写。4. Claude Codesettings.json 写 ANTHROPIC_*不要套给 CodexClaude Code 读取的是 Anthropic 风格配置。常见做法是在settings.json里写env或者直接在 shell 里导出ANTHROPIC_*环境变量。为了可复现推荐把配置写进用户级settings.json{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: YOUR_API_KEY, ANTHROPIC_API_KEY: YOUR_API_KEY, ANTHROPIC_MODEL: claude-sonnet-4-5 } }文件位置按你的 Claude Code 安装方式决定通常在用户目录下的.claude/settings.json。如果已经存在该文件不要整体覆盖把env字段合并进去。写完后新开一个终端让环境变量生效。可以用下面命令快速检查当前 shell 里是否读到了 Base URLecho $ANTHROPIC_BASE_URL如果输出不是https://taotoken.net/api说明你改的不是当前终端读取的文件或者需要重启 IDE / Agent 进程。很多“配置明明写了却还报 401”的问题都是因为老进程还在用旧环境。Claude Code 侧验证时不要直接跑 bsk 的写操作。先单独让 Claude Code 做一个最小对话请求确认模型通道可用。然后再回到 bsk把任务交给它。分层验证的好处是一旦报错你能立刻判断是模型配置错还是浏览器借用失败。另外ANTHROPIC_MODEL不要凭感觉填。TaoToken 控制台里能看到可用模型列表填控制台里实际存在的模型名。如果模型名写错常见报错是model not found或invalid model这不是 Key 的问题。Claude Code 配置入口可参考https://taotoken.net/doc/ClaudeCodeAnthropic?utm_sourcetaotoken_aicg_blog_endutm_contentbsk_claude_code_doc5. Codexconfig.toml 写 provider不要塞 ANTHROPIC_*Codex 使用config.toml配置模型供应商的方式和 Claude Code 完全不同。典型结构如下model gpt-5-codex model_provider taotoken [model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key TAOTOKEN_API_KEY wire_api responses然后在 shell 里提供 Keyexport TAOTOKEN_API_KEYYOUR_API_KEY如果你用~/.zshrc或~/.bashrc可以写进去并source。但不要把 Key 提交到 Git 仓库也不要在共享脚本里硬编码。需要多人协作时用本地.env或系统密钥管理把YOUR_API_KEY留给模板。Codex 配置文件通常在~/.codex/config.toml。修改后重启 Codex 会话。验证顺序同样是先做最小请求再交给 bsk。这里最容易踩的坑是看到 Claude Code 用ANTHROPIC_BASE_URL就把同样变量写进 Codex 启动脚本。Codex 不会读它。结果就是 Claude Code 通了Codex 还走默认端点bsk 任务一半能跑、一半报错。正确做法是Claude Codesettings.jsonANTHROPIC_*Codexconfig.tomlmodel_providersenv_key两者共用同一个 TaoToken Base URLhttps://taotoken.net/api两者分别使用各自的 Key 读取方式不要交叉套用如果你同时装了 Claude Code 和 Codex建议给它们分别设置不同的本地 Key 备注例如taotoken-claude、taotoken-codex。这样在 TaoToken 控制台看用量时能快速判断是哪一个 Agent 产生的请求。6. CC Switch 三件套供应商、密钥、默认模型如果你用 CC Switch 管理多个 Agent配置入口会更集中。但它本质上还是三件事供应商档案、密钥、默认模型。可以把它理解成“三件套”供应商填写 TaoToken 的 Base URL即https://taotoken.net/api密钥填写YOUR_API_KEY并确认当前激活的是 TaoToken 档案默认模型从 TaoToken 控制台复制可用模型名不要留空也不要写一个控制台不存在的名字。一个供应商档案可以抽象成下面这种结构具体字段名以你本机 CC Switch 版本为准{ id: taotoken, name: TaoToken, baseUrl: https://taotoken.net/api, apiKey: YOUR_API_KEY, defaultModel: claude-sonnet-4-5, providerType: anthropic-compatible }如果你还给 Codex 建档案providerType要改成 OpenAI 兼容类型并且不要在 Codex 档案里填 Anthropic 的模型名。CC Switch 的作用是切换不是混合。一个档案对应一种协议切换后要重启对应 Agent否则旧进程可能还在用上一个供应商。CC Switch 场景下最常见的故障是“切了但没生效”。处理步骤# 1. 确认当前激活档案 # 在 CC Switch 界面查看或读取它管理的本地配置文件 # 2. 确认 Base URL 没有多余路径 # 正确https://taotoken.net/api # 错误https://taotoken.net/api/chat/completions 之类的手工拼接 # 3. 重启 Claude Code / Codex 会话 # 4. 再做一次最小对话请求如果你发现切换后 Claude Code 正常、Codex 报 401优先检查 Codex 档案的env_key是否指向了正确的环境变量。CC Switch 可以帮你管理档案但最终读取 Key 的还是 Agent 本身。需要创建或查看 Key 时从这里进https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentcc_switch_key7. bsk 任务脚本与结算记录让每次借用都有迹可循bsk 解决浏览器借用TaoToken 解决模型结算。两者接起来之后建议给每次任务加一个task_id并生成一份本地结算记录。这样你既知道浏览器帮了什么忙也知道模型花了多少。下面是一个可运行的本地包装脚本。它不调用未公开的 bsk 子命令只负责准备环境、生成任务标记、输出任务描述并留下结算记录入口。你把它保存成run-bsk-task.sh按本机 bsk 的实际用法把任务交给 Agent 即可。#!/usr/bin/env bash set -euo pipefail export TAOTOKEN_API_KEYYOUR_API_KEY export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKENYOUR_API_KEY TASK_IDbsk-$(date %Y%m%d-%H%M%S) RECORD_DIR.bsk RECORD_FILE${RECORD_DIR}/settlement-${TASK_ID}.jsonl mkdir -p $RECORD_DIR printf {task_id:%s,provider:taotoken,base_url:https://taotoken.net/api,agent:claude-code,started_at:%s}\n \ $TASK_ID $(date -Iseconds) $RECORD_FILE cat TASK 请把下面任务交给 bsk 侧 Agent 借用当前已登录的 Chrome 标签页打开目标后台导出本月报表到 ~/Downloads。 遇到验证码、短信、扫码登录、确认弹窗时请求我接管。 任务结束后在 TaoToken 控制台核对本次用量。 TASK printf {task_id:%s,status:pending_console_check,console:https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentbsk_settlement}\n \ $TASK_ID $RECORD_FILE echo 任务标记$TASK_ID echo 本地结算记录$RECORD_FILE运行chmod x run-bsk-task.sh ./run-bsk-task.sh脚本会输出一段任务描述你把它交给 bsk 侧 Agent。Agent 干活期间bsk 会借用你已登录的标签页遇到人工接管点你处理完它继续。任务结束后回到 TaoToken 控制台按时间范围查看本次请求的模型、输入输出用量和费用再把结果追加到同一份 JSONL 里。一条结算记录可以长这样{ task_id: bsk-20260905-001, agent: claude-code, model: claude-sonnet-4-5, browser_action: borrow_login_tab, target: https://example.com/admin/export, takeover: [captcha, qr_login], input_tokens: 1234, output_tokens: 567, cost: 以控制台显示为准, status: done }不要编造用量数字。input_tokens、output_tokens、cost都从 TaoToken 控制台读取。这份记录的价值不是做账而是让你在任务变多之后还能回答三个问题哪个 Agent 在用、哪个任务超了、哪个 Key 该轮换。如果你一次跑多个平台建议把target写成平台名 页面类型例如csdn:article_publish、wechat:qr_login、zhihu:draft_save。这样月底回看时能直接把模型消耗和浏览器任务对应起来。8. 排障表401、404、借不到标签页、结算对不上下面这张表按“先分层、再定位”的顺序整理建议收藏。现象优先检查处理方式401 UnauthorizedAgent 是否读到 TaoToken Key检查settings.json/config.toml/ CC Switch 当前档案重开终端和 Agent403 ForbiddenKey 权限、模型权限、账户状态确认 Key 未失效确认模型在控制台可用换一个可用模型测试model not found模型名是否写错从 TaoToken 控制台复制模型名不要凭记忆拼写bsk: no browser context扩展、浏览器、登录态重启浏览器和 bsk保持普通窗口已登录标签页Agent 打开空白页借用的标签页是否被关闭重新登录目标平台避免无痕窗口重新发起任务任务卡在验证码人工接管是否开启在 bsk 侧完成接管不要强行跳过结算记录对不上多 Agent 共用 Key、无 task_id给 Claude Code 和 Codex 分开 Key每次任务写task_idClaude Code 通了、Codex 报错是否把ANTHROPIC_*套给 CodexCodex 改回config.tomlmodel_providers排障时记住一个原则bsk 报错先看浏览器Agent 报错先看模型。两者同时报错时先修模型通道再修浏览器借用。因为模型通道可以用最小对话验证浏览器借用需要保持登录态变量更多。9. 安全边界与最小权限清单BrowserSkill 借的是你真实登录的浏览器所以用它做自动化时边界要比普通脚本更清楚。建议至少做到只借指定标签页任务结束归还不碰其他窗口遇到验证码、扫码、确认弹窗必须人工接管涉及资金、隐私、对外发布的账号先跑只读任务API Key 不写进仓库不截屏泄露不放在共享脚本给 Claude Code 和 Codex 使用不同的本地 Key 备注每次任务写task_id并在 TaoToken 控制台核对用量bsk 任务脚本只在本地执行不把生产库连接串放进 Agent 任务如果任务需要读数据库先导出脱敏文件再由本地脚本处理。TaoToken 在这里承担的是模型结算层。它不改变 bsk 的浏览器权限也不替你决定哪些页面能操作。所以“可见 可接管”仍然是底线AI 在独立窗口里干活你能看到遇到它过不去的步骤它停下来你确认之后它继续。10. 文末 CTA按顺序跑通模型对话、Coding Plan、创建 Key 与 Claude Code 文档如果你还没有开始配置建议按下面顺序走不要跳步。第一步先验证模型对话是否可用确认 Base URL 和 Key 能正常返回https://taotoken.net/models/detail/chat?utm_sourcetaotoken_aicg_blog_endutm_contentbrowser_skill_bsk_chat第二步如果你准备把 Claude Code、Codex 或 bsk 侧 Agent 长期用于编码和浏览器任务查看 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentbrowser_skill_bsk_plan第三步创建或管理 API Keys把YOUR_API_KEY替换成你自己的 Keyhttps://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentbrowser_skill_bsk_keys第四步Claude Code 的详细配置和文档在这里https://taotoken.net/doc/ClaudeCodeAnthropic?utm_sourcetaotoken_aicg_blog_endutm_contentbrowser_skill_bsk_cc最后再回到本文的主线bsk 把已登录浏览器借给 AITaoToken 给 bsk 侧 Agent 做模型结算。先把 Claude Code 或 Codex 的 Base URL 改成https://taotoken.net/api再把 Key 换成YOUR_API_KEY对应的真实值然后用第 7 节的脚本给每个任务打上task_id。这样你得到的不只是一次自动化跑通而是一套可回查、可结算、可接管的浏览器任务流水线。