Hard questions
Most questions are answered well from a single glance at the state. Some are not: a judgement that needs a few steps (“does this contract clause cap liability?”), or a category boundary the model keeps getting wrong. Three tools help, from cheapest to most thorough.
Examples
Section titled “Examples”Show the model a few labeled cases, especially the ones near the boundary:
from curva import Choice
team = Choice("Which team?", ["billing", "technical"], examples=[ ({"ticket": "I was charged after cancelling"}, "billing"), ({"ticket": "The invoice PDF won't download"}, "technical"),])No extra calls; the prompt just gets longer. See few-shot examples.
d = client.decide(state, questions, think=True)d.mode # "verbal"think lets the model reason briefly before it answers. The answer is always written out
(verbal mode, since a single logprobs letter leaves no room to reason), with 1,024 more output
tokens so the answer still fits after the reasoning. On OpenRouter the call asks for
reasoning: {"effort": "low"}; other providers get the same request without it, so models that
reason by default simply have the room.
It is slower and costs the reasoning tokens, so use it per question type, not everywhere. Verbal
probabilities are rougher than logprobs, so calibrate with feedback before trusting
the confidence. think with mode: "logprobs" gets 422.
HTTP: "think": true.
Council
Section titled “Council”d = client.decide(state, questions, council=["model-a", "model-b", "model-c"])d["clause"].agreement # share of members that agree with the council's answerSeveral models answer and their probabilities are blended, so confidence drops where they
disagree. Low agreement is the signal to send the case to a person. Combine it with think
for the hardest questions: every member then reasons first. See
council, cascade and race.
Which one
Section titled “Which one”| Symptom | Try |
|---|---|
| Wrong on the same kind of case again and again | examples |
| Needs a few steps of reasoning | think |
| Confidently wrong now and then | council, or min_confidence to abstain |
| Hard only sometimes | a cascade with a stronger model second |

