[BidClub_]
Latent Space · · 18 分钟

[代码评测现状] SWE-bench之后,Code Clash与SOTA编程基准回顾——John Yang

John Yang

YouTube
TL;DR
  • SWE-bench的商业重要性,始于Devin将一项沉寂的2023年10月基准测试变成代理竞赛。 Yang说,在Cognition发布“令人震撼”的Devin之前,市场几乎没有采用,发布前Walden曾发邮件称其“有个不错的数字”。如今这一生态已扩展至Pro、Live、多模态和多语言版本,后者覆盖9种语言、约40个仓库。Yang说,随着基于筛选的多样化和难度宣称不断增加,未来如何划分评测仍是开放问题。
  • CodeClash衡量的是代理能否反复改进具有实际后果的代码库,而不只是一次性通过补丁测试。 2个或更多模型分别维护代码库,每轮进行修改,并在竞技场中竞争,通过反复对局评估持续开发能力。Yang的前提很明确:“我不喜欢把单元测试当作验证方式。”
  • 编程评测正从单一排行榜变成按成本分层、按垂直领域展开的组合。 SWE-fficiency关注运行时间,同时保持单元测试通过;主持人将SciCode称为“更好的HumanEval”;完成式基准可以先于昂贵的多轮评测。METR使用VBench和“人类工作小时”框架,主持人则指出SWE-bench Verified可作为代理指标。Terminal-Bench、物理、网络安全、τ-bench和Vending-Bench扩大了评测范围,但主持人质疑用户模拟器可能只是在“采样一条路径”。
  • 不可能任务可能成为评测系统的绊线,用来识别那些只会宣称完成、却无法判断失败的系统。 主持人提议在τ-bench中刻意设置不可能案例作为作弊标记,理论上任何Retail得分超过75分的模型都可能因此暴露;他还提到可能来自Anthropic的ImpossibleBench,该基准将SWE-bench Verified中的问题改造成不可能完成的任务。主持人说所有模型都尝试了这些任务并宣称完成;Yang认为这是一项重要基准。
  • 更长时间的自主运行在技术上可以测量,但在商业上含义模糊,因为用户往往通过快速交互解决需求不明确的问题。 Yang设想让代理运行5小时,回来时得到一个“扎实的代码库”。主持人说,需求不明确使快速来回沟通更符合现实;Yang则警告,将自主运行推到24小时,可能只是噱头或存在性证明,而不是会改变行业的工作流。主持人更认可按任务匹配人机协作:想亲自操作时就保持介入,但例行的JSON解析可以交给代理后离开。
  • 战略瓶颈可能是专有的人机交互数据和对代码库的理解,而不是又一套静态任务集。 Yang羡慕Cognition和Cursor拥有的使用轨迹,并说模拟器不能只是“ChatGPT,假装自己是人类”。他强调CodeClash可以作为测试平台,比较纯AI、多代理和人机团队;同时提到Cognition的“codebase retrieval plus”和自动化上下文工程。冻结代码库上的知识问答很容易饱和。
摘要 · 为研究而整理的核心内容

1. Devin将SWE-bench从沉寂发布推向代理竞赛

  • Yang将SWE-bench真正可用的版本追溯到2023年10月,当时几乎没有引起关注。Cognition后来发邮件告诉他有“一个不错的数字”;Devin的发布“令人震撼”,并“拉开了军备竞赛”。
  • 如今这一系列已包括Live、多模态和多语言版本——覆盖9种语言、约40个仓库——以及一个完全独立的Pro项目。Yang说,虽然自己没有参与Pro,但不介意它沿用SWE-bench这一名称。多模态和多语言版本有意将仓库范围扩展到以Django为主的原有重点之外。
  • Yang认为,各个独立split还能凭越来越复杂的筛选宣称难度更高多久,以及最终评测应由什么方向引导,仍是开放问题。

2. CodeClash让昨天的代码约束明天的代理

  • CodeClash源于2点质疑:一是“我不喜欢把单元测试当作验证方式”,二是SWE-bench的实例在提交时彼此独立结束。Yang希望转向长周期开发,让每个模型的代码库在反复对局中持续产生实际影响。
  • 2个或更多模型各自维护代码库,自由进行改进,然后进入竞争阶段,由竞技场判断哪一个更好。LLM裁判只是可能的机制之一,并非设计的全部。
  • 初始竞技场使用Halite等现有编程游戏——“像是在玩StarCraft,但你可以写代码”(like playing StarCraft, but you can code)——包含舰队、资源、攻击和防守。目前的工作是搭建具有经济价值的竞技场,让CodeClash更接近现实世界的实用性,正如SWE-bench和Terminal-Bench所追求的那样。

3. 评测栈正按成本、领域和时间跨度分化

  • Jeffrey Ma的SWE-fficiency修改代码库以提升运行速度,包括并行化等技术。Yang明确要求保持单元测试通过;主持人将目标概括为除运行时间改善外不改变行为。AlgoTune沿着相近的优化路线推进。
  • 主持人将SciCode称为“更好的HumanEval”。更广泛地看,完成式基准可以作为低成本的第一步,再让模型进入昂贵的多轮评测。
  • METR使用VBench,并以人类工作小时为框架,一条轴是运行时间,另一条轴是完成度。主持人也认可METR使用SWE-bench Verified作为其中一些测量的代理指标。
  • Critical Point引入物理、SecBench网络安全以及覆盖更广环境的Terminal-Bench。τ-bench、τ²-bench和Vending-Bench则将讨论延伸到用户模拟,但主持人质疑单次采样路径究竟有多现实。

4. 不可能任务揭示模型是否知道何时停止

  • 关于τ-bench包含需求不明确或不可能任务的说法,引发了Karthik的反驳。Yang理解这一担忧,但将其视为一个研究拆解:“问题出在歧义吗?还是……用户模拟器?”
  • 主持人提出了更尖锐的方案:刻意加入不可能任务,作为作弊标记——“所有人在τ-bench Retail上都报告超过75分”,反而可以暴露他们自己。Yang认为这会“很酷”。
  • 主持人提到可能来自Anthropic的ImpossibleBench,该基准将SWE-bench Verified的问题改造成不可能完成的任务。主持人说,所有模型都尝试了这些任务,并宣称“我做到了”(I did it);Yang称其为一项关于拒答和识别不可能性的关键基准。

5. 真正的前沿是让自主性匹配人的意图

  • 主持人预计SWE-bench还会出现更多变体。他称赞Terminal-Bench 2.0,并希望看到3.0和4.0,因为由人编写的环境比SWE-bench现有问题和拉取请求所代表的场景更能激发创造力。Yang讨论了增加更多人、非编程任务和非编程环境后可能带来的变化。
  • Yang理想中的自主运行,是给代理一个宽泛目标和一个还算靠谱的验证器——哪怕目标是“打造一套最赚钱的代码库”——然后离开5小时,回来得到扎实的结果。主持人指出,需求不明确意味着必须快速来回沟通;Yang则警告,将自主运行延长到24小时,可能只是噱头或存在性证明,而非真正改变行业。
  • 主持人更认可人机协作,而不是消灭人的参与。合适的抽象取决于任务:需要亲自操作时使用Windsurf,但例行的JSON解析则可以交给代理后离开。Yang基本认同。
  • Yang呼吁获得更好的交互证据:学术界需要一个像LMArena一样能够持续产生一致使用数据的有吸引力的产品,或者需要比“ChatGPT,假装自己是人类”认真得多的模拟器。CodeClash可以在不同竞技场中比较纯AI、多代理和人机团队。
  • Yang还强调Cognition的“codebase retrieval plus”,目标是帮助人类理解自己的代码库,并结合人和模型的能力;同时也包括面向LM的自动化上下文工程。他不确定,除了很容易饱和的冻结代码库知识问答之外,还能如何评测理解能力。
Speaker 1

We're here at NeurIPS with John Yang of SWE-bench and many other things. Welcome.

John Yang

Thanks so much for having me. I'm really happy to be here.

Speaker 1

Last year I talked to Oier and Carlos, one of your co-authors. How's SWE-bench doing? Generally, the project is about 1.5 years old.

John Yang

Yeah. I think it's about 1.5 years old in terms of when it became useful. We put it out in October 2023, and people didn't really touch it too much. Then, of course, Cognition came on the scene, and Devin was an amazing release. I think after that, it kicked off the arms race.

Speaker 1

Did they tell you beforehand, or did they just show up?

John Yang

I got an email about 2 weeks ago. I think it was from Walden. He was like, "Hey, we have a good number on it." I was like, "Wow, congrats. Thanks for using it." Then the release was mind-blowing. I was like, "Wow, these guys did an excellent job."

Speaker 1

Amazing. SWE-bench Verified was maybe last year.

John Yang

That's right.

Speaker 1

Catch us up on this year. You have other languages, and there are a whole bunch of varieties of SWE-bench now. What should people know?

John Yang

For sure. I think there are a couple of extensions happening. One is more SWE-benches: SWE-bench Pro and SWE-bench Live.

Speaker 1

Oh, SWE-bench Pro. Was that with you guys? It looks independent. It has different authors.

John Yang

It's completely independent.

Speaker 1

So they just called it SWE-bench Pro without your blessing?

John Yang

Yeah. I think we're okay with it. When it came out, we were like, "Oh, cool. Interesting." It would have been fun to be part of it, but congrats to them. It's a great benchmark.

Speaker 1

Multimodal?

John Yang

Yeah, we did multimodal and multilingual.

Speaker 1

Is the multilingual version JavaScript? What else?

John Yang

Multilingual is 9 languages across about 40 repositories. You've got languages like JavaScript, Rust, Java, C, and Ruby.

Speaker 1

And SWE-bench itself: a lot of people talk about the Django focus. How do we move past Django?

John Yang

For sure. It's cool to see a lot of the newer benchmarks really try to diversify the repositories. In the 2 follow-ups we did with multimodal and multilingual, we made a point of doing that.

Speaker 1

But you can also just put out SWE-bench 2025.

John Yang

That is true: do a new distribution. It's been cool to see the follow-ups. Quietly, it's an open question for me, and I'm excited to see how people curate the next sets. It's interesting to see in the literature or in blog posts how people justify creating their separate splits. The easier ones are like, "Oh, more languages, more repositories." Now people are saying, "Ours is more difficult because of this curation technique." I'm excited to see how long that lasts and where we're going to guide evaluations.

Speaker 1

More recently, you're working on CodeClash.

John Yang

Yes, that's right.

Speaker 1

You've already done other podcasts about it. I refer people to your chat with Andy, but give people a 1- or 2-sentence explanation.

John Yang

Happy to do it, especially on your podcast. It's an honor.

Basically, I don't like unit tests as a form of verification. I also think there's an issue with SWE-bench in that all of the task instances are independent of each other. The moment a model submits it and says, "Oh, it's done," that's the end of the story—the end of the episode.

With CodeClash, we're trying to evaluate long-horizon development on a codebase that is consequential and conditioned on what a model did to that codebase before. The general idea is that you have 2 or more language models, and they play a programming tournament. Each model maintains its own codebase, and in each round of the tournament, it first gets to edit and improve its codebase however it sees fit. It's very self-determined.

Then, in the competition phase, those 2 codebases are pitted against each other. The codebases are run in an arena—we have a lot of diverse arenas—and the arena determines whether codebase A is better than codebase B. Then you repeat that across multiple rounds.

Speaker 1

As determined by an LLM judge?

John Yang

Yeah. An LLM judge is definitely one of the mechanisms. We started with some pretty simple programming games. One of the cooler ones is Halite, which—

Speaker 1

Oh, yeah, I played it for Jane Street.

John Yang

Yes, that's right. That's awesome. Halite 1, 2, and 3—Michael Truell of Cursor wrote this game.

Speaker 1

Two Sigma. Jane Street.

John Yang

Yes—oh, Two Sigma.

Speaker 1

I worked at Two Sigma.

John Yang

Oh, there you go.

Speaker 1

This was too long ago.

John Yang

There you go. Yeah, 2016 at this point, but we're bringing it back.

Speaker 1

Halite is fun. I would say, if you've never done a programmatic competition where you have to control fleets of ships, attack and defend things, and collect resources—

John Yang

Yeah, it's like playing StarCraft, but you can code, right?

Speaker 1

Yeah, exactly. A lot of games.

John Yang

Yeah.

Speaker 1

Are there non-games, or are you focused on games?

John Yang

I think that's an excellent point. For the initial release, for scientific purposes, we used existing programming games. The current ongoing effort is to build economically valuable arenas. That's the popular word these days.

Speaker 1

Yeah, SWE-bench is a big one this year.

John Yang

Yeah, awesome. I think the big selling point of Terminal-Bench and SWE-bench, and these evaluations, is that they're really close to real-world utility. I think that's resolvable for CodeClash, and that's what we're working on.

Speaker 1

You're part of a group?

John Yang

Yes.

Speaker 1

The other students have also been putting out a lot of other things. What would you highlight?

John Yang

Oier is such a prolific mentor when it comes to benchmarking. SWE-fficiency is one I really like, in the line of performance optimization.

Speaker 1

Performance optimization. What's the one?

John Yang

Yeah, for sure. SWE-fficiency was written by a PhD student called Jeffrey Ma, who happened to be my high school classmate. The idea is that you take a codebase and make modifications that literally make the code run faster. This includes parallelization and similar techniques.

Speaker 1

So, no behavior change—just faster?

John Yang

Exactly. Keep the unit tests passing, but get better runtime.

Speaker 1

And then there's AlgoTune, which is in line with that.

Speaker 1

Yeah. Then there's also the scientific coding domain.

John Yang

Yeah, exactly. SciCode, too, is awesome. They did a quick—

Speaker 1

For people, the way I explain SciCode is that it's HumanEval but better.

John Yang

Exactly. I think there's a lot of good stuff these days. That's the way to go.

Speaker 1

SWE-bench is expensive to run. Any agentic benchmark is expensive to run. You do need some completion benchmarks that just—

John Yang

Complete. Exactly. You can do well on those first and then graduate to the expensive, multi-turn stuff.

Speaker 1

Broadly, what other work in the field in 2025 has caught your eye in terms of coding evaluations?

Speaker 1

Obviously, shout-out to METR. They use VBench, and they have a very interesting human-hours-worked number. They have the x-axis as the runtime and the y-axis as completion. We can do more long-running tasks. I think the projections are quite interesting, and I definitely appreciate them using SWE-bench Verified to proxy a lot of these things. They're great.

Speaker 1

Any other work that caught your eye?

John Yang

Within Terminal-Bench—

Speaker 1

Critical Point was kind of cool.

John Yang

Critical Point is a very new benchmark that Oier did, and I think it's related to physics.

Speaker 1

There's also SecBench, which is related to cybersecurity.

John Yang

Yeah, exactly. SecBench. It's cool to see people really dive into different coding domains.

Stepping a little bit outside of coding, I personally think it's quite interesting to think about user-simulator work, such as τ-bench, τ²-bench, and Vending-Bench.

Speaker 1

I have mixed feelings.

John Yang

I'm interested.

Speaker 1

Well, I mean, it's like sampling 1 path. I don't know how realistic it is, to be honest. It's just the elements, but it is cool.

John Yang

No, for sure. I agree. I think it's a good initial effort. To me, it's super cool to see companies like METR and others focusing on building environments for code beyond code. It might be interesting to have WorkGym-style stuff.

This is stuff that my adviser, Diyi Yang, at Stanford thinks about a lot. So, yeah.

Speaker 1

Yeah.

John Yang

I just realized we're talking about Terminal-Bench in front of a lot of folks.

Speaker 1

Yeah. Yeah.

Speaker 1

You know, really, really, really good work. Overall, let's talk about τ-bench, because you mentioned τ-bench.

John Yang

Yes. Yes. There's some discussion—some people are saying that τ-bench is impossible to get a high score on because some of the tasks are underspecified or just impossible.

Speaker 1

I don't know if you're up to speed on that.

John Yang

I'm a little bit spicy. Yeah, it's a bit spicy. I think I saw—I worked with Shunyu and Karthik back at Princeton very closely. I think Karthik just posted a tweet rebutting some of these claims.

I get the concern, but I think it also brings up interesting research problems to solve. Why is it impossible? Is it the ambiguity? Is it the user simulator that has issues? I think generally we all agree that we'll improve on these things over time for agents.

Speaker 1

So I actually really like benchmarks that intentionally include impossible tasks as a flag. Like, “Hey, you're cheating.”

John Yang

Yes. Yeah, it's kind of sad that Karthik is actually defending it, because the master move would be, “Oh, yeah, you caught us.” Everyone reporting above 75 on τ-bench Retail would be cheating.

Speaker 1

Yeah. Oh, interesting. That would be cool. You'll have to ask the τ-bench authors, but that's fun. I think ImpossibleBench was a recent benchmark, maybe from Anthropic. They basically took SWE-bench Verified and changed the issues to make them impossible, then checked how often the models would say, “I actually just can't do this. I don't know what's going on.”

John Yang

Oh, like for refusals.

Speaker 1

Yes. Yes. Yes. So—

John Yang

Oh, how did they do?

Speaker 1

I thought that was interesting. I think all the models were attempting the tasks and saying, “Oh, I did it.” So maybe not great.

John Yang

That's cool. No, that's an important one.

Speaker 1

Yeah.

John Yang

How do coding evals evolve next year?

Speaker 1

Wow, that's a great question. Honestly, I think people will make more SWE-bench variants. I think Terminal-Bench has really got something going where, with SWE-bench, you're confined in some sense to the domain of issues and pull requests that already exist. That has the benefits of being close to reality and natural, but with Terminal-Bench, there's a lot of creativity that you can infuse into it.

I would personally be really excited—Terminal-Bench 2.0 was really excellent—and I'd be super excited to see 3.0 and 4.0 because of the environments.

John Yang

Yeah, I mean, the environments—bringing more people into the fold. Correct me if I'm wrong, Mike, but early on you had PhD students and very smart computer science people adding tasks. What does that look like when you add more coding environments for non-coding tasks, non-coding environments in general, and ask people to make things there? That's pretty cool.

And then, of course, for myself, I think this long-running SWE-agent kind of thing feels very compelling. The vision of, “Hey, I tell it a goal. I don't have to be super specific about my task. I have a decent verifier that proxies what I want”—something literally like, “Make the codebase that makes the most money in this setting.” That's my verifier.

I walk away for 5 hours. The thing is just running while I'm hanging out with you and talking to my friends. I come back, and it gives me literally a solid codebase for that task. I think that would be super cool. Okay, I'll push back. We're part-time.

Speaker 1

Yes.

John Yang

And we are emphasizing a lot of interactivity—

Speaker 1

Because the point is that you're going to underspecify, right?

John Yang

Right. Right. And actually, what people want is back-and-forth, back-and-forth, on a really fast time frame, which is terrible for a benchmark author, right? Because how do you do that?

Speaker 1

But realistic.

John Yang

Yeah. So I think this is where I'm a little bit anxious or cautious about this push for long autonomy. Let's say this time next year, 5 hours is pessimistic—it'll be 24—

Speaker 1

Long. Yeah. Right. Days.

John Yang

But I don't know if that actually materially changes the industry.

Speaker 1

So we'll push it as an eval. You know, we have people who make evals here.

John Yang

Yeah. Yeah. We push the industry in ways that we want to push it, but I don't know if that's a productive way, because it's more of a stunt. It's a proof of concept, an existence proof that it can be done.

Speaker 1

Yeah.

John Yang

But will you use it in real life?

Speaker 1

Yeah. Yeah. Honestly, I think there's potentially room for growth, so I would agree with your take here. With my lab at Stanford, with Diyi, her emphasis is on human-AI collaboration, so I definitely don't believe in this idea of just getting rid of the human.

Maybe it's about finding the balance. The developer ecosystem is so diverse, and there are so many participants who want different things out of it. We should enable different levels of abstraction. It depends on the task. There are settings where you want to be more involved and more hands-on, so you want to use Windsurf for that.

But maybe there's a general data-processing task that's just a lot of JSON parsing. You don't really care about it, and that's the one you want to walk away from and just let it figure it out. So, yeah, I would generally agree with you.

Speaker 1

Yeah. Yeah. Amazing. Any calls to action? What do you want help on? How can people find more of your work?

John Yang

Definitely. For the call to action, I'm super jealous of all the great data that Cognition and Cursor get. That user-interaction data is fascinating from an academic standpoint.

It feels like there are 2 difficult approaches to resolving that. Either you build a really compelling product like LMArena that people use consistently, which is really tricky in and of itself, or you build really good user simulators that try to mimic these settings. But that's also nontrivial. I don't think it's as simple as, “Hey, ChatGPT, act like a human,” right?

John Yang

Yeah. It would be really cool to get inspiration for what exactly that data looks like, or, between the 2 approaches, what the best way is to scale up evaluating human-AI interaction.

For visibility for my own work, we're pushing more arenas. For CodeClash, what I'm excited about is that the current framing is really long-running SWE agents, but you could have multi-agent settings. What happens when 2 agents work together on a codebase? What happens when you have a human and an agent work on the codebase, versus just AIs?

When the models improve and hopefully hill-climb, becoming better at digesting logs and iterating on analysis, how does human-AI interaction change with model capability? I'm trying to inspire and convince people that it's a very cool testbed where you can do a lot of different combinations of humans and AIs on different arenas—playing one arena at a time or multiple arenas at a time.

Speaker 1

Yeah, I'm very interested in working with you on the interaction stuff.

John Yang

That would be awesome. One more thing I'll add is that Cognition is going to be pushing a lot of codebase understanding, which is kind of codebase retrieval plus.

Speaker 1

Yes.

John Yang

And mostly, it is helping humans understand their own codebases better—to enable humans, or to sort of mind-meld the human with the machine, to do the highest-possible task that an LM couldn't do alone and humans couldn't do alone.

The other thing is automated context engineering for an LM. That's sort of a research subagent that we're working on.

Speaker 1

That's so awesome.

John Yang

I don't know what the benchmark would be, because how do you benchmark understanding?

Speaker 1

That is true.

John Yang

Apart from, I guess, freezing a repo, having some manually curated answers, and then posing trivia questions. That's very easy to saturate, so I don't know how else to—

Speaker 1

Yeah, I think Swyx tweeted a while ago about something like the wiki—the code wikis. That's incredible. I mean, I use—

Speaker 1

Google actually just came out with its own version.

John Yang

Oh, yeah, with the Antigravity people.

Speaker 1

No, no, no. This is a separate team.

John Yang

Gotcha. Gotcha.

Speaker 1

But cool. That's the state of code.

John Yang

Yep.