> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# 工具中断

## 概述

默认情况下，用户可随时中断智能体，包括工具执行期间。但对于某些工具，这并不合适：例如查询后播报的付款确认或合规免责声明应完整传达。

`interruption_mode` 字段可针对每个工具控制此行为。Webhook 工具、客户端工具、系统工具和 MCP 服务器均支持此字段。

## 中断模式

| 值                              | 控制台标签  | 行为                         |
| ------------------------------ | ------ | -------------------------- |
| `allow`                        | 允许     | 用户可随时中断智能体。这是默认设置。         |
| `disable_during_tool`          | 执行期间禁用 | 仅在工具运行时禁止中断。之后的智能体回复仍可被中断。 |
| `disable_during_tool_and_turn` | 整个轮次禁用 | 工具运行期间及其后的智能体回复期间均禁止中断。    |

当多个工具并行运行时，该轮次将采用其中最严格的模式。

> **Note**
>
> 布尔字段 `disable_interruptions` 已弃用，请改用 `interruption_mode`。这两个字段会保持同步，因此 `disable_interruptions: true` 等同于 `interruption_mode:
>   "disable_during_tool_and_turn"`，现有集成无需修改即可继续正常运行。

## 配置

#### 通过控制台更新

#### 前往工具配置

在 **工具** 标签页中选择要配置的工具。

#### 设置中断模式

打开 **高级设置**，然后在 **中断** 下选择一个选项。

#### 保存配置

点击 **保存** 应用更改。

#### 通过 CLI 更新

#### 拉取工具配置

```bash
elevenlabs tools pull
```

#### 编辑 \`tool_configs/\<tool-name>.json\`

在工具上设置 `interruption_mode`：

```json
{
  "type": "webhook",
  "name": "confirm_payment",
  "description": "Confirms a pending payment",
  "interruption_mode": "disable_during_tool_and_turn"
}
```

#### 推送更改

```bash
elevenlabs tools push
```

#### 通过 API 更新

```python
from elevenlabs import ElevenLabs, ToolRequestModel

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.tools.update(
    tool_id="tool_7101k5zvyjhmfg983brhmhkd98n6",
    request=ToolRequestModel(
        tool_config={
            "type": "webhook",
            "name": "confirm_payment",
            "description": "Confirms a pending payment",
            "interruption_mode": "disable_during_tool_and_turn",
            "api_schema": {
                "url": "https://api.example.com/payments/confirm",
                "method": "POST",
            },
        },
    ),
)
```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.tools.update("tool_7101k5zvyjhmfg983brhmhkd98n6", {
  toolConfig: {
    type: "webhook",
    name: "confirm_payment",
    description: "Confirms a pending payment",
    interruptionMode: "disable_during_tool_and_turn",
    apiSchema: {
      url: "https://api.example.com/payments/confirm",
      method: "POST",
    },
  },
});
```

## MCP 服务器

[MCP 服务器](/docs/zh/eleven-agents/customization/tools/mcp)带有自身的 `interruption_mode`，适用于其公开的每个工具。单个工具可通过服务器的 `tool_config_overrides` 覆盖该设置，工具上设置的值优先于服务器默认值。

## 最佳实践

* 当工具调用本身必须完成（如转接或按键序列），但用户应能在之后中断回复时，请使用 `disable_during_tool`。
* 当工具后的回复必须完整播报（如免责声明或确认复述）时，请使用 `disable_during_tool_and_turn`。
* 其他情况请保留默认的 `allow`，因为禁止中断会让对话的响应性变差。