---
title: "Retrieval selection"
manual: "AI Assistant"
version: "main"
permalink: "https://docs.typo3.org/permalink/madj2k/t3-ai-assistant:retrieval-selection@main"
source: "UserGuide/RetrievalSelection.rst"
rendered: "2026-11-01T13:40:15+00:00"
---

# Retrieval selection {#retrieval-selection}

The `intent_selector` step can control three independent areas:

-   `retriever`: select which configured retrievers execute;
-   `presentation_rules`: select the presentation rules used for the answer;
-   `retriever_payload`: provide values for a dynamic vector-payload filter.

The areas are enabled through a multi-select field in the intent-selector
configuration. Areas that are not enabled retain their normal pipeline default.
Empty or missing legacy configuration keeps retriever and presentation-rule
selection enabled and leaves payload filtering disabled.

Each retriever needs a stable `retrieval_identifier`. The identifier is used
for routing and is separate from the human-readable step title.

The selector returns a JSON object containing the enabled areas. The complete
contract is:

```json
{
    "retrieval": {
        "mode": "selected",
        "targets": ["products"]
    },
    "presentationRules": {
        "mode": "selected",
        "rules": ["compact_answer"]
    },
    "retrieverPayload": {
        "values": [12, 15]
    },
    "metadata": {
        "primary_intent": "product_information"
    }
}
```

The retrieval and presentation-rule areas support `all`, `selected`,
`all_except` and `none`. Only identifiers configured on retriever steps or
presentation-rule records may be returned. The payload area uses the plural
`values` key and contains the values selected by the AI.

## Selector configuration {#selector-configuration}

The selector step provides selection instructions and an optional metadata
schema in JSON. When `retriever_payload` is enabled, TYPO3 additionally
configures:

-   **Payload field**

    Dot-notated indexed payload path, for example
    `meta.additional.category_ids`. This can address any indexed metadata
    field, including `category_ids`, `categories` or project-specific
    additional metadata.

-   **Payload retrievers**

    A multi-select list of the retriever steps in the current assistant
    pipeline. Empty selection applies the dynamic filter to all retrievers
    allowed by the retrieval plan. A selected retriever that is not in this
    list runs without the dynamic filter.

-   **Payload conjunction**

    `and` requires every returned value to match; `or` requires at least
    one returned value to match. This is technical configuration and is not
    decided by the AI.

The AI only returns payload values. It does not return the payload field path
or the `and`/`or` operation:

```json
{
    "retrieverPayload": {
        "values": [12, 15]
    }
}
```

If the AI returns no usable values, no dynamic payload filter is added. Static
filters configured on a retriever remain active and are combined with a
dynamic filter using `AND`.

The result is available to later context optimizers, answer generators and
quality gates. Disabled output areas are not overwritten by the selector.
