怎么给社交媒体 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 会一直保持打开,直到有经过复核的真实运行组。
不用访问社交平台,也可以先在本地查看这套工具:
git clone --branch v0.1.8 --depth 1 https://github.com/socai-io/jev-social.gitcd jev-socialnpm installnpm run benchmark:run -- --helpnpm run benchmark:summarize -- --help如果你关心浏览器 Agent 的性能,应该先审查方法,再看最后那张图。边界错了,数字再精确,也只是在认真回答错误的问题。
常见问题
社交媒体 Agent 的基准测试应该测什么?
需要同时记录端到端耗时、决策耗时、浏览器操作耗时、媒体操作耗时、证据数量和最终状态,并保留失败、中断、空结果和访问限制。
为什么要看 p50 和 p95,而不是最快的一次?
p50 更接近常见体验,p95 能暴露偶发的慢速和不稳定。两者都必须来自同一个任务、同一个环境下的重复运行。
Jev Social 已经发布基准测试结果了吗?
还没有。0.1.8 发布的是固定任务、隐私安全的数据结构、采集器和汇总门槛;真实速度结论要等每组运行完成并经过复核。