> This page is for Server SDKs.

> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes.

# set_semantic_gates

> Set how the call checks the semantic gates on its SWAIG functions.

[ref-agentbase]: /docs/server-sdks/reference/python/agents/agent-base

[semanticgate]: /docs/server-sdks/reference/python/agents/semantic-gate

[ai-params]: /docs/swml/reference/calling/ai/params

Set how the call checks the [semantic gates][semanticgate] on its SWAIG functions.
Each argument sets one [AI parameter][ai-params]. An argument left as `None` leaves
that setting as it is, and the platform default applies to a setting that was never
set.

## Parameters

**`enabled`** `bool | None` — default: None

`False` runs gated functions without checking their gates. Sets
`semantic_gates_enabled`; the platform default is `True`.

---

**`timeout_ms`** `int | None` — default: None

How long one gate check may take, from 500 to 10000 milliseconds. A check that
runs out of time blocks the function. Sets `semantic_gate_timeout_ms`; the
platform default is 2500.

---

**`history`** `int | None` — default: None

How many recent conversation entries the decision model reads, from 0 to 100.
Sets `semantic_gate_history`; the platform default is 20.

---

Raises `ValueError` when a value has the wrong type or is out of range. Values
checked before the one that raised stay set.

## Returns

[`AgentBase`][ref-agentbase] -- Returns self for method chaining.

## Examples

```python {5}
from signalwire import AgentBase

agent = AgentBase(name="account-agent", route="/account")
agent.set_prompt_text("You help callers manage their account.")
agent.set_semantic_gates(timeout_ms=4000, history=40)
agent.serve()
```