# Sessions

[RightNow AI](https://www.rightnowai.co/) / [Decision model](https://www.rightnowai.co/docs/decision-model) / [Sessions](https://www.rightnowai.co/docs/decision-model/session-affinity)

Updated 2026-11-12

The `session_id` field is a routing hint.

## Routing affinity

Text caching is automatic. An optional prompt\_cache\_key improves reuse within a workspace. Cache lifetime, minimum size and eviction are not published. See [Text caching](https://www.rightnowai.co/docs/decision-model/caching).

`session_id` helps choose the first model server within your workspace. When it is absent, `prompt_cache_key` supplies the routing hint.

**Illustration of a routing hint.**

```text
[ Choose routing hint ]
  |
  |-- session_id set
  |   use session_id
  |
  |-- else cache key set
  |   use prompt_cache_key
  |
  '-- neither set
      no explicit hint

[ Hint is workspace scoped ]
[ Send a complete request ]
```

Use session\_id, else prompt\_cache\_key, else no hint. Send full state; hints stay within your workspace.

The hint does not guarantee a particular server or cached input. Each decide request still supplies its state and questions.

## Request state

Setting `session_id` on a decide request does not retain state.

Send each request to the stateless decide endpoint.

## Route refusal

- **Listed API**: `404 long_context_not_available`: This route is not available.
- **Retry**: `false`. There is no `Retry-After` header.

These refusals apply to `/v1/system-zero/sessions` and its operation paths.

## Next

[Idempotency](https://www.rightnowai.co/docs/decision-model/idempotency)
