Talk Session 2: Frameworks & Dev Platforms
Are Small LLMs Ready for Coding Agents?
Denis Akhiyarov — Senior Staff AI Scientist, ServiceNow
Shrink the harness to a single file, minimize context, take one tiny action at a time and verify it immediately — and a local small LLM really can do most of a realistic coding task. What it can't do is close the verification loop.
TL;DR
- A personal itch: on a transatlantic flight he realized how unproductive an AI scientist is without a coding agent while offline, so he built his own local coding agent to find out whether a local LLM on a MacBook can handle realistic agentic coding tasks. It's now open source.
- Three design principles: (1) minimize the context handed to a small LLM, because small local models degrade badly with long context; (2) take one very small action at a time and verify it immediately; (3) minimize reasoning, using it only in recovery loops when something goes wrong.
- The finding: small models do most of the work, but fail at verifying their own work and closing the observe-then-fix loop. Building an app feature, the agent passes most tests but not all — the same story across Qwen 3.6 and Gemma 4.
- Positioning: far lighter than the Codex or Claude Code code bases. He compared against the most minimal harness people use today and against OpenHands, and his is smaller than both, aimed squarely at very small local models. Still work in progress.
Key Points
The origin: a few offline hours over the Atlantic (~00:37–00:38)
A personal story. A few months ago on a transatlantic flight he realized that as an AI scientist he becomes deeply inefficient without a coding agent when disconnected from the internet. So he set out to build his own local coding agent and see whether a local LLM running on his MacBook could handle realistic agentic coding work. He open-sourced it recently; the repo also carries the slides for this talk.
Three design principles: small steps, immediate verification, minimal reasoning (~00:38–00:40)
The agent "does one small thing at a time," built around three ideas:
- Minimize the context passed to the small LLM — small local models are not good when you hand them a lot of context.
- Take very small actions and verify each one immediately.
- Minimize reasoning, invoking it only in recovery loops when things go wrong.
His worked example: give a small model (Qwen 3.6 here) a hello-world-level task — write a small program, compile it, run it. It failed, because it compiled into a temporary directory but needed to execute from a different one. Small models struggle to notice that class of problem, which is exactly why changes must be tiny and verified one at a time.
The harness itself is deliberately spare: a minimal loop in a single file, once around 1,000 lines and now closer to 2,000. The strategy is to avoid big planning steps, take smaller ones, and only backtrack when something breaks.
Evaluation: it can write code, it can't check itself (~00:41–00:42)
He ran a few hundred tests:
- Smoke tests across two model families, Gemma 4 and Qwen: everything works except one Qwen model. This was a sanity check on usability.
- Realistic tasks: building a feature for an app. The agents do most of the work, but the problem is that they fail to verify their work and lack the full observe-what-happened-then-go-back-and-fix loop. The result: most tests pass, but not all. Same story across Qwen 3.6 and Gemma 4.
- An honest caveat: for the record, these runs were on OpenRouter, not locally — running them locally would take ages, and his MacBook has limited memory.
Positioning and comparisons (~00:42–00:43)
His conclusion: a small agent running locally with a minimal harness shows you don't need a large code base like Codex or Claude Code to work with a very small LLM. The comparisons he called out:
- The most minimal harness people currently use (transcribed as "PI harness"), which he notes is much more efficient than Codex or Claude Code.
- OpenHands.
- His is smaller than both, targeted at very small local models.
He was explicit that it's still work in progress with plenty of open issues, and asked the room for feedback.
提到的專案與資源 / Projects & Resources
| 名稱 Name | 說明 | Description | 備註 Notes |
|---|---|---|---|
| 他的本機 coding agent(字幕作 "ask me") | 單檔、約 2k 行的極簡 agent loop,為本機小 LLM 設計;近期開源,repo 內含本場簡報 | Single-file, ~2k-line minimal agent loop for local small LLMs; recently open-sourced, slides in the repo | 名稱與 repo 網址待確認 / name and repo URL to verify |
| Qwen 3.6 | 評估用的小模型家族之一 | One of the two small-model families evaluated | 字幕作 "quen 3.6" / "Quinn" |
| Gemma 4 | 評估用的另一個小模型家族 | The other small-model family evaluated | |
| OpenHands | 對照比較的開源 agent harness | Open-source agent harness used as a comparison | |
| OpenRouter | 實際跑評估的推論服務(非本機) | The inference service the evals actually ran on (not local) |
逐字稿勘誤 / Transcript Corrections
| 字幕原文 Heard as | 應為 Should be |
|---|---|
| Dennis Akiro | Denis Akhiyarov |
| Service Now | ServiceNow |
| quen / Quinn | Qwen |
| cloth code / codeex | Claude Code / Codex |
| hardness | harness |
| open hands | OpenHands |
| open router | OpenRouter |
待確認 / To Verify
- Agent 名稱字幕作 "ask me",repo 名稱與網址待確認(投影片上有連結)。/ The agent's name was transcribed as "ask me"; the repo name and URL need confirming from the slides.
- 他比較的對象 "PI harness"(自稱是目前最精簡的 harness)正確名稱待確認,不硬猜。/ The comparison target transcribed as "PI harness" — described as the most minimal harness in current use — needs its real name confirmed.
- 「1,000 行 → 接近 2k 行」是指整個 agent 還是單一 loop 檔案,講者說法是「就一個檔案」,可再確認。/ Whether the ~1k→2k line count covers the whole agent or just the single loop file.
- Gemma 4 / Qwen 3.6 的確切模型版本與參數規模未在台上說明。/ Exact model versions and parameter sizes for Gemma 4 and Qwen 3.6 were not stated.