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

# ai_context - Topics

> Free text that can provide context about a topic to the Omni Agent.

export const endGoal_0 = "improve AI query results"

Free text that can provide context to the [Omni Agent](/ai/chat). Refer to the [Optimizing models for AI](/modeling/develop/ai-optimization) guide for more information on best practices.

## Syntax

```yaml theme={null}
ai_context: "<context_text>"
```

Or for multiline context:

```yaml theme={null}
ai_context: |
  <multiline_context_text>
```

## Properties

<ParamField path="ai_context" type="string">
  Free text that provides context to the Omni Agent. Can include behavioral prompting, instructions for tone, or other guidance to {endGoal_0}.

  The following references are supported for this field:

  * [**User attributes**](/administration/users/attributes), referenced with `{{omni_attributes.<attribute_name>}}`. This allows you to personalize the context for each user.
  * **Model [`constants`](/modeling/models/constants)**, referenced using `@{constant_name}` syntax. This allows you to maintain reusable instruction blocks such as tone, privacy guidance, and domain context instead of duplicating them.
  * **`omni_llm` namespace,** which allows you to tailor context to specific AI model tiers:

    * `{{ omni_llm.model }}` — Substitutes the active model's family name, which will be one of: `smartest`, `standard`, or `fastest`
    * `{{# omni_llm.<family> }}...{{/ omni_llm.<family> }}` — Conditional sections for specific model tiers. `<family>` must be one of `smartest`, `standard`, or `fastest`
    * `{{^ omni_llm.<family> }}...{{/ omni_llm.<family> }}` — Inverse sections, which apply when the specified tier is **not** used. `<family>` must be one of `smartest`, `standard`, or `fastest`

    See the [Examples section](#model-specific) for more information.
  * **`omni_agent` namespace,** which allows you to scope context to specific AI agents:

    * `{{ omni_agent.name }}` — Substitutes the active agent's name, which will be one of: `analyze`, `build`, or `simple_summarize`
    * `{{# omni_agent.<agent> }}...{{/ omni_agent.<agent> }}` — Conditional sections for specific agents. `<agent>` must be one of `analyze`, `build`, or `simple_summarize`
    * `{{^ omni_agent.<agent> }}...{{/ omni_agent.<agent> }}` — Inverse sections, which apply when the specified agent is **not** used. `<agent>` must be one of `analyze`, `build`, or `simple_summarize`

    See the [Examples section](#agent-specific) for more information.
</ParamField>

## Examples

### Personalized context using user attributes

```yaml title="Personalized context using user attributes" theme={null}
ai_context: |
  You are a sales analyst. When someone asks about their team or pipeline, always filter by account.segment = {{omni_attributes.segment}} and account.region = {{omni_attributes.region}}.
```

<h3 id="model-specific">
  Model-specific analysis depth
</h3>

The following context will apply when the model tier is `smartest`.

```yaml title="Applies when the model tier is smartest" wrap theme={null}
ai_context: |
  This topic focuses on financial transactions.

  {{# omni_llm.smartest }}
  For complex multi-table queries, consider indirect relationships and provide rationale for join path selection.
  {{/ omni_llm.smartest }}
```

The following context will apply when the model tier is **not** `smartest`.

```yaml title="Applies when the model tier is not smartest" wrap theme={null}
ai_context: |
  This topic focuses on financial transactions.

  {{^ omni_llm.smartest }}
  Use straightforward joins between directly related tables.
  {{/ omni_llm.smartest }}
```

<h3 id="agent-specific">
  Agent-specific context
</h3>

The following context provides query optimization tips to the `analyze` agent while providing field relationship guidance to the `build` agent.

```yaml title="Agent-specific optimization and field guidance" wrap theme={null}
ai_context: |
  This topic contains e-commerce order data.

  {{# omni_agent.analyze }}
  For optimal query performance, always filter by order_date before joining to customer details. The orders table is very large.
  {{/ omni_agent.analyze }}

  {{# omni_agent.build }}
  When generating field relationships, note that order_id is the primary key. The customer_id foreign key links to the customers table, and product_id links to products.
  {{/ omni_agent.build }}
```

### Using constant references

Reference [`constants`](/modeling/models/constants) to combine reusable context blocks with topic-specific guidance:

```yaml title="Topic file with constant references" theme={null}
ai_context: |
  @{tone} @{domain_finance}
  This topic covers customer invoices. One row is an invoice.
  Focus on payment status and overdue amounts.
```

The `@{tone}` and `@{domain_finance}` references will be substituted with the `constant` values defined in the model file.

### Behavioral prompting

```yaml title="Behavioral prompting" theme={null}
ai_context: |
  you are the head of finance. you are concerned with the status of customer payments. you often need to project into the future how many invoices are due and for how much. you also need to know if any invoices are late so you can reach out to those customers.
```
