← 博客

怎么给社交媒体 Agent 做基准测试

浏览器 Agent 的演示视频,通常会选一次顺利跑完的结果。拿它看产品没问题,但拿它证明性能还不够。

社交平台在 Agent 操作时一直会变:登录验证可能突然出现,搜索可能返回空结果,视频能打开但评论区不一定能读到。同一个任务再跑一次,浏览器步骤也可能不一样。

如果把这些运行删掉,测到的不是系统性能,而是运气。

我们在 Jev Social v0.1.8 里加入了一套可复现的基准测试流程。现在发布的是方法和工具,不是真实速度榜单。下面说清楚这套流程为什么这样设计。

一次跑得快,不等于基准结果

Jev Social 仓库里已经有几次可以复核的本地记录:

  • 一次 Instagram 调研用了 63.969 秒,保留了 4 条带来源的记录;
  • 一次 TikTok CLI 搜索用了 7.570 秒,返回 5 个公开结果链接;
  • 一次 TikTok 详情操作用了 38.263 秒,成功下载 MP4 和封面,但评论没有拿到。

这些数字只描述当时那一次运行。它们的任务和边界不同,不能混在一起算平均值,也不能证明日常速度、长尾耗时或成功率。

真正的基准测试,要先固定任务、软件版本、浏览器设置、区域标签和冷热状态,再重复运行。

要测完整调研链路

模型响应速度只是社交调研的一小段。用户实际等待的是完整过程:选择下一步、在浏览器里执行、拿回证据,最后得到可用结果。

Jev Social 会分开记录:

指标 它回答什么问题
端到端耗时 这次已经开始的调研一共用了多久?
Jev 决策耗时 路由和选择操作用了多久?
socai / 浏览器耗时 打开和读取真实平台用了多久?
媒体操作耗时 请求 TikTok 媒体的操作用了多久?
帖子和评论数量 最后留下了多少可复核证据?
状态和停止原因 成功、部分完成、失败,还是遇到访问限制?

这些时间不能简单相加。媒体下载可能包含在发起它的浏览器操作里,而 Jev 决策和浏览器操作是顺序发生的。数据结构会先校验这些关系,再允许一条记录进入汇总。

失败不能从数据里消失

一套诚实的基准测试,必须保留最容易被删掉的运行:

  • 搜索没有结果;
  • 需要登录、触发验证或遇到限流;
  • 浏览器或 CLI 缺少能力;
  • 决策、网络、CLI 或报告生成失败;
  • 达到步骤上限;
  • 用户或进程中断。

任务、元数据、本地配置和隔离状态完成校验以后,每次尝试都会写一条隐私安全的记录。运行时失败会成为失败或部分完成的数据,而不是悄悄消失。

初始化错误要单独处理:如果任务文件或声明的版本本身无效,调研根本没有开始,因此不会写入记录。这样也不会把一条写错的命令算成平台性能问题。

只比较完全相同的环境

汇总工具会按完整边界分组:

  • 固定任务 ID 和平台;
  • Jev Social 版本和提交;
  • 不可变的 Jev 模型 ID;
  • socai 版本和提交;
  • 结果数量和步骤上限;
  • 浏览器 Profile 模式;
  • 不包含身份信息的区域标签;
  • 冷启动或热运行状态。

任何一项发生变化,都应该进入另一组。这样,新代码、不同模型或者已经预热的浏览器,就不能悄悄把旧结果变快。

每个 schema v2 分组至少需要 10 次不同运行,才会被标记为 READY。报告会同时给出总耗时、Jev 耗时、浏览器耗时、媒体耗时和证据数量的 p50、p95,以及成功、部分完成、失败和失败率。

10 次只是允许发布的最低门槛,不代表统计上已经足够强。它至少能防止把一次精心挑选的演示包装成基准;更严肃的比较应该继续增加样本。

数据可复核,但不应该泄露浏览器

基准数据要能公开,又不能把登录中的浏览器内容一起公开。

Jev Social 的数据结构会拒绝任务原文、证据正文、来源 URL、本地路径、浏览器端点、账号标识、Cookie、Token 和密钥。保留下来的只有不透明运行 ID、耗时、数量、固定版本、运行状态和稳定的环境标签。

审阅者可以检查比较是否完整、能否复现,但拿不到调研内容和本机细节。

0.1.8 发布了什么,又没有发布什么

这次发布包括:

  • Instagram、TikTok 和 LinkedIn 的固定任务;
  • 保留每次已初始化尝试的采集器;
  • 严格的隐私安全数据结构;
  • 完整环境分组;
  • 确定性的 p50 / p95 汇总;
  • 至少 10 次运行的发布门槛。

它没有包含真实基准数据集,也没有给出“快了多少倍”的结论。基准测试文档写明了命令、时间定义、数据结构和剩余门槛。Issue #24 会一直保持打开,直到有经过复核的真实运行组。

不用访问社交平台,也可以先在本地查看这套工具:

Terminal window
git clone --branch v0.1.8 --depth 1 https://github.com/socai-io/jev-social.git
cd jev-social
npm install
npm run benchmark:run -- --help
npm run benchmark:summarize -- --help

如果你关心浏览器 Agent 的性能,应该先审查方法,再看最后那张图。边界错了,数字再精确,也只是在认真回答错误的问题。

查看源码 · 检查基准协议 · 给 Jev Social 点 Star

常见问题

社交媒体 Agent 的基准测试应该测什么?

需要同时记录端到端耗时、决策耗时、浏览器操作耗时、媒体操作耗时、证据数量和最终状态,并保留失败、中断、空结果和访问限制。

为什么要看 p50 和 p95,而不是最快的一次?

p50 更接近常见体验,p95 能暴露偶发的慢速和不稳定。两者都必须来自同一个任务、同一个环境下的重复运行。

Jev Social 已经发布基准测试结果了吗?

还没有。0.1.8 发布的是固定任务、隐私安全的数据结构、采集器和汇总门槛;真实速度结论要等每组运行完成并经过复核。