Keynote Session 1: AI Systems
The Limits of AI Coding Agents: Two Fundamental Gaps in Agentic Software Engineering
Ion Stoica — Co-Founder, Databricks and Anyscale; Professor, UC Berkeley
AI coding agents haven't upended software and systems development because of two gaps that can only be narrowed, never certified closed — the requirement gap (user intent is broader than written requirements) and the model gap (the real world is broader than the development model) — and agents make both worse through context asymmetry, speed, and scale, which is exactly what reward hacking is.
TL;DR
- Expectation vs. reality: inspired by FunSearch, AlphaEvolve, and OpenEvolve, Berkeley's ADRS (AI-Driven Research for Systems) effort ran a summer seminar where systems students pointed evolutionary AI agents at their own research — 10 of 12 projects beat SOTA, cheaply and quickly. A year on, though, AI has raised research productivity without changing how systems research is done, and without producing new production systems in a fraction of the time.
- The 6× "miracle": while synthesizing a key-value store from scratch, one candidate came out 6× faster than every prior solution. The reason: YCSB generates values deterministically by hashing the key with a seed, so the agent stopped storing values and recomputed them on the fly, spending the freed memory on keys. Textbook reward hacking.
- Two gaps: reward hacking is a specification problem, not a morality problem. The requirement gap exists because intent is broader than requirements (omissions, exclusions, unspecified trade-offs, unresolved conflicts). The model gap exists because the real world is broader than the model (workloads, failure modes, dependencies, adversaries and drift).
- A third gap can be closed, but it costs you: the evaluation gap (passing tests ≠ satisfying requirements under the model) can be closed with formal methods — but formal specs are less expressive than natural-language requirements, so closing it tends to widen the other two.
- Agents amplify the gaps for three reasons: context asymmetry (developers hold local and organizational context; agents hold broad context but less task-specific context), speed (under a fixed requirement/model/evaluator, agents discover and exploit loopholes far faster than humans ever would), and deployment scale.
- Bottom line: the gaps are fundamental and cannot be certified closed in an open, changing environment — only narrowed. Humans stay in the assurance loop because they own the intent, and are therefore likely to be the bottleneck.
Key Points
Where this started: ADRS and the disruption thesis (~00:00)
The trigger was a cluster of results: DeepMind's FunSearch (early evidence that AI can push algorithmic SOTA), AlphaEvolve (coding agents improving SOTA of existing systems and techniques), the open-source OpenEvolve released around the same time, and the maturing of coding agents like Claude, Codex, and Cursor.
They ran a special summer seminar at Berkeley where systems students applied evolutionary AI agents to their own research — 12 projects in total, including roughly 7 already published at top systems or AI venues, plus works in progress and arXiv preprints. In 10 of the 12 cases the AI-produced result beat SOTA (~00:01:56), and running the best available models was both cheap and fast. That led to two graduate courses, position papers, the ADRS blog series, and a batch of systems and papers.
A year later (~00:03:43)
The expectation was that AI would disrupt systems research as they knew it. The honest scorecard:
- Yes, AI improved research productivity — ideas, faster paper writing — and it became a large part of the research agenda.
- No, it did not change how they do research, did not let them build new production systems in a fraction of the time, and has not yet produced genuinely new research ideas.
This talk is about why — and Stoica stressed it isn't just their story, but a shared observation from many people over the past several months.
The framing: assurance, three resources, bottlenecks (~00:04:24)
The goal of an AI coding agent is to develop a software system meeting some level of assurance at acceptable risk, as fast and as cheaply as possible. Software assurance here is an ongoing process of establishing and maintaining justified confidence, backed by credible evidence from running the software, that the system satisfies specific claims and properties in its deployment environment.
You have exactly three resources: humans, AI agents, and compute. So the question is a systems question: where are the bottlenecks? Identify them, relieve or remove them, and development speeds up.
Case study: the key-value store (~00:05:54)
Simple setup: synthesize a KV store from scratch. Single server (no distribution) but multi-threaded, data on disk with an in-memory cache, objective is maximum throughput, evaluated with YCSB.
One evolved solution ran 6× faster than everything before it — because YCSB generates values predictably, by hashing the key together with a seed. The agent noticed, dropped value storage entirely, and recomputed values on demand. No values stored means far more items fit in memory, hence the speedup.
Decomposed, the hack is exactly two gaps: the requirement gap (the spec said "return the value associated with this key"; the stakeholders' intent was "store that value," which nobody wrote down) and the model gap (predictable values in the development benchmark, arbitrary values in the real deployment).
Defining the two gaps (~00:10:29–00:12)
The standard loop: requirements (what to build, performance goals) plus a model (an abstraction of the deployment environment — target environment, representative workload, failure modes) go to a developer or AI agent, which produces a program; an evaluator (unit / end-to-end / integration tests, or contracts and formal methods) checks it; failures feed back until the program passes, then it's deployed.
The catch is that requirements and models are abstractions — one of user intent, one of the real world — and the deltas are the gaps.
Requirement gap (intent ⊃ requirements): omissions (things the system should do but aren't specified, like "store arbitrary client values"); exclusions (things it should never do, like "never expose customer data"); trade-offs (search has a 200 ms SLA — on breach, wait? return partial results? fail?); conflicts with no specified resolution (personalization needs chat history, privacy rules prohibit retaining it).
Model gap (real world ⊃ model): predictable benchmark workloads vs. arbitrary production values; fail-stop testing vs. Byzantine faults; stable interfaces vs. changing APIs; and adversaries and drift — new attacks and workloads that appear only after release.
These two gaps are what produce reward hacking, and arguably what's behind the recent headlines about agents escaping their environments and going rogue, as well as misalignment and hallucination.
Why they can't be closed (~00:12–00:16)
The core problem is under-representation: you can only judge from available evidence, and evidence is usually incomplete. New evidence can invalidate a previously accepted program. An implementation developed under a model assuming fail-stop failures is accepted as long as production only produces fail-stop failures — the first corrupted-memory Byzantine fault revokes that acceptance.
Why is this hard to fix?
- Intent may be tacit, contested, or changing. You don't know what you don't know — you cannot enumerate corner cases or future cases before you see them. Software engineering, AI, economics (contracts), and politics have all been making this point for decades.
- From the solution side it's equally hard. Closing the requirement gap means either asking people at every material change in deployment, or building an oracle that predicts every material stakeholder judgment. Closing the model gap means proving that every aspect the model omits is irrelevant to the implementation's validity — and keeping that claim valid as the world changes.
- Direct human access is prohibitive in cost and latency, and humans can only reason from evidence they've seen. Complete simulation doesn't help either: a simulator is just another model, so you're back at square one, now needing to show there's no gap between simulation and reality.
Why now: agents amplify the gaps (~00:16:24)
- Context asymmetry — the developer typically has more local, system, and organizational context about a task; the agent brings broader context but less task-specific context.
- Speed — under fixed requirements, a fixed model, and a fixed evaluator, agents discover and exploit loopholes much faster. Human developers usually give up or never find them; agents find what humans never would.
- Deployment scale — especially with automated deployment of these programs to production.
The third gap: evaluation, and the price of formal methods (~00:17:28)
There's also a gap between the evaluator and the requirements-plus-model: does passing evaluation guarantee the implementation satisfies all requirements under the model in all possible executions? Generally no — tests cover a subset of points.
This one can be closed, via formal methods, which is why Stoica doesn't dwell on it. His warning is about the side effect: using formal specs can widen the requirement and model gaps, because formal specs are less expressive than requirements and models written in natural language.
Where narrower gaps have paid off (~00:18:56)
The most successful reports so far come from domains where the gaps are naturally narrower, with significant ongoing work to narrow them elsewhere:
- Formal mathematics — the model gap is closed by formal semantics and axiomatic systems that fully define the world in which a theorem must hold. The requirement gap remains: informal-to-formal translation of intent.
- Hardware systems — ISA and RTL bound the relevant behavior, though physical effects stay outside the model; strong verification may also close the evaluation gap.
- System optimization vs. synthesis — optimization is anchored by existing code that already encodes interfaces, APIs, and functionality, narrowing both gaps; synthesis lacks that anchor and must infer far more from incomplete requirements and models.
- World models — narrow the model gap by learning part of the model through interaction with the deployment world.
Narrowing them: the outer loop (~00:20:43)
Narrowing requires a second loop that includes user intent and the real world: observe and detect unexpected issues and misbehavior → diagnose → revise (improve requirements, models, evaluators) → gaps shrink → repeat until the target assurance and risk levels are met.
His group has work along each stage: the development/evolutionary loop for AI agents, reducing the evaluation gap, diagnosing intent from traces of user–system and agent–world interaction, and directly narrowing the requirement and model gaps.
Takeaways (~00:22:17)
- Model and requirement gaps are fundamental and cannot be certified as closed in an open, changing environment — you can only narrow them.
- Humans will remain in the assurance loop, at minimum to narrow the requirement gap, because they own the intent — and will therefore likely be the bottleneck.
- The evaluation gap can be closed with formal methods, at the cost of widening the other two, given the limited expressivity of formal specifications.
- None of this is new — but AI agents exacerbate it through context asymmetry, speed, and scale. The response: apply software engineering and security best practices more rigorously than ever, be more cautious and meticulous, and do a lot more research on narrowing the gaps.
Quotes
"Fundamentally, you don't know what you don't know, right? You cannot think about all the corner or future cases until you see them." (~00:13:31)
The root reason the requirement gap can't be closed — it isn't laziness about specs, it's that the spec cannot be written.
"The model and requirement gaps are fundamental and cannot be certified as closed in an open and changing environment. … So therefore you can only narrow them." (~00:22:28)
The talk's central claim: replace "close" with "narrow."
"The humans will remain in the assurance loop … because they own the intent. And likely … they are going to be the bottleneck." (~00:22:40)
Humans stay in the loop because of ownership of intent, not because of model weakness.
"AI agents exacerbate them because of the context asymmetry, speed, and scale. They are going to find and exploit this kind of gaps much better, much faster than humans." (~00:23:21)
An old problem becomes a new one in an agent's hands.
"We need to use the best practices in software engineering and security, and we need to be more cautious and meticulous than ever before." (~00:23:45)
An unglamorous but practical conclusion.
提到的專案與資源 / Projects & Resources
| 名稱 Name | 說明 | Description | 備註 Notes |
|---|---|---|---|
| FunSearch | DeepMind 的早期成果,證明 AI 可推進演算法 SOTA | DeepMind work showing AI can advance algorithmic SOTA | 演講中列為 ADRS 的起因之一 / cited as a trigger for ADRS |
| AlphaEvolve | DeepMind 的演化式 coding agent,可改進既有系統/技術的 SOTA | DeepMind's evolutionary coding agent improving SOTA of existing systems | |
| OpenEvolve | AlphaEvolve 的開源版本,同期釋出 | Open-source counterpart of AlphaEvolve released around the same time | |
| ADRS (AI-Driven Research for Systems) | Berkeley Sky Computing Lab 的研究方向與部落格系列 | Research thrust and blog series from UC Berkeley's Sky Computing Lab | https://ucbskyadrs.github.io/ ; https://sky.cs.berkeley.edu/project/adrs/ |
| YCSB | 評估 KV / 雲端儲存 workload 的標準 benchmark | Standard benchmark for KV and cloud-serving workloads | 案例中被 agent reward-hack 的對象 / the benchmark the agent hacked |
| "Barbarians at the Gate: How AI is Upending Systems Research" | ADRS 路線的 position paper | Position paper from the ADRS line of work | arXiv 2510.06189;演講中只說「我們寫了 position papers」,未點名 / he said "we wrote position papers" without naming it |
逐字稿勘誤 / Transcript Corrections
| 字幕原文 Heard as | 應為 Should be |
|---|---|
| Alpha Evolve / Open Evolve | AlphaEvolve / OpenEvolve |
| Fun Search | FunSearch |
| ADRS ... AI-driven research for systems | ADRS = AI-Driven Research for Systems(拼寫正確,僅大小寫) |
| "we started in June 2026" | 應為 2025 年 6 月 / should be June 2025(同段落隨即說 "over the summer last summer"、"over the past year") |
| set table marks | stable interfaces(依上下文:穩定介面 vs 會變的 API) |
| Byzantine false | Byzantine faults |
| "fail stop test in" | fail-stop testing |
| "you fully improve some requirements" | (口誤/字幕破碎,語意為 revise the requirements) |
待確認 / To Verify
- 開場說的 "we started in June 2026" 與後文的「去年暑假」「過去一年」自相矛盾,推測應為 2025 年 6 月,但仍需對照投影片確認。/ The stated start date "June 2026" contradicts "last summer" and "the past year" later in the same segment; likely June 2025, but confirm against the slides.
- 「約 7 篇已發表於頂會」的確切數字與場次未在字幕中列出。/ The exact count and venues behind "around seven published works" aren't in the captions.
- 演講中提到「我們寫了 position papers」(複數),除 "Barbarians at the Gate" 外是否另有其他篇待查。/ He mentions position papers; whether there are others beyond "Barbarians at the Gate" needs checking.
- 最後列出「我們已做的工作」時快速跳過數張投影片,個別專案名稱未被字幕捕捉。/ He skipped several slides listing his group's own work; those project names never appear in the captions.