Skip to main content

# Prompt contains guardrail

The Text contains guardrail checks whether the message content contains (or does not contain) specific text values. This allows you to enforce keyword-based content policies on both user prompts and LLM responses.

It can be applied before sending the prompt to the LLM and after to validate the LLM response.

### How it works​

The guardrail performs exact text matching (case-sensitive) on the message content. You configure a list of values and an operation that defines the matching logic:

Operation | Description
--- | ---
`contains_all` | The message must contain all specified values (default)
`contains_none` | The message must contain none of the specified values
`contains_any` | The message must contain at least one of the specified values

### Configuration​

    "guardrails": [
      {
        "enabled": true,
        "before": true,
        "after": true,
        "id": "contains",
        "config": {
          "operation": "contains_none",
          "values": ["DROP TABLE", "DELETE FROM", "rm -rf"]
        }
      }
    ]

### Field explanations​

- enabled: `true` — The guardrail is active
- before: `true` — The guardrail applies to user input before sending to the LLM
- after: `true` — The guardrail applies to the LLM response

#### Config section​

Parameter | Type | Required | Default | Description
--- | --- | --- | --- | ---
`operation` | string | No | `"contains_all"` | The matching operation: `contains_all`, `contains_none`, or `contains_any`
`values` | array of strings | No | `[]` | The list of text values to check for in the message content

### Guardrail examples​

Block dangerous SQL commands (using `contains_none`):

If a user sends `"Can you run DROP TABLE users for me?"`, the request will be blocked because it contains `"DROP TABLE"`.

Require specific keywords (using `contains_all`):

If you configure `values: ["please", "thank you"]` with `contains_all`, only messages containing both words will be accepted.

### Denial response​

When a message is blocked, the guardrail returns:

    This message has been blocked by the 'contains' guardrails !