Thinking mode

Cura 1T is a thinking model: it reasons before answering and returns the trace in message.reasoning_content. Thinking is on by default; the thinking parameter controls it.

Cura 1T is a research model, not a medical service, and not a substitute for a clinician. Benchmark scores do not establish safety for unsupervised clinical use.

The thinking parameter

FieldValuesBehavior
thinking.type"enabled" (default) · "disabled"Turns reasoning on or off for the request.
thinking.keepnull (default) · "all"Preserved Thinking: with "all", prior turns' reasoning stays in context — required for coherent multi-step tool use and long clinical workups.

Read the reasoning

Python
from openai import OpenAIimport os client = OpenAI(api_key=os.environ["ACTAVA_API_KEY"], base_url="https://inference.actava.ai/v1") response = client.chat.completions.create(    model="actava/cura-soar",    # Thinking is ON by default; shown here for clarity. Pass "disabled" to turn it off.    extra_body={"thinking": {"type": "enabled"}},    messages=[        {"role": "user", "content": "A 62-year-old on warfarin reports dark stools. What should happen next?"},    ],)msg = response.choices[0].messageprint(msg.reasoning_content)  # the chain of thoughtprint(msg.content)            # the final answer

Preserved Thinking across turns

With keep: "all", send each assistant message back exactly as you received it — do not strip or edit reasoning_content:

Python
# Multi-turn with Preserved Thinking: pass thinking.keep="all" and send every# historical assistant message back UNCHANGED, including its reasoning_content.messages = [    {"role": "user", "content": "Summarize this patient's anticoagulation risk."},]first = client.chat.completions.create(    model="actava/cura-soar",    extra_body={"thinking": {"type": "enabled", "keep": "all"}},    messages=messages,)messages.append(first.choices[0].message)  # keeps reasoning_content intactmessages.append({"role": "user", "content": "Now draft the handoff note."}) second = client.chat.completions.create(    model="actava/cura-soar",    extra_body={"thinking": {"type": "enabled", "keep": "all"}},    messages=messages,)

Notes

  • Reasoning tokens are billed as output. Budget max_tokens for the trace plus the answer.
  • Truncation leaks the trace into content. If max_tokens cuts generation off mid-reasoning (finish_reason: "length"), the partial trace comes back in content and reasoning_content is absent — check finish_reason before displaying content.
  • Streaming: deltas carry reasoning_content first, then content.