docs / troubleshooting / routing-not-working

Routing not working

Routing decisions look wrong or unpredictable. Diagnose with the routing log and the capability map.

1. Look at the decision

tail -1 data/routing_log.jsonl | jq

The latest routing decision includes the prompt classifier output, the constraints, the candidate models with their scores, the chosen model, and the reason it was chosen.

2. Verify the capability map is fresh

jq '.meta' benchmarks/results/capability_map.json

If confidence: low shows up everywhere, you're running on bootstrap scores. Run a benchmark: python -m benchmarks --quick.

3. Is the classifier picking the right task type?

If a code prompt is being classified as general and routed to a non-coding model, the classifier missed it. Check the classifier output in the routing log. As a workaround, pin the task type: extra_body={'task_type': 'coding'}.

4. Override and move on

If you know which model you want, skip routing entirely: model='qwen2.5-coder:7b' instead of model='auto'. The override is logged so you can revisit later.

If routing keeps surprising you, file an issue with the routing-log entry attached. The classifier is rule-based and we tune it from real failure cases.