
A close read of agentic sketching: how one DSL and a hand-written ban list shrank the search space enough for plain enumeration to outscore a Codex agent on 14 continuous games, and where the combination and a PPO baseline each won.
(maxDirection (raydist #0)) returns the direction in which a ray travels farthest, letting a compact expression name a whole class of geometric decisions. A policy outputs a target direction on the unit circle plus two booleans, forward and use, and the character has a finite turn rate, so movement has bounded curvature and the policy has to reason about facing rather than pick a velocity. Pursuit, kiting and obstacle avoidance all fall out of that. 2(not (not A)), (if (not B) A C) where (if B C A) says the same thing, (left (right A)), or (maxDirection (alignment #0 V)), which returns V itself. Some are context-sensitive, excluding a nested test of a condition inside a branch that already tested it. Others are deliberate trades: (distance (equipped A) B) is banned because measuring between base objects is usually enough in these domains. The gain compounds locally, because discarding one expression discards every larger expression that would have used it. 2| Game | Search | Coding agent | Agentic sketching | Sketching, local antipatterns removed | PPO |
|---|---|---|---|---|---|
| ButtonCats | 21 | 17 | 24 | 22 | 157 |
| ButtonCheese | 12 | 9 | 14 | 14 | 9 |
| ButtonCheeseCats | 7 | 6 | 12 | 9 | 6 |
| Chase | 6 | 2 | 8 | 8 | 35 |
| Dodgeball | 12 | 3 | 9 | 9 | 0 |
| Football | −1 | −1 | 0 | −2 | 0 |
| Hide | 1747 | 1675 | 1858 | 1812 | 581 |
| Lawnmower | 57 | 52 | 60 | 60 | 66 |
| MouseCats | 1088 | 758 | 1572 | 1266 | 595 |
| MouseCheeseCats | 11 | 6 | 15 | 11 | 14 |
| Pathfinding | 5 | 6 | 8 | 6 | 2 |
| ProtectTheChild | 20810 | 16402 | 22684 | 20810 | 11098 |
| Seek | 4 | 4 | 4 | 4 | 1 |
| Vacuum | 39 | 30 | 50 | 50 | 33 |

| Method | Normalized score (search = 1.00) | Policies tested | Largest program searched |
|---|---|---|---|
| Coding agent | 0.76 | 539 | 25–163 |
| Search | 1.00 | 1.99 × 10⁶ | 10–30 |
| Agentic sketching | 1.23 | 1.71 × 10⁵ | Holes of 9–36 inside sketches of 27–111 |

| Method | Persistent object | Neural search guidance | Abstraction engine | Substrate | Scaling bottleneck |
|---|---|---|---|---|---|
| Agentic sketching | Fixed hand-written DSL; each game's sketches and fragments end with the game | Pretrained coding agent writes a sketch with one hole; its weights come from outside the benchmark | Hand-written antipatterns remove banned expression schemas | Reactive policies in continuous games, scored by simulator rollouts | Budget split between model calls and enumeration; the DSL holds one numeric constant |
| DreamCoder | Typed λ-calculus DSL plus a recognition model trained by wake-sleep 3 | Recognition model trained on replayed and imagined tasks | Bayesian refactoring extends the language with new abstractions | Synthetic symbolic domains, graphics | Enumerative search explosion |
| LAPS | DreamCoder library plus a search model conditioned on language 4 | Neurally guided search trained jointly with library learning | Library learning driven by natural-language annotations | String editing, image composition, scene reasoning | Needs natural-language annotations; inherits the refactoring cost |
| Stitch | Compressed corpus of programs plus learned abstractions; symbolic throughout 5 | Top-down search guided by the corpus | Anti-unification over e-graphs, orders of magnitude faster than deductive refactoring | Large DSL corpora | Memory on massive corpora |
| LILO | Named, documented code library 6 | LLM synthesis prompted with library functions and specifications | Stitch compression plus automatic documentation of new abstractions | String editing, scene reasoning, graphics composition | Compression limits on arbitrary code; proposal fidelity |
"Perhaps surprisingly, bottom-up enumeration outperforms the coding agent alone, despite running without an LLM on a single laptop CPU." — the authors, in the introduction. 2
"This result suggests that exhaustive symbolic search is a strong baseline when the DSL is compact and carefully designed." — the same authors. 2
"Such antipatterns trade a small amount of expressivity for a much smaller search space." — the same authors, on the design-choice antipatterns. 2
"We currently hand-code antipatterns. A natural next step is to derive them automatically using static analysis or abstract interpretation." — the same authors, listing their own missing piece. 2
"Despite testing an order of magnitude fewer policies than pure search, agentic sketching achieves the highest average normalized score." — the same authors. 2
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.