GraphiteGraphite by Augsidius
Live models

Care models

Model: aug-care-model · Status: Preview · Scope: agents:care_model · Sessions: yes — the only model with sessions

A care model is an adaptive clinical pathway built around observations. Send a case summary; the care model returns, line by line, the observations it took from the case, the conditions under consideration, the observations most worth collecting next, and the next best actions — each weighted and backed by quoted evidence. Keep sending what you learn about the patient in the same session, and the picture re-ranks.

The loop

Text
 case summary / new findings ──► observations ──► conditions under consideration
            ▲                                              │
            │                                              ▼
   results of actions ◄── next best actions ◄── missing observations
                          (your provider scope)   (emergencies and severe outcomes first)
  1. Observe. Your text is read into observations — present or ruled out — and linked to clinical concepts. Known diagnoses and medicines are kept as context.
  2. Consider. The full observation set is assessed against the evidence base on every update.
  3. Rank what is missing. Observations not yet collected are ranked first by their power to rule out emergencies and severe outcomes, then by how much they would clarify the picture.
  4. Rank actions. Each missing observation becomes the action that settles it — ask, examine, measure, test — and tests that confirm or exclude a condition directly are added.
  5. Respect the care team. provider_scope keeps only actions your team can perform.
  6. Remember. The session keeps every observation, so the next call builds on the last.

Request

JSON
{
  "model": "aug-care-model",
  "stream": true,
  "messages": [{"role": "user", "content": "58 year old man, known T2DM on metformin. 2 days of fever 39.2, severe headache and neck stiffness, no rash. Vomited twice."}],
  "augsidius": {"provider_scope": ["ask", "examine", "test"]}
}

To continue the same case, send augsidius.session_id with only the new information — as text, as observations, or both:

JSON
{
  "model": "aug-care-model",
  "stream": true,
  "messages": [{"role": "user", "content": "Photophobia present. Kernig's sign negative."}],
  "augsidius": {"session_id": "cc47ad4e8fb44713a00d9bf5b6b341ec",
                "observations": [{"concept_id": "c_q7w2…", "present": false}]}
}
augsidius field Description
session_id Omit to start a new session; the response returns its id. Sessions belong to the project of the key, and expire after 6 hours without activity.
observations {"text": "…", "present": true/false} or {"concept_id": "c_…", "present": …} using ids from earlier responses. Up to 50 per call.
provider_scope Any of ask, examine, measure, test. For example a community health worker: ["ask", "examine", "measure"].

Input up to about 3,000 tokens per call (a long case summary). Send long histories as a summary.

Response: one line per item

The result is JSONL — stream it and render each line as it arrives. Lines always come in this order:

Order object How many
1 care_model.session 1
2 care_model.observation one per observation, medicine or procedure taken from this call's text
3 care_model.condition up to 10, ranked
4 care_model.missing_observation up to 12, ranked
5 care_model.action up to 10, ranked
last care_model.summary 1 (in augsidius for SSE / single responses; last line for NDJSON)
Text
{"object":"care_model.session","session_id":"cc47ad4e8fb44713a00d9bf5b6b341ec"}
{"object":"care_model.observation","text":"neck stiffness","status":"present","category":"sign","temporality":"current","value":null,"unit":null,"concept":{"id":"c_3o53…","name":"Nuchal rigidity","kind":"examination_finding"},"codes":[]}
{"object":"care_model.observation","text":"rash","status":"absent","category":"sign",…}
{"object":"care_model.condition","rank":1,"concept":{"id":"c_8kq1…","name":"Bacterial meningitis"},"weight":1.0,"probability_share":0.41,"severity":0.9,"must_not_miss":true,"time_critical":"hours","severe_because":"must not miss","variants":[],"explained_by":["Fever","Headache","Nuchal rigidity"],"evidence":[{"claim":"Bacterial meningitis presents with Nuchal rigidity","certainty":"moderate","sources":[…]}]}
{"object":"care_model.missing_observation","rank":1,"concept":{"id":"c_q7w2…","name":"Photophobia","kind":"complaint"},"weight":1.0,"rules_out_emergency":true,"for":["Bacterial meningitis"],"evidence":[…]}
{"object":"care_model.action","rank":1,"action":"test","label":"Cerebrospinal fluid analysis","concept":{"id":"c_t5m9…","name":"Cerebrospinal fluid analysis"},"weight":1.0,"rules_out_emergency":true,"resolves":["Bacterial meningitis"],"evidence":[{"claim":"Bacterial meningitis is assessed by Cerebrospinal fluid analysis","certainty":"high","sources":[…]}]}

care_model.session

Field Description
session_id Use it in augsidius.session_id to continue this case.

care_model.observation

Field Description
text The words in your input.
status present, absent (ruled out / negated) or possible (suspected; not used as a finding).
category symptom, sign, measurement, lab, test, condition, history, risk_factor, drug, procedure, allergy.
temporality current, past or family (in a relative — not used as the patient's finding).
value, unit For measurements, results and doses.
concept Concept, or null if not matched.
codes Codings.

care_model.condition

Field Description
rank, weight Position and relative weight (top condition = 1.0).
probability_share Share of likelihood among the conditions considered (0–1). A ranking aid, not a calibrated probability of disease.
severity 0–1. High when a serious or life-threatening outcome is associated.
must_not_miss true for conditions that must be actively excluded when plausible. Show prominently.
time_critical How fast harm can occur: minutes, hours, days, weeks, or null.
severe_because Why it is considered severe, when known.
variants Closely related forms grouped under this condition.
explained_by Which of the patient's observations this condition accounts for.
evidence Up to three evidence objects linking the condition to the patient's observations.

care_model.missing_observation

Field Description
rank, weight Position and relative weight.
concept What to find out.
rules_out_emergency true when collecting it helps exclude a must-not-miss or severe condition. These always rank first.
for The conditions it bears on.
evidence Why it matters for those conditions.

care_model.action

Field Description
rank, weight Position and relative weight. Emergency rule-out actions always come first.
action ask, examine, measure or test.
label Ready-to-show text, e.g. "Ask about Photophobia", "Cerebrospinal fluid analysis".
concept What the action targets.
rules_out_emergency true when the action helps exclude an emergency.
resolves The conditions or observations it settles.
evidence Evidence linking the action to those conditions.

care_model.summary

Field Description
emergencies_open Must-not-miss conditions not yet ruled out. Put these at the top of your UI.
unlinked Text that could not be matched to a concept.
counts Number of conditions, missing observations and actions returned.
session_id, billable_calls Also present on the summary for convenience.

Designing with care models

  • Show the emergencies first — emergencies_open, then actions with rules_out_emergency: true, one tap away.
  • Let users answer missing observations directly — Present / Ruled out buttons that post {"concept_id": …, "present": …} back to the session. This is how the model adapts.
  • Record what was done — post the results of actions as new text or observations.
  • Use provider_scope — a nurse-led clinic, a tele-consult and a ward need different actions.
  • Keep a clinician in the loop — conditions support reasoning; they are not diagnoses.

Session endpoints (JSON)

If you prefer plain JSON over JSONL, the same sessions are available as REST resources:

Method Path Description
POST /v1/care-models/sessions Start a session → {"id": "…", "object": "care_model.session"}
POST /v1/care-models/sessions/{id}/observations Body {"observations": [...], "provider_scope": [...]} → care_model.state with hypotheses, emergencies_open, missing, next_best_actions, memory

Session ids work across both styles.

Preview limitations. Ranking is still being tuned: common conditions can sometimes outrank serious ones that fit the findings better, and closely related forms of one condition may appear separately. The emergency rule-out ordering of missing observations and actions is the most reliable part. Numeric thresholds are interpreted from your text (for example "temp 39.2" → fever). Please send feedback.