DuckWalk: a rubber duck that won't talk to you until you go outside
Описание и применение
DuckWalk – локальный AI‑ассистент, который обнаруживает, когда разработчик застрял, заставляет выйти на прогулку и помогает решить проблему, минимизируя время перед экраном.
Задача
Developers skip breaks to avoid losing mental context, leading to burnout and reduced productivity.
Результат
DuckWalk achieved zero failures over 23 walk sessions in a 2‑hour run, handled multiple failure drills (Ollama down, phone offline, worker restart, malformed input) gracefully, and improved a 4B model’s rubric score from 68% to 98% via fine‑tuning.
Рабочий процесс
- Detect stuck state using TabPFN on 5‑minute windows of signals
- Score window and compare to threshold
- If threshold crossed, capture breadcrumb (branch, diff, last error)
- Compress breadcrumb into 60‑word note with Gemma
- Push note to phone via self‑hosted push server
- User taps "Walk"; screen turns black with stop button
- Duck speaks one question at a time via fine‑tuned Qwen3.5‑4B voice
- User walks and answers questions aloud
- Duck records audio, transcribes with whisper.cpp
- Duck continues dialogue until walk ends
- After walk, display brief summary of insights and next steps
Доказательства
DuckWalk watches for when you're stuck, writes down exactly where you are so there's nothing to lose by leaving, and pings your phone with one line.
A laptop daemon watches signals like time since your last break, failed test runs, how many times you've touched the same file, and undo ratio, and scores each 5‑minute window with TabPFN.
Cross a threshold, and it grabs a breadcrumb (your branch, diff, last terminal error) and compresses it into a 60-word note with Gemma.
The rule I held myself to the whole build: minimize time looking at a screen.
For reliability: a 2-hour run, 23 walk sessions back to back across 5 bug scenarios and 3 scripted conversations, zero failures and no manual intervention.
All four failure drills pass. Ollama going down makes the nudge and brief fall back to canned text instead of killing the walk.
- Дата записи: 2026-10-12T03:41:07.941Z