> This page is for version v0.24.1.
> For other versions, use one of these documentation indexes:
> - Latest (default): https://docs.nvidia.com/nemo/guardrails/latest/llms.txt
> - v0.24.1: https://docs.nvidia.com/nemo/guardrails/v0.24.1/llms.txt
> - v0.24.0: https://docs.nvidia.com/nemo/guardrails/v0.24.0/llms.txt
> - v0.23.0: https://docs.nvidia.com/nemo/guardrails/v0.23.0/llms.txt
> - v0.22.0: https://docs.nvidia.com/nemo/guardrails/v0.22.0/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/guardrails/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/guardrails/_mcp/server.

# nemoguardrails.library.ai_defense.actions

Prompt/Response protection using Cisco AI Defense.

## Module Contents

### Functions

| Name                                                                                                    | Description                                                  |
| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| [`_ai_defense_failure_outcome`](#nemoguardrails-library-ai_defense-actions-_ai_defense_failure_outcome) | -                                                            |
| [`_ai_defense_outcome`](#nemoguardrails-library-ai_defense-actions-_ai_defense_outcome)                 | -                                                            |
| [`ai_defense_inspect`](#nemoguardrails-library-ai_defense-actions-ai_defense_inspect)                   | Inspect a user prompt or bot response with Cisco AI Defense. |

### Data

[`DEFAULT_TIMEOUT`](#nemoguardrails-library-ai_defense-actions-DEFAULT_TIMEOUT)

[`log`](#nemoguardrails-library-ai_defense-actions-log)

### API

```python
nemoguardrails.library.ai_defense.actions._ai_defense_failure_outcome(
    fail_open: bool,
    failure: str
) -> nemoguardrails.actions.rail_outcome.RailOutcome
```

```python
nemoguardrails.library.ai_defense.actions._ai_defense_outcome(
    is_blocked: bool
) -> nemoguardrails.actions.rail_outcome.RailOutcome
```

```python
nemoguardrails.library.ai_defense.actions.ai_defense_inspect(
    config: nemoguardrails.RailsConfig,
    user_prompt: typing.Optional[str] = None,
    bot_response: typing.Optional[str] = None,
    http_client: typing.Optional[nemoguardrails.http.HTTPClient] = None,
    kwargs = {}
) -> nemoguardrails.actions.rail_outcome.RailOutcome
```

async

Inspect a user prompt or bot response with Cisco AI Defense.

A safe response is allowed and an unsafe response is blocked. Transport
failures and malformed responses follow the configured `fail_open`
policy, which defaults to fail closed.

**Parameters:**

**`config`** `RailsConfig`

Rails configuration containing the AI Defense settings.

---

**`user_prompt`** `Optional[str]` — default: None

User content to inspect.

---

**`bot_response`** `Optional[str]` — default: None

Bot content to inspect. Takes precedence over
`user_prompt` when both are provided.

---

**`http_client`** `Optional[HTTPClient]` — default: None

Optional caller-owned HTTP client.

---

**`**kwargs`** — default: \{}

Additional action parameters. The `user` value, when
present, is forwarded as request metadata.

---

**Returns:** `RailOutcome`

The allow or block outcome from AI Defense or the failure policy.

**Raises:**

* `ValueError`: If the required environment variables or content are
  missing.

```python
nemoguardrails.library.ai_defense.actions.DEFAULT_TIMEOUT = 30.0
```

```python
nemoguardrails.library.ai_defense.actions.log = logging.getLogger(__name__)
```