2026年10月9日 · 阅读 —
LIFT 开源评测框架:agent 越用越好用,终于有办法验证了
LIFT 开源评测框架:agent 越用越好用,终于有办法验证了
「Agent 越用越好用」这句话,过去几年听多了,但一直缺个能拍板的说法:它到底是不是真的?好了多少?还是只是卖家的嘴?
现在这句话几乎人手一只 agent 都在喊。优化记忆系统、沉淀 skill、根据用户反馈改写自己的代码……这些做法被统称为 Agent Self-Evolving(自我进化)。可现实是,市面上主流评测都在卷 agent 本身的能力——数学、代码、推理——等它进化完之后,没人量过它到底涨了多少。
LIFT 想补的就是这个空。它是 GitHub 上一个 Python 写的开源评测框架,作者仓库叫 FeiZhuNiU-INFJA/LIFT,全名 Loaded Impact on Final Task。榜单上一行字写得很直白:它排的不是「谁能力最强」,而是「谁进化带来的提升最大」。
一句讲清它干嘛用:给它一份「练习题」、一份「期末考」,把进化前后的成绩单摆在一起。
先横向看看,平时大家怎么判断 agent 变没变好
在掏出 LIFT 之前,先摆一下市面上现有的判断方式,都不是它这套。
| 判断方式 | 怎么看 | 卡在哪 |
|---|---|---|
| 看能力榜 | 跑一遍数学/代码/推理,比分数 | 测的是「开箱能力」,不测「进化收益」 |
| 看演示视频 | 看作者录的一段惊艳操作 | 没对照组,无法证伪 |
| 看上线后的体感 | 用起来「感觉顺手了」 | 没有量化口径,不可复现 |
| 看某个案例 | 某个任务从 10 轮查到 3 轮 | 单点样本,可能只是运气 |
这些方式的共同毛病:要么测的不是进化,要么拿不出可复现的对照。 LIFT 的做法是把「进化」本身变成一个可以跑对照实验的变量——做法朴素到像中学实验:同一道题,同一个 agent,一个干净环境,一个加载进化产物,看差多少。
它是什么:一套「给 agent 判进化分」的框架
LIFT 不是你能直接上手用的 agent,是一个评测框架。它管的事是:你在 Docker 里跑起来一批 agent,它负责切题、起容器、加载进化产物、算分数、出报告,最后给你一张能看出「进化到底有没有带来提升」的成绩单。
技术选型一口气列出来:Python 3.12、运行时走 Docker、全程用 Langfuse 打 trace 做观测。仓库里有这么几块你点进去能见到的东西:
src/:框架内核(CLI、编排、容器适配、判分)agent-runtimes/:各 agent 运行时的 Docker 镜像(OpenClaw、Hermes、GenericAgent、OpenHuman、EvoScientist、Prime Agent 等)assets/:评测题集(含一个开箱即用的冒烟 demo)docs/:协议、架构、讲稿、在线排行榜skill/:装环境、接入新 runtime 的引导
截至写这篇,仓库 77 个 star、5 个 fork,Python 3.12,Docker 运行时。规模不算大,但它解决的问题够锐利。
它做什么用:把「进化收益」变成一张可复现的成绩单
LIFT 把每套 benchmark(评测题集)切成两组:
- warmup_tasks(练习题):让 agent 真去跑、真去触发它的进化——记忆、skill、自改写
- holdout_tasks(期末考):同一道题跑两遍,一遍是干净的 baseline(对照组),一遍是加载了进化产物的 evolved(实验组)
两次的差距,就是「进化」给这个 agent 带来的提升。这就是典型的 A/B 对照实验,只是受试者从用户换成了 agent。
核心指标也全是用户能直接感知到的效率维度:
| 指标 | 含义 | 变好方向 |
|---|---|---|
| turns | 完成任务需要的对话轮数 | 越低越好 |
| tools | 工具调用次数 | 越低越好 |
| tokens | 总 token 消耗 | 越低越好 |
| score / success | judge 打的分 | 越高越好 |
聚合公式写得很透明:impr = (evolved − baseline) / baseline,越低代表越省。轮数下降,意味着 agent「想清楚了再做」;工具次数下降,意味着它会复用、会跳过冗余探查。 这正是「越用越顺手」最实在的量化。
怎么用它:三步,从装环境到出一张成绩单
它上手分三步,环境需要 Docker + Conda(Python 3.12)+ 本地 Langfuse + 一个 agent 评测镜像。
第一步,配环境。 仓库里带了 setup-lift-env 这个 skill,按 6 步顺序检测引导:Docker、Conda、Langfuse、配置 .env、拉 benchmark 数据、构建镜像,最后用一个 hello.json 冒烟。
第二步,跑起来。 配好之后一条命令:
conda activate lift
python -m src.cli.lift_main \
-r openclaw \
--benchmark_dir assets/benchmarks_demo \
--suite hello.json \
--run-id my-first-run \
--tui \
--dashboard 8080
跑完在 results/lift-runid-my-first-run/ 下看报告和自动生成的 dashboard.html 离线快照。
第三步,看两张「成绩单」。 浏览器 Dashboard 第一眼是 PHASE COMPARISON:每道题 baseline → evolved 三列对照,颜色加箭头明示哪几道题在 turns / tools 上变好(↓ 绿)、变差(↑ 红)、持平。跑完后后处理会从 trace 抽出更细的口径,回写到 FINAL SUMMARY 面板,把实时聚合切到最终成绩单。每一道题、每一个相位,agent 和判分的 judge 都各起一个独立容器,保证对照干净、题与题互不污染。 进化前的记忆被 docker commit 原子打包成镜像,进化后从这张镜像重新起容器——baseline 和 evolved 完全对称。
关键:它怎么保证「对照」是真的,不是玄学
「A/B 对照」谁都会说,难在把对照做干净。LIFT 在这点上堆了三层防御,是它最有工程含金量的地方。
第一层,记忆必须进到容器里。 早期版本踩过一个坑:agent 的工作区在宿主机挂载目录,warmup 阶段写的 MEMORY.md、SOUL.md、技能更新全都不在容器层,docker commit 根本拍不到,delta 镜像里其实没有「学到的东西」。后来把工作区挪进容器、种子文件在构建期烧进镜像,才让「能进化的状态」留在容器内、被一并拍进 delta,而「任务素材和产物」放在挂载目录供外面观察。该进 delta 的进 delta,不该进的别进。
第二层,每道题、每个相位都起新容器对。 baseline 不能受 evolved 污染,evolved 不能复用 baseline 的环境;work agent(做事的)和 judge agent(判分的)记忆也隔离。题与题之间同样互不干扰。做不到这条,你就说不清提升到底是进化的功劳,还是环境串味串出来的。
第三层,cell 级隔离 + 自动重试。 一次 LIFT run 是个 repeat × suite 的并发矩阵,默认 3 个 cell 同时跑;典型 3 repeats × 14 suites × 6 holdouts 的 run,holdout 高峰有 36 个容器在跑。单道题挂掉不波及矩阵其他位置,失败的 cell 收集起来自动再跑一遍;宿主吃紧时调一个 --max-parallel-suites 就能全局收口。
这三点合起来,成果直接体现在它们的在线排行榜上。榜单按 ΔTurns% 排序,每行都已减去自身 Baseline。2026 年 8 月生成的那版里,11 个 runtime 跑完,效果分化得很明显:
| runtime | ΔTurns% | ΔTools% | ΔTokens% | 显著 |
|---|---|---|---|---|
| hermes+openspace | −19.09 | −10.62 | −19.27 | 是 |
| hermes | −17.24 | −10.38 | −17.48 | 是 |
| hermes+agentmemory | −16.64 | −8.82 | −17.34 | 是 |
| evoscientist+active | −14.69 | −27.57 | −12.73 | 是 |
| evoscientist | −14.33 | −34.65 | −10.23 | 是 |
| openclaw | +2.74 | −2.09 | +0.44 | 否 |
(负号 = 越用越省,正号 = 反而更费。)同样承诺「自我进化」,有的 agent 能让轮数降近两成,有的反而更啰嗦。 所以「越用越好用」不能靠喊,得靠同一套标尺量出来。
这套框架还有个非技术背景也能理解的点:它刻意不评测难量化的质量分,而是专注效率指标。理由写在设计文档里——当前主流的进化思路都不是改模型权重,而是把信息注入上下文来提升能力(上下文学习)。用可检验的细小要求作为约束,既能引导 agent 得出更高质量的结果,又能保证另一半的 judge 打分受随机性影响尽可能小。效率比质量更容易判、更容易复现。
测试开发视角,怎么用它
站在测试的立场,LIFT 真正戳中的是「回归测试的 Agent 版」。
传统回归是:改完代码,把旧用例重跑一遍,看有没有退步。LIFT 把这件事套到了 agent 身上:agent 进化 / 改完自己之后,把同一批 holdout 题重跑一遍,看是提升还是挂掉。给 agent 补一套「越用越担心它退步」的回归防线,这在项目和工具落地时比选哪个模型更救命。
落到业务侧有当场能用的场景:
- 接 agent 之前先体检:上线前用 LIFT 跑一遍同一批任务,建立「进化前基线」,后面每次改动都有参照物,不再靠体感判断。
- 选哪套进化方案:记忆增强、skill 沉淀、自改写……不同 agent 用不同方案到底谁更值?LIFT 的排行榜就是现成的答案——同一个问题,不同进化方案谁更省轮数,一目了然。
- 版本升级防翻车:agent 厂商发新版,别急着全量切,拿 LIFT 跑个对照,看新版的进化收益是不是真比旧版强,再决定要不要上。
它值不值得花力气,取决于你认不认这个起点:「越用越好用」不是形容词,是一句可以被量化的断言。 如果认,LIFT 给的是一整套能落地、可复现、有对照的验证方法,而不是又一个「听起来很厉害」的 demo。
仓库地址:https://github.com/FeiZhuNiU-INFJA/LIFT
#AI评测 #Agent #SelfEvolving #开源项目 #测试开发 #回归测试