← All posts

All 19 Keating Web Tools Now Expose Real Parameter Schemas

The fix that landed in 0.3.1: all tool registrations now describe real JSON Schema parameters so the model can actually supply arguments instead of guessing.

Keating's web model now receives the full teaching tool surface with proper JSON Schema parameter definitions. The important fix was replacing createSimpleTool, which produced empty properties objects, with createTool registrations that describe each tool's actual arguments.

What Changed

All 19 Keating tools are now available to the web model with schemas it can actually call. Topic-driven tools expose topic, feedback exposes a constrained signal, prompt evaluation requires prompt, and the optional speech path exposes the full keating_voice shape.

| Tool | Parameters | animate | topic | | bench | topic (optional) | | evolve | topic (optional) | | quiz | topic | | feedback | signal (up/down/confused), topic | | policy | none | | outputs | none | | learner_state | none | | auto_improve | topic (optional) | | improve | action (optional) | | trace | type (optional) | | prompt_evolve | name (optional) | | prompt_eval | prompt | | timeline | none | | due | none | | keating_voice | text, tags, voice, pace, affect |

Why It Matters

Empty tool schemas make the model guess at invisible arguments. With real schemas, the web teacher can reliably choose the right tool and pass valid arguments for lessons, checks, benchmarks, learner feedback, prompt evaluation, due work, timelines, and voice output.

The web build compiles successfully with the new tool definitions.