Kestrel handles all eight task categories — factual questions, math, sentiment, summarization, entity extraction, code debugging, logic puzzles, and code generation — in a single pipeline. Work starts with a deterministic classifier. It reads the task and works out what kind it is by pattern matching, with no model call: it costs nothing, and it cannot hallucinate a category. That decision drives everything downstream — which model answers, and whether the task leaves the container at all. A quantized 4B model ships inside the image and runs on CPU. I benchmarked it category by category and gave it only the work it genuinely handles well; those tasks never touch the API and cost nothing. The rest are routed per category to the model best suited to them. The part I spent most of my time on is checking answers with code rather than trusting the model. When the agent writes a function, it runs it against the examples in the prompt, and a failure goes back with the failing case attached — an interpreter is a far better judge of whether code works than the model that wrote it. When a task demands a specific length or format, the constraint is parsed out and the output is counted in Python, then rewritten if it doesn't comply, because no language model reliably counts its own output. It scored 100% on the graded set, and 31 out of 32 on brand-new tasks it had never seen — written from scratch, not reworded. That second number is the harder test, and the one that shows it generalizes rather than memorizes. It also holds up when things break: dead endpoints, malformed replies and oversized inputs still produce a valid, complete answer for every task, and a deadline guard guarantees results come back in time. Nothing is downloaded at runtime, and nothing is hardcoded — every answer is produced live. Cuts were all fat — the intro clause, repeated "at all"s, a redundant sentence in the accuracy paragraph. Every substantive claim survived.
Category tags: