跳转到主要内容
对比

Proof of Actor 与 CAPTCHA: 停止对所有人做测试,开始了解是谁在执行操作

CAPTCHA 是为由人和恶意机器人构成的网络而设计的。如今,你的用户包括与 AI 协作的人,以及代表真实客户执行操作的代理。下面说明挑战机制与 actor intelligence 有何不同,以及它们各自适合在你的应用中出现的时机。

Toshendra Sharma

作者 Toshendra Sharma创始人兼 CEO,AgentCredia · Updated November 13, 2026

CAPTCHA 的思路很简单: 在访客面前放一个人类能完成、机器不能完成的任务,然后让通过的人进入。多年来,这是一种合理的交换。人们多花几秒钟,而最糟糕的自动化会被拖慢。

但有三件事改变了这一点。机器已经能很好地完成这些任务。人们也开始厌倦反复作答。而一种新的访客出现了: 代表真实客户行动的 AI 代理,以及 与 AI 助手协作的人。一个问“你是人类吗?”的测试,对这两类对象都没有好答案。

Proof of Actor 采用了不同的方法。它不再对每个访客进行测试,而是告诉你的应用是谁或什么在执行操作,并提供结论背后的证据,然后让你的代码决定是否真的需要挑战。

简要说明

CAPTCHA Proof of Actor
核心问题 这个访客能通过人类测试吗? 是谁或什么在执行操作,以及证据是什么?
谁承担成本 每个看到挑战的访客 没有人;分类在后台完成
可能的答案 通过或失败 Human、Human + AI、Agent 或 Unknown,外加 basis
合法的 AI 代理 被阻止,或被迫绕过测试 被识别,并路由到正确的体验
使用 AI 助手的人 作为普通访客对待 一个独立的类别,Human + AI
不明确的流量 必须通过同样的测试 Unknown,并使用你按 route 选择的 fallback
适用范围 你放置它的页面 你的集成覆盖的每一条 route
安装后的默认行为 可见的 challenge observation;在你添加 policy 之前不会发生变化

测试与证据

CAPTCHA 只能产生一位信息: 访客通过或未通过。它不会告诉你访客是谁、是否在与助手协作,也不会告诉你应当对结果有多大把握。而且它是通过要求访客付出劳动来生成这位信息的。

Proof of Actor 会生成一个分类及其 evidence basis。Verified 结果表示某个可验证的断言已被校验,例如请求签名与公开密钥的匹配。Declared 结果表示客户端或你自己的应用已声明该信息。Inferred 结果会被标注为推断。Unknown 表示证据不足以做出判断。你的团队可以读取每个结果并查看其依据,而访客不必做任何事。

对每个人都进行挑战的代价

每一次 challenge,都是加在你的优质用户身上的摩擦,目的是拖慢最糟糕的那部分用户。在注册页上,它会降低转化率。在结账页上,它会带来收入损失。在可访问性层面,它甚至可能把人完全挡在外面。团队之所以接受这种代价,只是因为他们没有更好的信号来判断另一端是谁。

有了 actor 上下文,权衡就变了。你可以让普通的人类会话保持原有体验,在证据充分的地方跳过 challenge,并把它保留给仍然有价值的狭窄场景: 例如,高影响操作中的 Unknown 结果,比如修改密码或高价值操作。大多数访客不会再看到 challenge。

合法代理需要的是路径,而不是谜题

CAPTCHA 的设计初衷是阻止软件。当几乎所有访问你页面的软件都不受欢迎时,这种设计是合理的。现在已经不是这样了。

如今,助手可能会为客户对比你的方案,代理可能会通过你的应用安排会议,而 AI 客户端可能会调用你的 MCP server 来完成任务。阻止它们,就等于阻止你的客户。强迫它们通过为人类设计的页面和谜题,会让自动化系统变得脆弱,只要页面重新设计就会出错。

Proof of Actor 能识别代理,对于带签名的请求,它还可以验证背后使用的是哪把密钥和哪个操作方。随后,你的应用就可以做比 challenge 更好的事: 提供结构化 API、提供更适合代理的流程,或者应用一个适合自动化负载的 rate limit。关于如何向 AI 代理提供结构化内容 的指南展示了具体做法。

已验证的身份不等于授权。有效签名只能告诉你是哪把密钥签署了请求; 该代理是否可以执行某个操作,取决于你的授权决策。Proof of Actor 会把这两个问题分开处理。

与 AI 协作的人仍然是你的用户

一个人用助手起草支持消息,或者在 AI 帮助下填写表单,仍然是客户。人类测试无法给他们提供任何有用信息: 他们要么通过,要么因为行为看起来异常而被拦下。

Proof of Actor 会给他们一个独立的类别,Human + AI,当辅助是被声明的,或通过受支持的集成可以观察到时就会报告该类别。这样,你可以把 AI 起草的提交标记给合适的团队,研究使用辅助的用户如何在产品中流转,并保持他们的体验顺畅。更多内容请参阅 AI 辅助交互 词条。

有意识地处理不确定情况

总会有一些流量无法明确判断。CAPTCHA 对所有这些情况都一视同仁: 每个人都要做测试。

Proof of Actor 会将 Unknown 作为一级结果返回,既不会默认当作人类,也不会默认当作恶意流量。你可以按 route、按风险选择 fallback:

  • 公共页面和文档: allow,并保持标准体验。
  • 注册和联系表单: allow,并保留你常用的滥用控制。
  • 账户变更: 保留你现有的 re-authentication 流程。
  • 高影响操作: route 到 review,或者如果你仍然需要,可以在这里使用 challenge。

这正是 challenge 仍然有其价值的地方: 作为某条敏感 route 上的一种明确 policy 结果,而不是对每个访客都收取通行费。

决策发生在哪里

CAPTCHA widget 在显示的那一刻决定结果,只在你放置它的页面上生效,而且只生效一次。

使用 Proof of Actor 时,由你的应用决定,适用于你的集成覆盖的每一条 route: server middleware、Next.js、edge、受支持的浏览器集成、通用 HTTP API 或你的 MCP server。policy 会同时使用 actor class 和 basis: allow、adapt、challenge、review 或 rate-limit。它们存在于你的代码中,与其余业务逻辑放在一起,你可以在不重新设计页面的情况下修改它们。

推出过程

Proof of Actor 从 observation mode 开始。安装后不会改变用户看到的任何内容。摆脱全量 challenge 的合理路径如下:

  1. Observe. 保持现有 challenge 不变,同时添加 Proof of Actor。观察每条 route 上的 actor 组成和 Unknown 比例。
  2. Compare. 对每条使用 challenge 的 route,查看有多少 challenge 命中了人类会话、AI 辅助用户和经过验证的代理。
  3. Preview. 编写一条 policy,在证据充分时跳过 challenge,并在敏感操作的 Unknown 情况下保留它。预览它对真实流量的影响。
  4. Enforce. 一次只在一条 route 上启用该 policy,并配备文档化的 fallback 和回滚开关。

关于安全推出具备 actor 感知能力的 policy 的指南对每一步都有详细说明。

什么时候 CAPTCHA 仍然有意义

在少数场景中,challenge 仍然是有用的工具: 某个敏感操作突然出现一波不明确的流量、表单正遭受持续滥用,或者某条 route 你暂时还没有其他信号。Proof of Actor 并不是要你把这个工具扔掉,而是给你上下文,让你只在它真正有帮助的地方使用它。

开始使用

Proof of Actor 目前处于 private beta。经过筛选的 founding developer 团队可在约定的使用限制内获得最长 12 个月的免费使用权限,并得到构建团队的直接支持。请申请 early access,并告诉我们你现在在哪些 route 上使用 challenge。

面向开发者

What your code receives

Every interaction resolves to one result record. Your application reads the class and the basis and applies its own policy.

Result record
{
  "route": "GET /api/v1/catalog",
  "class": "agent",
  "basis": "verified",
  "evidence": [
    { "signal": "http_message_signature", "result": "valid", "keyid": "assistant.example" },
    { "signal": "client_declaration", "value": "assistant.example" }
  ],
  "observed_at": "2026-11-13T10:42:07Z"
}
class
Human、Human + AI、Agent 或 Unknown。
basis
证据有多强:Verified、Declared、Inferred 或 Unknown。
evidence
结果背后的信号,让您的团队看清原因。

从观察模式开始: 将结果记录在日志旁边,在您选择 policy 之前不做任何更改。 阅读 Node.js 集成指南

常见问题

Proof of Actor 会取代 CAPTCHA 吗?

它取代的是对所有人都进行挑战的做法。Proof of Actor 会先为你的应用提供 actor 上下文,这样你就可以只在仍有价值的路由和结果上保留挑战,例如高影响操作中的 Unknown 结果。

Proof of Actor 是 CAPTCHA 吗?

不是。它不会在任何人面前放谜题或测试。它会报告 actor 证据和分类,并把响应留给你的应用。

CAPTCHA 会如何影响合法的 AI 代理?

为人类设计的挑战会阻止它们,或者迫使它们绕过挑战。使用 Proof of Actor 时,经过验证的代理可以被路由到结构化 API 或更适合代理的流程。

我还能对某些流量进行挑战吗?

可以。challenge 是你可以按路由、actor class 和 basis 选择的 policy 结果之一。大多数团队只会在证据较弱的敏感操作中保留它。

安装 Proof of Actor 会改变用户看到的内容吗?

不会。它从 observation mode 开始。在你为某条 route 启用 policy 之前,任何内容都不会改变。

了解谁在使用您的 app。

面向少数 founding developers 的私有 beta。

想先聊聊? 联系创始人