# 助手概念详解

深入了解助手（Assistant）的设计理念和配置细节。

---

## 什么是助手？

**助手**是 RAS 中的核心实体，代表一个具有特定角色、能力和行为的 AI 对话智能体。每个助手都是独立配置的，可以服务于不同的业务场景。

### 助手的组成

```mermaid
flowchart TB
    subgraph Assistant["助手"]
        Identity[身份定义]
        Models[模型配置]
        Capabilities[能力扩展]
        Behavior[行为控制]
    end

    subgraph Identity
        Name[名称]
        Prompt[系统提示词]
        Language[语言]
    end

    subgraph Models
        LLM[LLM 模型]
        ASR[ASR 模型]
        TTS[TTS 声音]
    end

    subgraph Capabilities
        Tools[工具调用]
        KB[知识库]
    end

    subgraph Behavior
        Greeting[开场白]
        Interruption[打断设置]
        Output[输出模式]
    end
```

---

## 身份定义

### 系统提示词

系统提示词是助手最重要的配置，它定义了：

| 要素 | 说明 | 示例 |
|------|------|------|
| **角色** | 助手扮演什么身份 | "你是一名专业的医疗咨询顾问" |
| **能力** | 助手能做什么 | "你可以回答健康问题，但不能开具处方" |
| **限制** | 助手不能做什么 | "不要讨论政治话题" |
| **风格** | 回复的语气和格式 | "保持友好专业，回答简洁" |

### 提示词模板

```markdown
## 角色
你是{{company}}的智能客服助手"小智"。

## 任务
- 回答用户关于产品和服务的问题
- 协助处理订单查询和售后问题
- 收集用户反馈

## 限制
- 不讨论竞争对手产品
- 不承诺超出权限的优惠
- 遇到复杂问题引导用户联系人工客服

## 风格
- 语气友好亲切
- 回答简洁明了，每次 2-3 句话
- 适当使用语气词使对话更自然
```

---

## 模型配置

### LLM 模型

大语言模型是助手的"大脑"，负责理解用户意图和生成回复。

| 参数 | 说明 | 建议值 |
|------|------|--------|
| **温度** | 回复随机性，越高越发散 | 0.7 (对话) / 0.3 (问答) |
| **最大 Token** | 单次回复长度上限 | 256-512 |
| **上下文长度** | 记忆的对话轮数 | 10-20 轮 |

### ASR 模型

语音识别模型将用户语音转为文字。

| 配置 | 说明 |
|------|------|
| **语言** | 识别语言，如中文、英文 |
| **热词** | 提高特定词汇识别率 |
| **标点** | 是否自动添加标点 |

### TTS 声音

语音合成将助手回复转为语音输出。

| 配置 | 说明 |
|------|------|
| **音色** | 选择声音角色 |
| **语速** | 说话速度，0.5-2.0 |
| **音调** | 声音高低 |

---

## 能力扩展

### 工具调用

通过工具让助手能够执行外部操作：

```mermaid
flowchart LR
    User[用户] -->|"查询订单"| Assistant[助手]
    Assistant -->|调用工具| API[订单 API]
    API -->|返回数据| Assistant
    Assistant -->|回复| User
```

**工具定义示例：**

```json
{
  "name": "get_order_status",
  "description": "查询用户订单状态",
  "parameters": {
    "type": "object",
    "properties": {
      "order_id": {
        "type": "string",
        "description": "订单编号"
      }
    },
    "required": ["order_id"]
  }
}
```

### 知识库关联

让助手基于私有文档回答问题：

```mermaid
flowchart LR
    Question[用户问题] --> Search[知识检索]
    Search --> KB[(知识库)]
    KB --> Context[相关内容]
    Context --> LLM[LLM]
    LLM --> Answer[回答]
```

---

## 行为控制

### 开场白设置

| 模式 | 说明 |
|------|------|
| **助手先说** | 连接后助手主动问候 |
| **用户先说** | 等待用户开口 |
| **静默** | 不自动开场 |

### 打断设置

| 选项 | 说明 |
|------|------|
| **允许打断** | 用户可随时插话 |
| **禁止打断** | 助手说完才能输入 |
| **灵敏度** | 打断触发的敏感程度 |

### 输出模式

| 模式 | 说明 |
|------|------|
| **语音** | TTS 语音输出 |
| **文本** | 纯文本输出 |
| **混合** | 同时输出语音和文本 |

---

## 助手版本管理

### 草稿与发布

```mermaid
gitGraph
    commit id: "创建助手"
    commit id: "配置提示词"
    commit id: "添加工具"
    branch published
    checkout published
    commit id: "发布 v1"
    checkout main
    commit id: "修改提示词"
    commit id: "调整参数"
    checkout published
    merge main id: "发布 v2"
```

- **草稿**: 可随时修改，仅供测试
- **发布**: 正式上线，用于生产环境

### 配置导入导出

支持以 JSON 格式导入导出助手配置，便于：

- 备份和恢复
- 跨环境迁移
- 团队共享模板

---

## 最佳实践

### 1. 提示词工程

- **明确角色**: 清晰定义助手身份
- **设定边界**: 明确能做什么、不能做什么
- **控制长度**: 语音场景下回复要简短

### 2. 模型选择

- **平衡成本与效果**: 不一定需要最强模型
- **测试不同供应商**: 找到最适合场景的组合
- **考虑延迟**: 语音交互对延迟敏感

### 3. 工具设计

- **单一职责**: 每个工具做一件事
- **清晰描述**: 让 LLM 正确理解何时调用
- **错误处理**: 工具失败时优雅降级

---

## 相关文档

- [助手配置](../assistants/configuration.md) - 配置界面详解
- [提示词指南](../assistants/prompts.md) - 编写高质量提示词
- [工具集成](../customization/tools.md) - 工具配置详情
