# Claude Code 网页测试指南：评估 AI Agent 内容提取

作者：Schnalz.net · 2026年11月8日

https://schnalz.net/zh-CN/ai-guides/claude-code-how-to-test-web-pages-for-ai-agents

> 使用 Claude Code 测试网页可以明确揭示 AI Agent 从网站变动中提取了哪些数据。团队在隔离的 Docker 容器中运行 Prompt，并借助正向代理在生产页面与预览部署之间路由请求。

## 重点

- Docker 容器与正向代理确保不同页面变体在 Claude Code 测试中环境完全一致。
- WebFetch 评估页面内容时，请求 Markdown 镜像的优先级高于标准 HTML。
- 在 Claude 输出回答前，次级模型会按照严格的引用字数限制处理抓取到的内容。
- 多次迭代运行能够平衡 Claude Code 输出结果的非确定性。

## 什么是 Claude Code 网页测试工作流？

Claude Code 测试工作流允许工程和营销团队观察自主 Agent 如何读取与解析网页。Zapier 开发了名为 Agent Arm Runner 的框架，用于测试网站改动效果，无需等待传统搜索引擎长达数周的反馈周期。

> **完成后**：运行该测试体系能够揭示：对生产站点的修改、Markdown 备用版本或中介模型指令，是否会改变 Claude Code 向用户呈现的报告内容。

**Claude Code 测试体系概览**

- **主模型**：Opus 5
- **WebFetch 解析模型**：Haiku 4.5
- **隔离方式**：Docker container
- **流量路由**：Forward proxy
- **测试配置文件**：JSON configuration
- **优先内容请求头**：text/markdown

## 如何使用 Claude Code 测试网页

使用 Claude Code 测试网页需要运行对照实验，在保持 Prompt 和网址完全一致的前提下隔离页面内容。Zapier 使用以下分步配置来评估模型回复在各实验页面变体之间的差异。

1. 将 Claude Code 打包在配置了正向代理的 Docker 容器中，以监控并管理所有出站请求。
2. 编写 JSON 配置文件，指定要执行的 Prompt、待测试的实验分组以及所需的重复次数。
3. 通过正向代理将对照组直接路由到生产网站路径。
4. 配置代理以拦截变体运行中对测试路径的请求，并将其重定向至预览部署环境。
5. 在每个实验分组中，为 Claude Code 提供完全一致的用户 Prompt 和生产环境 URL。
6. 在全新的 Docker 容器中启动每次测试迭代，确保不同次运行之间不会残留会话状态。
7. 多次重复运行每个实验分组，以平衡 Claude Code 具有的非确定性输出特征。

## Claude Code 如何检索并过滤网页内容

Claude Code 在浏览网络时，并不会直接将原始 HTML 扔给主对话模型。Zapier 发现其内部的 WebFetch 工具使用请求头 accept: text/markdown, text/html, */*，优先获取 Markdown 替代版本而非 HTML。

一旦 WebFetch 抓取到页面，Claude Code 会将原始文本转发给次级模型，而非主推理引擎。在以 Opus 5 作为调用模型的测试中，Zapier 观察到抓取到的内容被传递给 Haiku 4.5 处理，且未附加任何外部工具。

**Claude Code 网页检索流程的核心组件**

| 阶段 | 组件 | 在工作流中的功能 |
| --- | --- | --- |
| 任务执行 | Opus 5 | 作为顶层调用模型，负责触发工具并输出回答 |
| 页面检索 | WebFetch | 抓取网络数据，优先处理 text/markdown，其次为 text/html |
| 内容解析 | Haiku 4.5 | 在严格的长度与引用限制下提炼已抓取的页面内容 |

## 为 Claude Code 测试页面时的技巧与避坑指南

评估页面在 Claude Code 中的曝光情况时，必须充分考虑后台模型在回答提问前对内容的二次加工。忽视备用文本格式或过滤指令，可能会导致在 Agent 测试中得出错误结论。

> **提示**：在测试文档中插入独一无二的金丝雀（canary）注释代码。如果该金丝雀代码出现在 Claude Code 的输出中，便能明确确认该工具检索到的具体页面版本。

> **小心**：若你的域名提供 Markdown 镜像版本，仅修改 HTML 是远远不够的。Claude Code 会优先解析 Markdown 格式，未同步修改的 Markdown 文件将导致 HTML 更改完全被跳过。

Zapier 发现中介模型 Haiku 4.5 的请求处理流程对源文本执行严格限制。包括直接引用限制在最多 125 个字符以内、原样引用必须加引号，且严禁直接复写歌词内容。

## 常见问题

### Claude Code 如何抓取网页内容？

Claude Code 通过名为 WebFetch 的内置工具抓取外部网页。WebFetch 发送的请求头中 text/markdown 优先于 text/html，如果服务器提供了 Markdown 镜像，则优先消费该版本。

### Claude Code 内部由哪个模型负责解析网页？

Zapier 发现，虽然 Opus 5 充当顶层调用模型，但 WebFetch 会将检索到的网页文本交给 Haiku 4.5。该次级 Haiku 模型会在其特定的系统指令下处理文本，然后再将数据返回给 Opus 5。

### 为什么针对 Claude Code 的测试必须在全新 Docker 容器中运行？

在全新 Docker 容器中运行 Claude Code 可以防止残留会话数据和缓存状态对后续实验产生干扰。这确保了输出回答的变化仅仅源于不同测试页面之间的实质差异。

### Claude Code 对网页文本有哪些引用限制？

Claude Code 内部的 Haiku 4.5 解析步骤对直接源文本引用实施严格的 125 字符上限。引号之外的任何表述都必须进行改写释义，不能逐字照抄。

### 如何在不更改生产 URL 的情况下使用 Claude Code 测试不同页面变体？

团队可以在 Docker 中将 Claude Code 与具备拦截功能的正向代理搭配使用。该代理在对照组中正常访问生产站点，而在变体测试运行时悄悄将请求转发至预览部署环境，同时保持目标 URL 完全不变。

## 资料来源

- [zapier.com：What We Learned by Watching Claude Read Zapier.com](https://zapier.com/blog/what-we-learned-watching-claude-read-zapier/)
