Mixpanel 是一个产品分析平台。团队用它来看哪些功能被采用、用户在哪个漏斗步骤流失,以及谁会在下周回来。它非常擅长这项工作,而且对于许多产品团队来说,它是回答用户行为问题的地方。
如今,一个新问题已经出现在旁边。你产品中的一些事件不再只是由人点击产生。它们来自代表真实客户行动的 AI agent,来自与 AI 助手协作的人,以及来自你暂时还无法解释的自动化。在你读取漏斗之前,你越来越需要知道是谁或什么生成了其中的事件,而你的应用也需要在当下知道同样的信息,以便做出响应。这就是 AgentCredia 的 Proof of Actor 所要解决的问题。
本页会公平地比较两者。下面关于 Mixpanel 的事实来自其截至 2026 年 11 月的官方文档。
简要结论
| Mixpanel | Proof of Actor | |
|---|---|---|
| 核心问题 | 用户如何采用、转化和留存? | 这次交互中是谁或什么在行动,证据是什么? |
| 收集位置 | 客户端和服务端 SDK 以及摄取 API; 在可行时,Mixpanel 建议优先使用 server-side tracking | 服务端中间件、edge、HTTP API、MCP servers,以及一个已批准的浏览器采集器 |
| agent 和 bot 标签 | $mp_actor_type 为 agent、bot 或 none,根据 user agent 分类 |
Human、Human + AI、Agent 或 Unknown,并带有明确 basis |
| 已验证的 agent 身份 | Mixpanel 的 bot 流量文档中未描述 | 当请求签名与已发布的 key 验证通过时,为 Verified basis |
| AI 辅助的人 | 未作为单独类别描述 | 一等结果: Human + AI |
| 不明确的流量 | 当 user agent 不匹配任何 agent 或 bot 时标记为 none | 记录为 Unknown,并由你选择回退方式 |
| 是否对流量执行动作 | 否,它只分析事件 | 在观察之后,按你的策略由你自己的代码逐 route 路由 |
本页其余部分会解释每一行。
Mixpanel 的事件模型是为此而生的
Mixpanel 围绕事件及其附加属性构建。你会给诸如注册、创建项目或邀请同事这样的动作埋点,添加 plan 或 platform 等属性,然后按这些属性拆分事件来构建漏斗、留存曲线、流、和 cohort。在 Mixpanel 中,所有分析问题最终都会变成: 哪些事件发生了,发生在谁身上,以及带着哪些属性值。
这正是 actor 上下文如此适合放入其中的原因。actor 标签只是另一个属性,一旦它进入你的事件,所有漏斗和留存图表都可以按它拆分。Mixpanel 已经通过自己的 actor 标记朝这个方向前进。真正的问题是,这个属性的依据是什么,以及当请求仍在处理时,你的应用是否能使用同样的答案。
Proof of Actor 在请求路径中生成这个答案。每次交互都会得到四个类别之一: 当信号表明是人时为 Human,当有人在已声明或通过受支持集成观察到的 AI 辅助下行动时为 Human + AI,当是自动化或 agent 来源的交互时为 Agent,当证据不足以做出可靠判断时为 Unknown。每个结果都会说明其 evidence basis: Verified、Declared、Inferred 或 Unknown,这会把这个属性从一个标签变成一个带有明确强度的标签。
它们各自运行在什么位置
Mixpanel 同时提供客户端和服务端跟踪。其关于 选择跟踪方式 的文档建议尽可能从服务器侧进行跟踪,并在必要时补充客户端跟踪,同时指出客户端跟踪会受到广告拦截器影响。
Proof of Actor 也运行在服务端,但位置不同。它位于你应用的请求路径中: Node.js middleware、Next.js、你控制的 edge 层、通用 HTTP API 或你的 MCP server,并可在已批准页面上使用可选的浏览器采集器。这样它就能在请求发生的当下看到信号,例如客户端是否提供了签名、客户端是否自声明,以及你自己的助手是否执行了该动作。完整列表见 integrations 页面。
Mixpanel 如何处理 bot 和 AI agent
Mixpanel 在这里已经提供了实质支持,这一点值得肯定。根据其 bot 流量文档:
- Mixpanel JavaScript 库默认会过滤一小部分已知爬虫,包括 Googlebot 和 Bingbot。
- 任何设置了
$ignore属性的事件都会在摄取时被丢弃,因此你可以编写自己的过滤逻辑。 - Mixpanel 的摄取 API 会对每个事件的 user agent 进行分类,并将
$mp_actor_type(Actor Type) 设置为agent,用于代表某个 LLM 代替人类用户发出的请求,设置为bot,用于诸如爬虫和搜索索引器之类的通用自动化流量,或者在两者都不适用时设置为none。当类型为agent或bot时,$mp_actor_name(Actor Name) 会保存被分类出的身份,例如 GPTBot 或 ClaudeBot。 - 在 server-side tracking 中,分类使用的是到达 Mixpanel 的请求所携带的 user agent,也就是你服务器的 HTTP 库所报告的值,除非你转发终端用户的 user agent,例如在
$mp_raw_user_agent中。Mixpanel 指出,否则分类可能不准确。 - Mixpanel 中的事件是不可变的,因此已经记录的 bot 事件会通过在分析中将其过滤掉来处理,而不是删除它们。
这是一个有用的报表标签。它同样也是, 按设计, 一个从 user agent 字符串派生出来的标签。user agent 字符串是自报的,而且很容易伪造,这个问题在 user agent spoofing 条目中有说明。而且这份文档并未描述一个专门针对与 AI 协作的人类的类别,也没有描述一种方法来说明证据太弱,无法下结论。
$mp_actor_type 与 Proof of Actor 类别,并列比较
因为这两种结果都可以放在同一个 Mixpanel 事件上,所以看看它们如何对应会很有帮助:
$mp_actor_type |
它的依据是什么 | Proof of Actor 类别可以补充什么 |
|---|---|---|
agent |
代表用户执行的 LLM 的 user agent 匹配 | 当请求携带有效签名时为带 Verified basis 的 Agent,否则为 Declared 或 Inferred basis |
bot |
爬虫和索引器的 user agent 匹配 | 当证据足够支持时为 Agent,或者当只有爬虫式 user agent 而没有其他支撑时为 Unknown |
none |
在 user agent 中既没有 agent 也没有 bot 的匹配 | Human、Human + AI 或 Unknown,因此接受辅助的人和无法解释的流量不会都躲在同一个桶里 |
主要差异来自每个答案的生成位置。
超越 user agent 字符串的证据。 $mp_actor_type 来自 user agent,而 user agent 是自报的,并且很容易伪造,正如 user agent spoofing 条目所解释的那样。一个经过验证的 Proof of Actor 结果意味着请求签名已经使用 HTTP Message Signatures 按 RFC 9421 的定义并由 Web Bot Auth 使用的方式,对照已发布的 key 完成检查。
为 AI 辅助的人提供一个类别。 在 $mp_actor_type 下,使用助手撰写内容的人会和其他所有用户一起落入 none。当辅助是通过受支持集成被声明或被观察到时,Proof of Actor 会报告 Human + AI,因此 Mixpanel 漏斗可以显示 AI 辅助用户是否更快激活,或是否在不同位置停滞。
Unknown 而不是 none。 none 表示没有找到匹配项。Unknown 表示证据不足以作出结论,这是一个不同且更有用的陈述。你可以按 route 跟踪 Unknown 比例,而关于 handling Unknown traffic 的指南会介绍回退模式。
从未经过你的跟踪系统的事件。 agent 往往会调用 API 和 MCP servers,而不是通过 UI 点击。Proof of Actor 会在这些交互发生的地方对它们进行分类,包括 MCP tool calls; 参见 MCP servers use case。
在请求时做出决定。 Mixpanel 事件是不可变的,并且在事后分析,这对分析来说是正确的。Proof of Actor 还允许你的应用针对每个 route、类别和 basis 执行 allow、adapt、challenge、send to review 或 rate-limit。它从 observation mode 开始,因此在你选择 enforce 之前,任何事情都不会改变。
将 Mixpanel 与 Proof of Actor 一起使用
- 在请求时分类。 Proof of Actor 会为你应用、API 或 MCP server 中的每次交互返回一个 class 和 basis。
- 添加两个事件属性。 将 class 和 basis 作为属性附加到你已经发送的 Mixpanel 事件上,例如命名为
actor_class和actor_basis。由于应用持有结果,server-side tracking 会让这件事变得很简单。 - 也保留
$mp_actor_type。 转发终端用户的 user agent,使 Mixpanel 自己的标签保持准确,并比较这两个属性。当它们不一致时,Proof of Actor 的 basis 会告诉你应信任哪种证据。 - 按你已经在使用的报表拆分。 按 actor class 拆分漏斗、留存和流,以查看由 agent 驱动的注册是否像人类注册一样留存,或 AI 辅助用户是否更早达到激活。 SaaS apps use case 展示了这在何处最重要。
- 在重要的地方采取行动。 为 actor class 应该改变体验的 route 编写策略。关于 rolling out actor-aware policies safely 的指南介绍了这一过程。
何时选择哪一个
当你的问题是产品行为时,选择 Mixpanel: 激活、转化、留存、功能采用,以及用户走过的路径。它的 $mp_actor_type 标签是将分析中的 agent 和 bot 初步分开的好方法。
当你需要这个标签带有证据、当 AI 辅助用户对你的产品很重要、当你的大部分 agent 流量通过 API 或 MCP servers 到达,或者当你的应用需要在请求时而不是在报表中做出响应时,就添加 Proof of Actor。Mixpanel 告诉你产品是如何被使用的。Proof of Actor 告诉你每次交互中是谁在使用它,并给出证据,同时让你的代码能够据此行动。
开始使用
Proof of Actor 目前处于 private beta。通过 founding developer program,被选中的团队可在约定的使用限制内获得最长 12 个月的免费访问权限,且不会自动计费。申请 early access,并告诉我们你的产品以及你想要了解的交互。
Mixpanel 是 Mixpanel, Inc. 的商标。