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

# DeferredToolsControl

Opt-in versioned router-level deferred-tool protocol. Replay assistant reasoning unchanged on continuation; keep the catalog unchanged.

## Example Usage

```typescript theme={null}
import { DeferredToolsControl } from "@openrouter/sdk/models";

let value: DeferredToolsControl = {
  profile: "portable",
  protocol: "v1",
  search: {
    type: "bm25",
  },
  validation: "runtime",
};
```

## Fields

| Field | Type | Required | Description | Example |
| - | - | - | - | - |
| `profile` | [models.Profile](../models/profile.mdx) | ✔️ | Loading profile. Only `portable` is available in this release: OpenRouter serves deferral with router-built search and call wrappers on any model. | |
| `protocol` | [models.Protocol](../models/protocol.mdx) | ✔️ | N/A | |
| `search` | *models.DeferredToolsSearchStrategy* | ✔️ | Router-local regex/BM25 or caller-owned custom search. | \{ "max\_results": 5, "type": "bm25" } |
| `validation` | [models.Validation](../models/validation.mdx) | ✔️ | Where tool-call arguments are checked against the original schema. Only `runtime` (in OpenRouter) is available in this release. | |
