Let a model consult a stronger model mid-answer, billed on that model's tokens.
The opendunes:advisor helper lets your model consult a stronger one while it works — before it commits to an approach, when it is stuck, or before it calls a task done. The advisor's answer comes back to your model as the helper's result; your model still writes the final answer.
A cheap model does the work, and pays for the expensive one only at the moments that need it.
curl https://opendunes.com/v1/chat/completions \
-H "Authorization: Bearer $OPENDUNES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-haiku-4.5",
"messages": [{ "role": "user", "content": "Plan the database schema for a pharmacy stock app in Setif." }],
"tools": [{
"type": "opendunes:advisor",
"parameters": { "model": "anthropic/claude-sonnet-5" }
}]
}'It works the same on /v1/responses and /v1/messages.
| Parameter | Does |
|---|---|
model | the advisor. Without it, your model names one when it calls; failing that, the request's own model |
name | names this advisor. Several opendunes:advisor entries, each named, offer the model a choice; at most one may go unnamed |
instructions | the advisor's own system instructions |
forward_transcript | true sends the advisor the whole conversation; false (the default) only your model's question |
stream | true streams the advice as it is written, on /v1/responses |
max_completion_tokens · reasoning · temperature | passed to the advisor's call |
An advisor remembers what it was asked before when you send the conversation back with its earlier exchanges in it — the advisor's tool calls and results on Chat Completions, its output items on Responses, its server_tool_use and advisor_tool_result blocks on Messages. Each advisor recalls only its own.
The advisor's tokens are billed in DA at the advisor model's own price, on top of your model's. The request's usage.cost carries the whole charge. A consultation counts as one of the request's 30 helper steps.