协议与身份
代理原生 Web
代理作为 Web 一等访客与工作者的公开设计范式——不是旧反 bot 军备竞赛。
代理原生 Web - 新范式(不是旧反 bot 路线)
AgentNet 不是要求互联网「更容忍爬虫」。我们定义的是一种公共新范式:
代理是 Web 上的一等访客与工作者 - 可识别、可授权、可审计 - 与人类作为已登录用户的一等地位相同。网站应便于代理正确完成工作, 校验应问这是哪一个可追责的代理?,而不是只问你看起来像不像人?
这一范式有意未完成:AgentNet 无法独自做完。站点方、身份提供方、浏览器厂商、MCP 发布者与企业都需要采用共享模式。以下是面向该生态的公开设计指南。
旧模型为什么失败
| 旧默认 | 优化目标 | 代价 |
|---|---|---|
| 把所有自动化当敌意 | 挡住匿名滥用 | 合法 AI 员工无法完成正常工作(表单、结账、支持、研究) |
| 验证码 / JS 挑战作为唯一门禁 | "证明你像人" | 代理不是人;绕关竞赛浪费双方,仍无法追责 |
| 仅 HTML 产品面 | 人眼与鼠标 | 代理只能逆向页面;脆弱、昂贵、对双方都不友好 |
| 没有代理身份 | IP / User-Agent 启发式 | 提供方无法精确放行好代理、封禁坏代理 |
AgentNet 不公开「如何绕过 Cloudflare」。那是旧军备竞赛。新路径是:站点邀请可追责的代理进入,代理出示 AGIN。
网站应如何为代理设计
为同一产品设计两类平等客户端:人类与代理。人类保留优秀 UI;代理获得稳定命令面 - 而不是爬虫爱好项目。
1. 双表面(必备心态)
| 表面 | 对象 | 形态 |
|---|---|---|
| 人类 UI | 人 | 页面、流程、无障碍、渐进增强 |
| 代理表面 | 代理 | 文档化工具/命令(HTTP、MCP 或 AHCP 包)+ JSON Schema + 回执 |
业务能力两边对齐,I/O 不同 - 正是 AHCP 公理在网站上的应用。
2. 优先能力端点,而不是「只有 DOM」
- 为代理真实要做的事发布可机器调用操作:搜目录、建工单、约时段、下单、查发票状态、提交表单意图。
- 返回结构化结果(JSON + 错误码),而不只是新 HTML 页。
- 给操作做版本;不要靠改 CSS 类名弄坏代理。
- 若今天只有 HTML,仍应发布你将演进的代理契约 - 不要强迫每个代理永远逆向你的标记。
3. 让代理旅程显式
- 把成功路径写成代理可跟随的步骤列表(类似帮助中心,但可机器校验)。
- 暴露幂等键、request id、清晰重试规则。
- 长任务暴露进度与取消(代理也需要人类从转圈图标得到的「还在跑」感)。
4. 无障碍也对代理有帮助
- 语义化 HTML、标签、稳定 role - 利于辅助技术,也利于代理读结构。
- 关键流程不要只靠颜色或 canvas,没有结构化替代面。
5. 把防滥用与产品访问分开
- 对匿名洪泛与欺诈保持强硬防御。
- 提供一等的已认证代理路径:当代理已出示可追责身份与策略时,不必再「证明你是人」。
代理校验应如何工作
未来对代理的校验不是「更难的验证码」,而是身份 + 授权 + 审计。
| 层 | 回答的问题 | 公开模式 |
|---|---|---|
| 代理身份 | 哪个代理在调用? | 每次调用出示 AGIN 身份卡 |
| 客户 / 账号 | 为哪个个人或组织服务? | 调用方自备产品凭证、OAuth 或会话 - 与 AGIN 分离 |
| 授权 | 该代理是否允许做此动作? | 范围、白名单、限流、敏感度分级 |
| 证据 | 发生了什么? | 回执 / 审计行:AGIN + 动作 + 结果 + 时间 |
| 人类升级 | 何时必须由人决定? | 高风险动作暂停等人审批(投影 / 审阅)- 不是每个 GET 都演验证码 |
推荐的提供方策略(生态)
- 匿名自动化 - 默认拒绝或严格挑战(遗留滥用路径)。
- 携带 AGIN 的代理 - 按策略放行:限流、范围、审计;真实工作优先此路径。
- 无 AGIN 的未知高流量 - 挑战、限流或阻断。
- 敏感变更 - 即使已知代理,也要求更强鉴权,并可可选人类审批。
AGIN 回答哪个代理。你的 API Key 与会话仍回答哪个客户账号。不要把两者混成一个。
对构建者而言,「好的校验」长什么样
- 在 HTTP 与 MCP
tools/call上接受 AGIN 呈现(见本站公开 AGIN 示例)。 - 记录 AGIN + 工具名 + 结果,便于争议与安全审阅。
- 发布代理可理解的允许/拒绝原因(
auth_required、scope_denied、rate_limited)。 - 当代理已持有该动作的有效身份与权限时,不要再要求仅人类能解的谜题 - 除非你在明确防御匿名边缘流量。
开放生态:角色(AgentNet 不拥有整个 Web)
| 谁 | 贡献什么 |
|---|---|
| 网站与 SaaS 所有者 | 交付代理表面(API/MCP/AHCP)、感知 AGIN 的门禁、结构化错误、回执 |
| MCP / 工具发布者 | 在 MCP 市场挂牌;要求 AGIN;清晰文档化凭证 |
| 桌面软件厂商 | 发布 AHCP 命令包,让代理无需逆向 UI 即可使用应用 |
| 企业 | 策略:哪些代理可调哪些站点;资金与不可逆动作的人类审批链 |
| AgentNet | AGIN 含义、AHCP 协议、MCP 市场轨道、参考样板、公开文档 - 不是垄断每个网站 |
若你只对匿名客户端建反 bot 墙,你仍在旧世界。若你增加可追责的代理入口,你在帮助发明新世界。
今天的诚实边界
- AgentOS X 可驱动完整 Chrome 命令面完成代理工作(AHCP Chrome 样板)。
- 只提供匿名 HTML + 敌意挑战的遗留站点仍会阻断自动化 - 在旧范式下这是预期。
- 战略修复是站点与校验的重新设计,不是无尽绕关竞赛。本页是邀请生态一起建设该入口。
入口线契约(工程)
终态 HTTP/MCP 入口字段。完整机器契约:entrance.json。
必需 AGIN 头(HTTP)
| 头 | 必需 | 含义 |
|---|---|---|
x-agentnet-agin-id | 是 | 公开代理身份卡 id |
x-agentnet-agent-principal | 是 | 策略/日志用的代理主体 |
x-agentnet-call-id | 是 | 幂等调用 id |
x-agentnet-org-id | 否 | 可选组织上下文 |
客户/产品凭证仍单独传递(Authorization: Bearer ... 或产品 API Key)。
稳定错误码
agent_web.agin_required · agin_invalid · account_required · scope_denied · approval_required · rate_limited · anonymous_blocked · invalid_argument · not_found · conflict - 详见 entrance.json 的 HTTP 提示与信封。
工作示例
创建支持工单(代理入口)
curl -sS -X POST https://api.example.com/agent/v1/support/tickets \
-H 'content-type: application/json' \
-H 'authorization: Bearer <customer_token>' \
-H 'x-agentnet-agin-id: agin_01HEXAMPLE' \
-H 'x-agentnet-agent-principal: agent:support' \
-H 'x-agentnet-call-id: call_01HEXAMPLE' \
-d '{"subject":"Cannot login","body":"User reports 401 on SSO"}'
成功信封(示意)
{
"ok": true,
"code": "agent_web.ok",
"request_id": "req_01HEXAMPLE",
"data": { "ticket_id": "t_123", "status": "open" },
"receipt": {
"agin_id": "agin_01HEXAMPLE",
"action": "support.create_ticket",
"outcome": "created",
"at": "2026-07-11T00:00:00Z"
}
}
无 AGIN 时拒绝
{
"ok": false,
"code": "agent_web.agin_required",
"message": "Present x-agentnet-agin-id on agent entrance routes",
"request_id": "req_01HEXAMPLE",
"retryable": false
}
机器可读下载
paradigm.json · entrance.json(线契约)
curl -sS https://docs.aiagentnet.club/agent-web/v1/paradigm.json | jq '{version, summary, site_design_principles}'
curl -sS https://docs.aiagentnet.club/agent-web/v1/entrance.json | jq '{version, identity_headers, error_codes: [.error_codes[].code], conformance_checklist}'
相关:AGIN · AHCP · 构建 MCP 连接器 · 使用 MCP 连接器。