---
title: "W07 工具说明：web-access"
---

# web-access

## 1. 项目介绍

**它是什么。** web-access 是一个 Skill：一份 `SKILL.md` 加几个 Node.js 脚本，教智能体在联网任务里选工具。简单的用搜索、网页读取和 curl（静态层），读不到或要登录的，就通过本机一个小服务去操作你**日常在用的那个 Chrome**（浏览器层），带着你已有的登录状态。

| 项 | 内容 |
| --- | --- |
| 开发与维护 | 个人作者一泽 Eze（GitHub 用户 eze-is） |
| 开源与许可证 | 开源；README 与 SKILL.md 写 MIT，仓库根目录没有单独的 LICENSE 文件，GitHub 不识别许可证 |
| 首次发布 | 仓库建于 2026-03-18；GitHub Releases 页最早一条是 v2.5.1（2026-05-15），更早的版本只记在 README 里 |
| 最新版本 | v2.6.0，2026-10-14 |
| GitHub 星数与最近提交 | 约 9,200 星；默认分支最近一次提交 2026-10-14（2026-10 核查） |
| 接入方式 | CLI＋Skill。没有 MCP 服务器，智能体用终端命令 `node`、`curl` 调用本机 `localhost:3456` 上的 CDP Proxy |

CDP Proxy 是 web-access 自带的一个本机小服务，它通过 Chrome DevTools Protocol（浏览器提供的远程控制接口）替智能体操作浏览器。

**核心能力：**

- 按任务选静态层或浏览器层，先用省事的办法；
- 经 CDP Proxy 操作日常浏览器，带已有登录态打开、点击、读取页面；
- v2.6.0 起支持 Chrome、Edge 等任意 Chromium 内核浏览器，能读跨站 iframe（嵌在页面里的另一个网站的页面）；
- 读取本地浏览器书签和历史记录找网址（v2.5.0 起）。

**在同类工具里的位置：** [Playwright MCP](https://ai.lingnan.top/materials/2026-autumn/w07/tool-03-playwright-mcp)、[agent-browser](https://ai.lingnan.top/materials/2026-autumn/w07/tool-05-agent-browser) 另开一个干净浏览器，web-access 接管你正在用的浏览器，方便的同时，风险也落在你的真实账号上（第 4 节）。

**国内网络：** 官网能打开；GitHub 能下载但慢。静态层里的 Jina Reader 和 Claude Code 自带的 WebFetch 在国内网络下不可用，静态层能用的是 curl 和 [DeepSeek 搜索与读取](https://ai.lingnan.top/materials/2026-autumn/w07/tool-01-deepseek-web)。

两层的分工：

| 层 | 用什么 | 带不带登录态 | 适合 |
| --- | --- | --- | --- |
| 静态层 | 终端里的 curl；DeepSeek Search／Fetch（见 [DeepSeek 搜索与读取](https://ai.lingnan.top/materials/2026-autumn/w07/tool-01-deepseek-web)）。SKILL.md 里还写了客户端自带的 WebSearch、WebFetch 和第三方 Jina（`r.jina.ai/网址`，把网页转成 Markdown），其中 WebFetch 和 Jina 国内网络下不可用，不用它们 | 不带 | 公开页面、文章、政府公告、文档 |
| 浏览器层 | CDP Proxy（`node scripts/cdp-proxy.mjs`，监听 `127.0.0.1:3456`）连接你的日常 Chrome | 带，你登录过的网站它都能进 | 动态渲染页面、要点按钮翻页的页面、要登录的平台（小红书、微博等） |

## 2. 官方链接与版本

核查日期：2026-10。

| 项目 | 链接 | 说明 |
| --- | --- | --- |
| 官网 | https://web-access.eze.is | 国内能打开 |
| GitHub 仓库 | https://github.com/eze-is/web-access | 约 9,200 星；README 与 SKILL.md 写 MIT 许可。国内访问能用但慢、不稳定；不要用来源不明的镜像 |
| 发布与更新日志 | https://github.com/eze-is/web-access/releases | 每个版本的说明也写在 README 的“vX 更新”折叠段里 |
| 升级迁移说明 | https://github.com/eze-is/web-access/blob/main/references/migration-2.6.md | 从 2.5 及以前升到 2.6 前要先搬数据 |
| 设计详解（作者公众号文章） | https://mp.weixin.qq.com/s/rps5YVB6TchT9npAaIWKCw | 作者自述，非技术规范 |
| 价格页 | 无 | 开源免费 |

版本：

| 版本 | 发布日期 | 与本课相关的变化 |
| --- | --- | --- |
| **v2.6.0（最新）** | 2026-10-14 | 任意 Chromium 内核浏览器可用（Chrome、Edge、Brave 等）；用户数据移到 `~/.web-access/`（Windows 为 `%USERPROFILE%\.web-access\`）；**不再扫描 9222 等固定端口**，用 `--remote-debugging-port` 单独启动的浏览器不再支持；新增跨站 iframe 读取与 `proxy-maintenance.mjs` 维护命令 |
| v2.5.2 | 2026-05-15 | 首次支持 Microsoft Edge（`edge://inspect/#remote-debugging`），标为测试版 |
| v2.5.0 | 见 README | 新增 `find-url.mjs`：读取本地浏览器书签和历史记录找网址 |
| v2.4.3 | 见 README | 旧版；Windows 上只认 Chrome／Chromium 的端口文件，不认 Edge。手上是这个版本的，建议换成 v2.6.0 |

## 3. 能做什么、不能做什么

**能做：**

- 按任务自己选工具：先搜索找来源，再用网页读取或 curl 读原文，读不到再进浏览器。SKILL.md 里强调“一手信息优于二手信息”，核实类任务要找发布机构官网原文。
- 浏览器层能打开新的后台标签页、执行页面脚本读页面内容、点击、滚动触发懒加载、截图、上传文件、对视频截帧；v2.6 能读跨站 iframe。
- 按域名记“站点经验”（URL 规律、反爬特点、已知陷阱），下次复用。v2.4.3 存在技能目录 `references/site-patterns/`，v2.6 存在 `~/.web-access/site-patterns/`。
- 多个子智能体共用一个 Proxy，各开各的标签页并行抓取。
- v2.5 起能查你本地浏览器的书签和历史记录（`find-url.mjs`），用来找“我上次看过的那篇”或校内系统网址。

**不能做或做不好：**

- 不处理验证码、扫码登录、短信验证，这些要你自己在浏览器里完成。
- 不保证账号安全。SKILL.md 要求智能体在操作前先展示一句须知，说明存在账号封禁风险，智能体继续操作即视为你接受。
- 静态层不带登录态；能不能用 WebSearch 取决于你的客户端和模型服务商。Jina 和 Claude Code 的 WebFetch 国内网络下连不上，SKILL.md 里写到它们的步骤会失败，要在提示词里写明“不要用 WebFetch 和 r.jina.ai”。
- 它不是独立程序，效果取决于模型能不能读懂 SKILL.md 里的“浏览哲学”。接 DeepSeek 等国内模型时，如果它选错工具，就在提示词里写明这一步用什么。

**适合本课的任务：** 读公开但难抓的政府、交易所、央行页面，读动态渲染的财经数据页，把一组公开文章存成 Markdown。**不建议**用来操作社交平台账号、批量抓取、替你发帖。

## 4. 与“另开干净浏览器”的工具有什么不同

| | web-access 浏览器层 | agent-browser（Vercel Labs）、Playwright MCP 默认模式 |
| --- | --- | --- |
| 用哪个浏览器 | 你正在用的日常 Chrome（v2.6 起可换成任意 Chromium 浏览器） | 工具自己启动一个浏览器窗口，用独立的用户数据目录 |
| 登录状态 | 你登录过的网站全部可用：邮箱、网银网页版、教务系统、微信读书、小红书…… | 一开始什么都没登录；要登录就在那个窗口里登录 |
| 出错影响范围 | 能碰到你所有已登录的账号和你已打开的标签页 | 局限在那个独立窗口 |
| 被网站识别 | 用的是真实浏览器和真实账号，指纹接近真人；一旦被识别，受罚的是你的主号 | 新环境更容易触发验证，但牵连的是那个空白环境 |
| 准备工作 | 打开浏览器远程调试开关、装 Node.js 22+ | Playwright MCP 用本机 Chrome 不额外下载；agent-browser 需 `agent-browser install` 下载浏览器 |

Playwright MCP 也能用 `--cdp-endpoint` 或 `--extension` 接已开着的浏览器，那时风险与 web-access 同类：它能碰到那个浏览器里所有的登录。

## 5. 安装与配置

### 5.0 先决定要不要装

web-access 自己的说明写着有封号风险，本课不强推。不装它，用 DeepSeek Fetch（Claude Code、WorkBuddy 都可）、WorkBuddy 自带的网页读取、Playwright MCP 或 agent-browser 也能完成本课的网页读取任务。Claude Code 自带的 WebFetch 国内网络下不可用，不在此列。

如果要装，建议分两步：

1. **只装技能文件、不开远程调试**：静态层里的 curl 可以用，浏览器层连不上就会停下来报错，不会碰你的浏览器。
2. 确实需要读登录后的页面时，再开远程调试；开之前看完第 8 节。

### 5.1 前置依赖

| 依赖 | 要求 | Windows 11 检查方法 |
| --- | --- | --- |
| Node.js | 22 或以上（Proxy 用 Node 自带的 WebSocket） | PowerShell 运行 `node --version` |
| Chromium 内核浏览器 | Windows 11 自带 Edge，建议直接用 Edge 配 v2.6.0（v2.5.2 起支持 Edge）；用 Chrome 要 144 或以上才有 `chrome://inspect/#remote-debugging` 里的开关。web-access 不需要装浏览器扩展，所以 Chrome 应用店国内连不上不影响它 | 地址栏打开 `edge://version` 或 `chrome://version` |
| curl | Windows 10 起系统自带 | `curl --version` |
| Git（可选） | 用 git 下载技能时需要；Claude Code 在 Windows 上本身依赖 Git for Windows | `git --version` |

WorkBuddy 可能自带一份 Node.js。它执行命令时用的是哪个版本，以在 WorkBuddy 里让它运行 `node --version` 的结果为准。

### 5.2 首选：交给智能体装技能文件

这一步只是把文件放到对的目录，可以让智能体做。**打开远程调试开关、在浏览器弹窗里点“允许”不能交给它**，见 5.3。

**Claude Code 端**（在你的课程项目文件夹里打开 Claude Code，粘贴）：

```txt
帮我安装 web-access 技能，只装文件，不要运行它。
1. 来源：https://github.com/eze-is/web-access ，用发布版 v2.6.0（git clone --branch v2.6.0 --depth 1）。没有 git 就从 Releases 页下载 v2.6.0 的源码压缩包解压。
   GitHub 在国内访问慢、时好时坏，clone 超时就重试一次或改下载压缩包；不要自己找 Gitee 或其他镜像地址，找不到就停下来告诉我。
2. 装到当前项目的 .claude/skills/web-access/ 下（项目级），不要装到用户目录 ~/.claude/skills/，不要用 npx skills add，不要用 claude plugin install。
3. 装完后打开 .claude/skills/web-access/SKILL.md，把开头 description 里“所有联网操作必须通过此 skill 处理”这一句改成“只有当我明确说‘用 web-access’时才使用此 skill”，其余内容不改。把改动给我看。
4. 自查：运行 node --version，告诉我是否 ≥ 22；列出 .claude/skills/web-access/ 下的文件；读出 SKILL.md 里的 version。
5. 不要运行 check-deps.mjs、cdp-proxy.mjs 或任何连接浏览器的命令，不要打开浏览器，不要改浏览器设置。
6. 需要装 Node.js、需要联网下载以外的权限、或者遇到报错时，停下来问我。
```

**WorkBuddy 端**（在 WorkBuddy 里选中你的工作空间文件夹，粘贴）：

```txt
帮我把 web-access 技能装进当前工作空间，只装文件，不要运行它。
1. 来源：https://github.com/eze-is/web-access ，发布版 v2.6.0。
2. 放到当前工作空间的 .workbuddy/skills/web-access/ 下，保留它的 README.md、SKILL.md、scripts/、references/、templates/。不要放到用户级技能目录。
   GitHub 在国内访问慢，下载失败就重试一次；不要自己找其他镜像地址。
3. 把 SKILL.md 开头 description 里“所有联网操作必须通过此 skill 处理”改成“只有当我明确说‘用 web-access’时才使用此 skill”，改动给我看。
4. 运行 node --version 告诉我版本。
5. 不要运行 check-deps.mjs、cdp-proxy.mjs，不要打开浏览器。遇到要装软件、要权限或报错就停下来问我。
```

**装的过程中它会请求的权限：**

| 请求 | 处理 |
| --- | --- |
| 运行 `git clone`、下载压缩包 | 可以允许；看清地址是 `github.com/eze-is/web-access`（或 GitHub 的下载域名 `codeload.github.com`），不是来路不明的镜像站 |
| 在项目里新建、写入文件 | 可以允许；看清路径在 `.claude/skills/` 或 `.workbuddy/skills/` 下 |
| 运行 `node --version` | 可以允许 |
| 运行 `node .../check-deps.mjs` 或 `cdp-proxy.mjs` | **拒绝**。这一步会在后台启动 Proxy 并尝试连接浏览器，装文件阶段不需要 |
| 运行 `winget install`、`npm install -g` 装 Node.js | 看清再点；这是全局安装软件，可以自己去官网装 |
| 写入 `~/.claude/skills/`、`%USERPROFILE%\.web-access\` | 看清再点；前者让所有项目都加载它，后者是 v2.6 存配置和站点经验的位置，首次运行时脚本会自己创建 |

### 5.3 要你亲手做的部分

| 步骤 | 为什么不交给智能体 |
| --- | --- |
| 装 Node.js 22+：官网 https://nodejs.org 下 LTS 版安装包；国内也可从 npmmirror https://registry.npmmirror.com/-/binary/node/ 按版本号下载 `node-v22.x.x-x64.msi`，通常更快 | 全局安装软件 |
| 打开浏览器远程调试开关 | 这是浏览器的安全设置，打开后本机程序可以操作你所有已登录的网站 |
| 浏览器弹出“允许远程调试”时点“允许” | 同上；每次 Proxy 新连上浏览器都可能弹一次 |
| 在浏览器里登录、过验证码 | 不应把密码交给智能体 |
| 用完关掉开关、停掉 Proxy | 见 8.4 |

**Windows 上打开开关：**

- Chrome：地址栏输入 `chrome://inspect/#remote-debugging`，勾选 **Allow remote debugging for this browser instance**，按提示重启浏览器。
- Edge：地址栏输入 `edge://inspect/#remote-debugging`，勾选同名选项。web-access 要 v2.5.2 以上才认 Edge；用 v2.4.3 等旧版、电脑上只有 Edge 的，会报“chrome: not connected”。
- 不要按旧教程用 `chrome.exe --remote-debugging-port=9222` 启动：v2.6 不再扫描固定端口，这种方式不在支持范围内（v2.6.0 发布说明）。

**建议的隔离做法：** v2.6 支持任意 Chromium 浏览器。可以把一个平时不用的浏览器（例如日常用 Chrome，就把 Windows 自带的 Edge 留给智能体）只用于智能体任务，里面只登录小号或不登录，只在这个浏览器里打开远程调试开关。首次运行时智能体会列出本机浏览器、问你用哪个，写进 `~/.web-access/config.env` 的 `WEB_ACCESS_BROWSER`。开关对整个浏览器实例生效，同一个浏览器里换“个人资料”不起隔离作用（同一用户数据目录）。

macOS：Chrome 同样在 `chrome://inspect/#remote-debugging` 勾选；首次连接时浏览器会弹授权框。

### 5.4 参考：手动安装命令

**Claude Code，Windows 11（PowerShell，在项目文件夹里运行）：**

```powershell
git clone --branch v2.6.0 --depth 1 https://github.com/eze-is/web-access .claude\skills\web-access
node --version
```

GitHub 在国内能连上但慢，失败时重试；或在浏览器打开 https://github.com/eze-is/web-access/releases/tag/v2.6.0 下载 Source code (zip)，解压后把文件夹改名为 `web-access` 放进 `.claude\skills\`。不要用来源不明的镜像。

**Claude Code，macOS：**

```bash
git clone --branch v2.6.0 --depth 1 https://github.com/eze-is/web-access .claude/skills/web-access
node --version
```

上游 README 还给了三种方式，本课不推荐：

| 方式 | 命令 | 不推荐的原因 |
| --- | --- | --- |
| skills CLI | `npx skills add eze-is/web-access` | 会自己判断装到哪个智能体目录；README 写明 `npx skills update` 会先删掉整个技能目录 |
| Claude Code 插件 | `claude plugin marketplace add https://github.com/eze-is/web-access`，再 `claude plugin install web-access@web-access --scope user` | 用户级，所有项目都会加载 |
| 手动 clone 到用户目录 | `git clone https://github.com/eze-is/web-access ~/.claude/skills/web-access` | 同上，且跟随 main 分支而非固定版本 |

**WorkBuddy：** 把整个 `web-access` 文件夹复制到 `<工作空间>\.workbuddy\skills\web-access\`。WorkBuddy 的项目技能读 `.workbuddy/skills/`，不读 `.claude/skills/`。也可以用 WorkBuddy 技能市场的“上传技能包”。

**项目级＋规则文件加一道同意：** 技能放在项目级目录（工作空间选到这一层就能用），再在工作空间根目录的 `AGENTS.md`（Claude Code 用 `CLAUDE.md`）写一句：

```txt
读网页链接，先用 WorkBuddy 自带的网页读取。读不到正文就告诉我，我同意了再用 web-access。
```

这样默认用自带的网页读取，不用 web-access 也能做完任务。要更新版本时，替换整个文件夹为 v2.6.0。

### 5.5 SKILL.md 描述“接管联网任务”的影响

上游 SKILL.md 的 description（v2.4.3 与 v2.6.0 相同）第一句是：

```txt
所有联网操作必须通过此 skill 处理，包括：搜索、网页抓取、登录后操作、网络交互等。
```

Claude Code 和 WorkBuddy 都按 description 决定什么时候加载技能。这一句的后果：

- 装在哪一层，那一层里**任何**带“查、搜、看网页”的请求都可能先加载它。装在用户级 `~/.claude/skills/` 就影响你所有项目。
- 加载后 SKILL.md 第一步要求运行 `check-deps.mjs`。这个脚本在 Proxy 没运行时会**在后台启动 Proxy 并连接浏览器**。也就是说，你只想查一条 CPI 新闻，它也可能先去连你的 Chrome。浏览器没开远程调试时脚本报错退出，不会连上。
- 它和其他联网技能、MCP（Tavily、Playwright 等）抢任务，你看到的工具调用可能和预期不同。

处理办法（任选，前两条在 5.2 的提示词里已经包含）：

1. 装在项目级，不装用户级。
2. 改 description，例如改成“只有当我明确说‘用 web-access’时才使用此 skill”。改的是你本地的副本，升级时要重改。
3. Claude Code 可以在 SKILL.md 的 frontmatter（文件开头两行 `---` 之间的设置区）加一行 `disable-model-invocation: true`，模型就不会自动加载，只能你输入 `/web-access` 调用。WorkBuddy 用第 2 条。
4. 在 `AGENTS.md` 或 `CLAUDE.md` 里写“读不到再问我，我同意了再用 web-access”（见 5.4）。

### 5.6 怎样确认装好了

| 检查 | 期望结果 |
| --- | --- |
| `node --version` | `v22.x` 或更高 |
| 文件是否就位 | `.claude/skills/web-access/SKILL.md`（或 `.workbuddy/skills/web-access/SKILL.md`）存在，`version: "2.6.0"` |
| 客户端是否认出技能 | Claude Code 重开后输入 `/`，列表里有 `web-access`；或问它“你现在有哪些技能” |
| 浏览器层（开了远程调试之后才做） | 让智能体运行一次 `check-deps.mjs`，输出依次出现 `node: ok`、浏览器 `ok`、`proxy: ready`；浏览器弹授权框时你点允许 |

## 6. 使用教程：读人民银行最新 LPR 公告

选这个例子：公开信息、不需要登录，人民银行网站对直接请求常返回脚本校验页，静态层可能读不到正文，正好看两层怎么切换。

**第一步：只用静态层。** 粘贴：

```txt
用 web-access。找中国人民银行最近一期贷款市场报价利率（LPR）公告，先只用搜索和 curl，不要连接浏览器。
不要用 WebFetch 和 r.jina.ai（国内网络连不上）；装了 deepseek-web 技能的，可以用它的 search 和 fetch。
要求：
1. 给出公告标题、发布日期、1 年期和 5 年期以上 LPR 数值、公告原文链接（人民银行官网 pbc.gov.cn 的页面，不用新闻转载）。
2. 正文照原文摘录，不改写。
3. 存成 LPR_最新公告.md，开头写取得日期和来源链接。
4. 读不到官网原文就停下来告诉我读到了什么，不要换别的来源顶替。
```

deepseek-web 技能的装法见 [DeepSeek 搜索与读取](https://ai.lingnan.top/materials/2026-autumn/w07/tool-01-deepseek-web)。

预期看到的工具调用：WebSearch（或 deepseek-web 的 search）搜“LPR 公告 中国人民银行”→ `curl`（或 deepseek-web 的 fetch）读 pbc.gov.cn 页面。读到了就写文件；读不到会报告返回的是校验页或空壳，这时进入第二步。如果它仍去调 WebFetch 或 `r.jina.ai`，会失败或超时，提醒它按提示词换 curl。

**第二步（可选，需要已开远程调试）：允许用浏览器层。**

```txt
刚才读不到原文。这次允许你用 web-access 的浏览器模式：
1. 先运行前置检查，把它要求展示的提示原样给我看，等我回复“继续”。
2. 只在你自己新建的后台标签页里操作，不要动我已经打开的标签页，不要登录任何网站。
3. 只读这一个公告页，读完关闭你建的标签页。
4. 其余要求同上。
```

预期看到的工具调用：

```txt
node ".../scripts/check-deps.mjs"                         前置检查，必要时后台启动 Proxy
curl -s -X POST --data-raw '公告网址' http://localhost:3456/new      新建后台标签页
curl -s -X POST "http://localhost:3456/eval?target=ID" -d '...'     读页面正文
curl -s "http://localhost:3456/close?target=ID"                     关闭标签页
```

浏览器可能弹出“允许远程调试”的授权框，由你点允许。v2.4.3 的 `/new` 用 `?url=` 传网址，v2.6 改为 POST 传网址，两种写法都正常。

**产出：** `LPR_最新公告.md`。

**验收：**

1. 打开文件里的链接，确认是 pbc.gov.cn 的公告页，不是新闻网站。
2. 对照页面核对日期和两个数值。
3. 摘录文字与页面一致，没有被改写成摘要。
4. 浏览器里没有多出未关闭的标签页，你原来的标签页没被改动。

## 7. 常见问题与排错

| 现象 | 原因 | 处理 |
| --- | --- | --- |
| 只是让它搜个新闻，它却去运行 `check-deps.mjs` | description 写着“所有联网操作必须通过此 skill 处理” | 按 5.5 改 description 或加规则 |
| `node: warn (v18...)` 或 Proxy 报“Node.js 版本 < 22 且未安装 ws 模块” | Node 版本太低 | 去 nodejs.org 或 npmmirror 装 22 以上的 LTS 版，重开终端和客户端 |
| `chrome: not connected` | 浏览器没开、没勾远程调试开关，或开关勾了但没重启浏览器 | 打开浏览器，按 5.3 勾选并重启 |
| Windows 上只有 Edge，旧版报 `chrome: not connected` | v2.4.3 不认 Edge | 升到 v2.6.0，或改用 Chrome |
| `proxy: connecting...` 后提示“可能有授权弹窗”，然后超时 | 浏览器在等你点“允许” | 切到浏览器点允许；没看到弹窗就看任务栏里浏览器是否在闪 |
| v2.6 报“配置错误” | `config.env` 里 `WEB_ACCESS_BROWSER` 填的路径不对 | 填含 `Local State` 文件的那一层，例如 `%LOCALAPPDATA%\Google\Chrome\User Data`；旧值 `chrome`、`edge` 也可以 |
| v2.6 报 `EPERM` 或 `EACCES` | 系统不让读浏览器的端口文件（安全软件拦截常见） | 不是开关没开；按 README 在 `config.env` 用 `WEB_ACCESS_CDP_PORT` 指定端口，或让安全软件放行 |
| 按旧教程用 `--remote-debugging-port=9222` 启动后连不上 | v2.6 不再扫描固定端口；新版 Chrome 也限制在默认用户目录上用这个参数 | 改用 `chrome://inspect/#remote-debugging` 开关 |
| 端口 3456 被占用 | 已有一个 Proxy 在跑，或别的程序占了 | v2.6 运行 `node scripts/proxy-maintenance.mjs status` 查看；可设环境变量 `CDP_PROXY_PORT` 换端口 |
| Windows Git Bash 里报路径错误、`CLAUDE_SKILL_DIR` 未设置 | v2.4.3 以前的版本问题 | 用 v2.4.3 以上 |
| Jina 超时，`r.jina.ai` 没有返回 | 国内网络连不上 Jina | 不用 Jina；在提示词里写“不要用 r.jina.ai”，改用 curl 或 DeepSeek Fetch |
| Claude Code 的 WebFetch 报错或没有返回 | WebFetch 在国内网络下不可用 | 不用 WebFetch；在提示词里写“不要用 WebFetch”，改用 curl 或 DeepSeek Fetch |
| curl 读不到，返回 403 或空白 | 网站拦截直接请求 | 静态层读不到属正常，换浏览器层或改用 Playwright MCP；不要反复重试 |
| `git clone` 超时或很慢 | GitHub 国内访问慢、不稳定 | 重试一次；或从 Releases 页下载源码压缩包（见 5.4） |
| 开着 Clash 等代理软件时连接 localhost 失败 | 代理接管了本机地址 | 在代理软件里把 `localhost`、`127.0.0.1` 设为直连 |
| 页面提示“内容不存在” | 可能是访问方式被风控，不一定是真没有 | SKILL.md 自己也这样提醒；在浏览器里手动打开同一链接对照 |
| 小红书、微博弹验证或限流 | 平台检测自动化 | 停下，自己处理；不要让它继续批量操作 |
| 升级到 v2.6 后站点经验没了 | 用 `npx skills update` 升级会先删旧目录 | 升级前按 README 顶部的提示词或 `migration-2.6.md` 先备份 |

## 8. 费用、隐私与安全

### 8.1 费用

- web-access 本身免费（README 标 MIT）。
- 模型调用费用照常计入你的 DeepSeek 等套餐；浏览器层把网页内容读回来交给模型，长页面消耗的 token 不少。
- Jina 免费使用有 20 次／分钟限制（SKILL.md 原文）；通过 Jina 读网页，等于把网址交给第三方服务器去取。国内网络连不上 Jina，本课不用。

### 8.2 封号风险

- SKILL.md 规定操作前要展示一句须知：部分站点对浏览器自动化检测严格，存在账号封禁风险，内置防护无法完全避免，继续操作即视为接受。README 建议操作社交平台时使用小号。
- “内置防护”的一部分是：Proxy 在页面里拦截网页对本机调试端口的探测，让网站更难发现浏览器被自动化（`cdp-proxy.mjs` 里这段代码的注释写“反风控”）。这降低被发现的概率，不改变平台规则：多数平台的用户协议禁止自动化抓取，被识别时封的是你登录在这个浏览器里的号。
- 短时间密集开很多页面更容易触发风控（SKILL.md 原文）。

### 8.3 隐私：模型能触达你登录过的所有网站

- 浏览器层连上后，智能体执行的 JavaScript 可以读写任一标签页的页面内容、提交表单、上传本机文件（`/setFiles`）、截图。你登录着的邮箱、网银网页版、教务系统、微信网页版都在它能到的范围内。SKILL.md 要求它只在自己建的标签页操作，但这是写给模型的约束，不是技术隔离。
- 页面内容会作为上下文发给模型服务商（经 CC Switch 接的 DeepSeek 等）。别让它打开含个人信息、成绩、财务信息的页面。
- v2.5 起的 `find-url.mjs` 会读本地浏览器书签和历史记录。
- 站点经验文件可能记下 URL 和平台细节；分享工作空间或打包材料前检查 `references/site-patterns/`（v2.4.3）或 `~/.web-access/site-patterns/`（v2.6），不要把 `config.env` 和浏览器用户目录打进包里。
- Proxy 监听 `127.0.0.1:3456`，除维护用的 `/shutdown` 外各接口没有身份校验。Proxy 运行期间，本机任何程序都能通过它操作你的浏览器。Proxy 没有空闲自动退出，会一直运行到你停掉它。

### 8.4 用完怎样收回权限

1. 停 Proxy：v2.6 运行 `node "<技能目录>/scripts/proxy-maintenance.mjs" stop`；v2.4.3 在 macOS 运行 `pkill -f cdp-proxy.mjs`，Windows 在任务管理器结束对应的 `node.exe`。
2. 回到 `chrome://inspect/#remote-debugging`（或 `edge://inspect/#remote-debugging`）取消勾选。
3. 不用时把技能文件夹移出 `.claude/skills/` 或 `.workbuddy/skills/`。

### 8.5 截图与共享

浏览器层的截图存在你电脑的临时目录里，可能拍到你的账号名和页面内容，分享给别人前看一遍。录屏演示时用不登录任何账号的浏览器。

## 9. 与同类工具的一句对比

Playwright MCP 和 agent-browser 默认另开一个干净浏览器、风险局限在那个窗口；web-access 直接借你日常浏览器的登录态，能进的网站更多，出事时牵连的账号也更多；Claude in Chrome 等浏览器扩展同属“接日常浏览器”一类，它要 Anthropic 账号，且 Chrome 应用店国内连不上，本课不推荐。Windows 上要用浏览器扩展类工具时改装 Edge 扩展，Edge 加载项商店国内能打开。

相关说明：[DeepSeek 搜索与读取](https://ai.lingnan.top/materials/2026-autumn/w07/tool-01-deepseek-web)、[Playwright MCP](https://ai.lingnan.top/materials/2026-autumn/w07/tool-03-playwright-mcp)、[agent-browser](https://ai.lingnan.top/materials/2026-autumn/w07/tool-05-agent-browser)。

## 10. 参考链接

| 内容 | 链接 |
| --- | --- |
| 项目说明、安装方式、`config.env`、`EPERM` 处理、`proxy-maintenance.mjs`、使用小号的建议 | https://github.com/eze-is/web-access#readme |
| 两层结构、工具选择、Jina 限额、封号须知、站点经验、`find-url.mjs` | https://github.com/eze-is/web-access/blob/main/SKILL.md |
| v2.6.0、v2.5.2 发布说明（Edge 支持、数据目录迁移、不再扫描固定端口、iframe） | https://github.com/eze-is/web-access/releases |
| Proxy 源码（端口探测拦截、仅 `/shutdown` 校验请求来源） | https://github.com/eze-is/web-access/blob/main/scripts/cdp-proxy.mjs |
| Chrome 144 起的远程调试开关与授权弹窗 | https://developer.chrome.com/blog/chrome-devtools-mcp-debug-your-browser-session |
| Claude Code Skills 的 `disable-model-invocation` 字段 | https://code.claude.com/docs/en/skills |
