Skip to main content
All Reasoning features use the same ReasonMessage format. Build one renderer and reuse it for findings, summaries, and other Reasoning output.

Message format

A message contains text and an entities array. Each entity has a kind and a string value:
A Reasoning message
Replace each {{n}} with the display value of entities[n], resolving it by kind using your application’s data. For example, the message above could read:
Alex Morgan cannot work any shift because of Weekly rest.
Indices belong to each message’s own array. Replace every occurrence, including repeated references. When entities is empty, display text directly.

Entity reference types

Handle every entity reference type before showing Reasoning output to users, even if your first responses only contain a few types.
Render resolved values as text or links. Use readable fallbacks for missing records, and avoid using generated prose to drive application logic.