> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stateset.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Settings

> Per-agent behaviour — model choice, skip rules, escalation, and human takeover.

# Settings

Settings are where an agent's behaviour is configured: which model it runs, when it stays quiet,
and when it hands off to a human. This is the resource you tune most often once an agent is live.

## Model

| Field            | Type    | Notes                  |
| ---------------- | ------- | ---------------------- |
| `model_provider` | string  | Which provider to call |
| `model_name`     | string  | The model              |
| `model_type`     | string  | Model category         |
| `temperature`    | float   | Sampling temperature   |
| `max_tokens`     | integer | Response ceiling       |

<Tip>
  Lower `temperature` for agents that quote policy or amounts, where you want the same answer every
  time. Raise it only for conversational tone.
</Tip>

## When the agent stays quiet

Skip rules are the cheapest safety mechanism available — the agent never engages rather than
engaging badly.

| Field                     | Type    | Effect                                     |
| ------------------------- | ------- | ------------------------------------------ |
| `skip_emails`             | boolean | Skip email channel entirely                |
| `skip_channels`           | array   | Channels to skip                           |
| `skip_tags`               | array   | Skip tickets carrying these tags           |
| `skip_subjects`           | array   | Skip on subject match                      |
| `skip_instagram_messages` | boolean | Skip Instagram DMs                         |
| `allowed_intents`         | array   | **Allow-list** — only act on these intents |
| `time_threshold`          | integer | Age threshold before the agent declines    |
| `out_of_office_keywords`  | array   | Treat as out-of-office and skip            |

<Note>
  `allowed_intents` is an allow-list, not a blocklist. Leaving it narrow is the safest posture for a
  new agent — it acts only on intents you have explicitly approved.
</Note>

## Escalation and human takeover

| Field                     | Type    | Effect                                         |
| ------------------------- | ------- | ---------------------------------------------- |
| `agent_take_over_tag`     | boolean | Whether a tag triggers takeover                |
| `agent_takeover_phrases`  | array   | Phrases that hand control to a human           |
| `health_concern_keywords` | array   | Health-related language that forces escalation |
| `escalation_team_id`      | integer | Team that receives escalations                 |
| `escalation_tag_name`     | string  | Tag applied on escalation                      |
| `assignee_user_id`        | integer | Default assignee                               |
| `agent_emails`            | array   | Addresses the agent sends from                 |

<Warning>
  `health_concern_keywords` exists so an agent never improvises on a medical or safety matter. Keep
  it populated — an unset list means those conversations are handled like any other.
</Warning>

## Endpoints

| Method   | Path               |                                                   |
| -------- | ------------------ | ------------------------------------------------- |
| `GET`    | `/v1/settings`     | [List](/response-api-reference/settings/list)     |
| `GET`    | `/v1/settings/:id` | [Get](/response-api-reference/settings/get)       |
| `POST`   | `/v1/settings`     | [Create](/response-api-reference/settings/create) |
| `PUT`    | `/v1/settings/:id` | [Update](/response-api-reference/settings/update) |
| `DELETE` | `/v1/settings/:id` | [Delete](/response-api-reference/settings/delete) |

## Example

```bash theme={null}
curl https://api.stateset.com/v1/settings \
  -H "Authorization: Bearer $STATESET_API_KEY"
```

Tighten an agent while you build confidence in it:

```bash theme={null}
curl -X PUT https://api.stateset.com/v1/settings/42 \
  -H "Authorization: Bearer $STATESET_API_KEY" \
  -H 'content-type: application/json' \
  -d '{
    "temperature": 0.2,
    "allowed_intents": ["order_status", "shipping_address_change"],
    "agent_takeover_phrases": ["speak to a human", "this is urgent"],
    "escalation_tag_name": "needs-human"
  }'
```

## The same controls elsewhere

These settings are the per-agent view. The equivalent controls at the workflow layer are in
[Workflow Studio](/stateset-response/responsecx-workflow-studio) — skip rules, escalation
patterns, and the review gate — and in the
[Temporal engine's AutomationConfig](/next-temporal/configuration).

## Related

* [Rules](/response-api-reference/rules) — named policy constraints
* [Response Public API](/stateset-response/response-public-api) — configure settings programmatically
