Skip to content

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.

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.

d = client.decide(state, questions, council=["model-a", "model-b", "model-c"])
d["clause"].agreement # share of members that agree with the council's answer

Several 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.

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

© 2026 Tarkova Private Limited.