## 问题

Cloudflare 的托管质询（机器人防护）会阻止自动化 HTTP 请求 —— 包括来自 AI 代理的请求。如果你的网站使用默认设置部署在 Cloudflare 后面，代理将无法访问你的 API 端点、支付网关或发现文件。

agentgrade 会逐项探测检测此问题。当某项检查被阻止时，你将看到"Blocked by Cloudflare"而非通过/失败结果。你的评分可能偏低，不是因为缺少能力，而是因为 Cloudflare 阻止了验证。

## 什么会被阻止

Cloudflare 的质询会在以下请求条件下触发：
- 不执行 JavaScript（所有 API/代理请求）
- 缺少浏览器指纹（TLS、头部、Cookie）
- 来自云/数据中心 IP 范围

这意味着**每个面向代理的端点**都可能被阻止：[MCP](/kb/zh/mcp)、[OpenAPI](/kb/zh/openapi)、[llms.txt](/kb/zh/llms-txt)、x402.json、支付网关等。

## 如何修复

### 方案 1：对 API 路径绕过质询（推荐）

在 Cloudflare 的 WAF 规则中，创建一条规则，对面向代理的路径跳过托管质询：

**表达式：**
```
(http.request.uri.path matches "^/\\.well-known/.*" or
 http.request.uri.path matches "^/api/.*" or
 http.request.uri.path eq "/mcp" or
 http.request.uri.path eq "/openapi.json" or
 http.request.uri.path eq "/llms.txt" or
 http.request.uri.path eq "/agents.txt" or
 http.request.uri.path eq "/skills.json" or
 http.request.uri.path eq "/robots.txt")
```

**操作：** Skip → Managed Challenge

这样可以在 HTML 页面上保留机器人防护，同时允许代理访问面向机器的端点。

### 方案 2：将特定 User-Agent 加入白名单

创建一条 WAF 规则，对已知的代理 User-Agent 跳过质询：

```
(http.user_agent contains "agentgrade" or
 http.user_agent contains "Claude" or
 http.user_agent contains "GPTBot")
```

### 方案 3：使用 Cloudflare 的 Bot Management 层级

Cloudflare Enterprise 和 Business 计划提供更精细的机器人管理，能够区分"善意机器人"（API 客户端、代理）和恶意机器人。

## 验证修复

更新 Cloudflare 规则后，在 agentgrade 上重新扫描你的网站。之前被阻止的检查项现在应该显示通过/失败结果，而不是"Blocked by Cloudflare"。

## 相关

- [WebMCP](/kb/zh/webmcp)
- [SKILL.md](/kb/zh/skills)
- [A2A](/kb/zh/a2a)
