跳转至

# 对话搜索

Agora 可以搜索你的全部对话历史——通过关键词匹配或使用嵌入模型的语义（基于含义）检索。

## 搜索方法

### 关键词搜索

快速、精确的文本匹配。搜索在你的消息内容中查找查询词的字面出现。

适合： - 查找特定的短语或术语 - 当你记得精确措辞时的快速查找 - 零配置——立即可用

局限： - 遗漏同义词和相关概念 - 不理解含义

### 语义搜索 (RAG)

使用嵌入模型通过含义而非精确词语查找消息。查询"如何设置数据库"可以找到关于"Room 配置"的消息，即使"数据库"这个词从未出现。

适合： - 按主题查找对话 - 当你不记得精确措辞时的宽泛查询 - 发现不同对话中的相关讨论

要求： - 必须配置嵌入模型（见 嵌入 / RAG） - 消息必须已缓存（已生成嵌入）

## 设置

### 1. 添加嵌入模型

详见 嵌入 / RAG 进行详细设置。你可以使用： - 远程模型（OpenAI、Mistral、Voyage、Ollama 等） - 本地模型（GGUF 文件，完全离线）

### 2. 选择搜索方法

在 设置 → 对话搜索 中：

设置 | 描述
--- | ---
模型搜索方法 | 模型调用 `search_conversations` 工具时如何搜索
手动搜索方法 | 对话抽屉中的搜索栏如何工作

将每个设置设为关键词或语义 (RAG)。

### 3. 配置搜索范围

设置 | 范围 | 描述
--- | --- | ---
每条匹配的上下文消息数 | 4–32 | 每条匹配包含多少条周围消息（步进值：4、8、12、16、20、24、28、32）
最大搜索结果数 | 5–30 | 返回的最大匹配数（步进值：5、10、15、20、25、30）
相似度阈值 | 0.0–1.0 | 仅 RAG：匹配的最低相似度分数。越高越严格。默认：0.5

### 4. 缓存消息

如果使用 RAG，点按缓存为所有现有消息生成嵌入。启用自动缓存以保持索引自动更新。

## 使用搜索

### 手动搜索（搜索栏）

1. 打开对话抽屉（汉堡菜单 :material-menu: 或右滑）
2. 点按顶部的搜索栏
3. 输入查询
4. 结果下方显示——点按任意结果打开对话并滚动到匹配消息

### 模型发起的搜索

当访问历史对话启用时（设置 → 记忆），模型可以自主搜索你的历史：

    你："上周我们关于 API 设计决定了什么？"
    模型：[搜索 "API 设计决策"]
           "上周二，我们决定..."

搜索显示为对话中的工具卡片。

## 相似度阈值

相似度阈值滑块（0.0 到 1.0）控制消息必须达到的最低匹配度才能纳入 RAG 结果：

- 低（0.3–0.5）：更多结果，可能包含松相关的低相关性
- 中（0.5–0.7）：平衡——不错的默认值
- 高（0.7–0.9）：更少结果，仅非常接近的匹配

从默认值开始，根据结果调整。如果收到太多不相关的匹配，提高阈值。如果漏掉了相关对话，降低阈值。

## 搜索结果展示

在对话抽屉中，搜索结果显示：

- 对话标题（或"未命名"）
- 匹配消息 — 匹配的用户或模型消息
- 角色标签 — 用户或模型
- 上下文消息 — 提供上下文的周围消息

点按结果打开对话并滚动到匹配消息。