演講 Session 2: Frameworks & Dev Platforms
小模型準備好當 Coding Agent 了嗎?
Denis Akhiyarov — Senior Staff AI Scientist, ServiceNow
把 harness 縮到一個檔案、把 context 壓到最小、每次只做一個小動作並立刻驗證,本機小模型確實能完成大部分真實 coding 任務——卡住的地方不是寫程式,而是自我驗證那一段閉環。
TL;DR
- 動機很個人:一次跨大西洋航班上斷網,他發現「身為 AI 科學家,沒有 coding agent 我效率低得可怕」,於是決定自己寫一個本機 coding agent,測試 MacBook 上跑的本地 LLM 能不能處理真實的 agentic coding 任務。已開源。
- 三個設計原則:(1) 把傳給小模型的 context 壓到最小——小模型吃大量 context 表現會壞掉;(2) 一次只做一個很小的動作,並立刻驗證;(3) 盡量少用 reasoning,只在出錯後的 recovery loop 才動用。
- 實測結論:小模型能完成大部分工作,但做不到自我驗證與 observe-fix 的完整閉環——開發一個 app 功能時「大多數測試會過,但不是全部」;Qwen 3.6 與 Gemma 4 兩個家族都是同樣的故事。
- 定位:比 Codex / Claude Code 這種大型 code base 輕巧得多;他也拿去和目前最精簡的 harness 以及 OpenHands 比較,結論是他的更小,專為本機超小模型設計,仍在 work in progress。
重點整理
起點:飛機上沒網路的那幾個小時(約 00:37–00:38)
這是一個很個人的故事。幾個月前他搭跨大西洋航班,意識到身為 AI 科學家,一旦斷線、沒有 coding agent,自己會變得非常沒效率。於是他決定寫一個自己的本機 coding agent,看看跑在 MacBook 上的本地 LLM 到底能不能處理真實的 agentic coding 任務。這個專案最近才開源,repo 裡也放了這場簡報。
三個設計原則:小、驗證、少想(約 00:38–00:40)
這個 agent「一次只做一件小事」,設計圍繞三個關鍵想法:
- 最小化傳給小模型的 context。本機跑的小語言模型在被塞入大量 context 時表現並不好。
- 一次只做極小的動作,做完立刻驗證。
- 盡可能減少 reasoning,只在出錯後的 recovery loop 才啟用。
他舉的例子很具體:給小模型(這裡是 Qwen 3.6)一個 hello world 等級的任務——寫個小程式、編譯、執行。結果失敗了,因為它把程式編譯進暫存目錄,卻要從另一個目錄執行。這類事情對小模型來說特別難自己看出來,所以只能把改動切得非常小、逐一驗證。
Harness 本身很簡樸:一個 minimal loop、就一個檔案,原本約 1,000 行,現在接近 2,000 行。核心策略是少做大的 planning 步驟、多走小步,只有出錯時才回頭。
評估:能寫,但不會自我驗證(約 00:41–00:42)
他跑了數百個測試:
- Smoke test:兩個 LLM 家族——Gemma 4 與 Qwen——基本上都能用,只有一個 Qwen 模型不行。這一步只是確認可用性的 sanity check。
- 真實任務:替一個 app 開發功能。發現這些 agent 能完成大部分工作,但問題出在它們無法驗證自己的成果、缺少「觀察發生了什麼 → 回頭修正」的完整閉環。結果就是大多數測試會過,但不是全部。Qwen 3.6 與 Gemma 4 都是同樣的模式。
- 一個誠實的但書:這些評估其實跑在 OpenRouter 上、不是本機——因為本機跑會花掉太多時間,而且他的 MacBook 記憶體有限。
定位與比較(約 00:42–00:43)
他的總結是:這是一個用極簡 harness 在本機跑的小 agent,證明了不需要 Codex 或 Claude Code 那樣龐大的 code base,也能靠很小的 LLM 把事情做起來。他也做了幾個比較:
- 對比目前大家在用的最精簡 harness(字幕作 "PI harness"),他說那個比 Codex 或 Claude Code 有效率得多。
- 也和 OpenHands 做了比較。
- 結論是他這個比上述兩者都更小,專門面向本機的超小 LLM。
他強調專案仍是 work in progress、還有很多問題,並在台上直接徵求回饋。
提到的專案與資源 / 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.