Rikka 内置了网页搜索功能,可让任意 AI 模型访问网络上的实时信息。在发送消息前启用网页搜索后,Rikka 会自动调用你配置的搜索服务,获取相关结果,并在模型生成回复前将其注入对话上下文。
为消息启用网页搜索
网页搜索开关位于输入工具栏——文字输入框上方的图标行。
点击搜索开关
点击工具栏中的地球仪或搜索图标以启用网页搜索。图标高亮表示已激活。
输入消息
正常输入你的问题或提示词,无需改变措辞——Rikka 会自动提取搜索查询。
发送消息
点击发送。Rikka 调用搜索服务,获取结果并将其注入上下文,再请求模型作答。搜索进行时,你会看到短暂的处理状态提示。
查看引用来源
助手的回复中包含对搜索结果的引用。点击任意链接即可在浏览器中打开对应页面。
网页搜索通过注入对话的工具调用实现。模型会根据你的提示词决定是否调用 search_web 工具。如果模型判断某个问题无需搜索,它可能会跳过网络调用,直接以训练数据作答。
支持的搜索服务
Rikka 支持多种搜索服务商。你可以配置一个或多个,并选择其中一个作为当前激活的服务。
| 服务 | 说明 |
|---|
| Bing | 使用 Microsoft Bing 搜索 API,除 API 密钥外无需额外配置。 |
| Brave | 通过 Brave 搜索 API 提供注重隐私的搜索服务。 |
| RikkaHub | Rikka 自有搜索 API,需要 RikkaHub API 密钥,支持可配置的搜索深度和 AI 生成的摘要回答。 |
| SearXNG | 自托管的元搜索引擎,需提供实例 URL、可选凭据和首选搜索引擎。 |
| Bocha(博查) | 中文搜索服务,支持可选的 AI 生成摘要。 |
| Metaso(秘塔) | 中文 AI 搜索服务。 |
| 服务 | 说明 |
|---|
| Tavily | 面向大模型优化的 AI 搜索 API,支持 general、news 和 finance 主题模式,以及标准/深度搜索深度。 |
| Exa | 为 AI 应用构建的语义搜索 API。 |
| Perplexity | 使用 Perplexity 带搜索增强的模型,可选配置回复最大 Token 数和每页内容 Token 数。 |
| LinkUp | 可配置搜索深度(标准 / 深度)。 |
| Grok | xAI 的 Grok 模型,支持实时网络搜索,可配置自定义 API URL、模型选择和系统提示词。 |
| Tinyfish | 轻量级 AI 搜索服务。 |
| 服务 | 说明 |
|---|
| Firecrawl | 网络爬取 API,可从任意 URL 返回结构化 Markdown。 |
| Jina | 用于抓取的 Reader API(r.jina.ai)和用于查询的搜索 API(s.jina.ai),两个 URL 均可配置。 |
| Ollama | 将支持搜索的本地 Ollama 模型作为搜索后端运行。 |
| 服务 | 说明 |
|---|
| Zhipu(智谱) | 智谱 AI 搜索工具。 |
| Custom JS | 用 JavaScript 编写自定义搜索(以及可选的抓取)逻辑。Rikka 在沙箱环境中执行脚本,并提供沙箱化的 fetch() 辅助函数。 |
配置搜索服务
打开设置
点击历史抽屉中的设置齿轮图标(抽屉操作行右下角)。
添加服务
点击添加并从列表中选择服务,每项服务会显示说明以及获取 API 密钥的链接(如需要)。
填写凭据
填入 API 密钥及各服务特有的选项(深度、语言、模型、自定义 URL 等)。
设为激活服务
如果你配置了多个服务,点击要使用的服务将其设为激活搜索服务。激活的服务会显示在聊天输入工具栏中搜索开关的提示文字里。
常用配置选项
不同服务开放的设置有所不同,但你通常会看到以下选项:
| 选项 | 说明 |
|---|
| API 密钥 | 来自服务商的认证密钥。某些服务(如 Bing、SearXNG)可能不需要,或使用其他认证方式。 |
| 结果数量 | 获取并注入上下文的搜索结果条数。结果越多,模型获得的信息越多,但消耗的 Token 也越多。 |
| 深度 | 对于 Tavily 和 LinkUp 等服务,控制是进行浅层还是深层爬取。 |
| 语言 | 将结果限制为特定语言,适用于 SearXNG 和部分其他服务。 |
| 包含 / 排除域名 | 部分服务支持白名单或黑名单特定网站。 |
| 安全搜索 | 在支持的服务上启用内容过滤。 |
搜索结果的注入方式
当你发送启用了网页搜索的消息时,Rikka 按以下流程处理:
search_web 工具与你的消息一同注册到模型中。
- 如果模型决定搜索,它会发出一个带有
query 参数的工具调用。
- Rikka 使用该查询和配置的结果数量调用激活的搜索服务。
- 包含标题、URL 和文字摘要的结果作为工具输出返回给模型。
- 某些服务还支持
scrape_web 工具调用,允许模型获取单个页面的完整内容。
- 模型将结果整合到最终回复中。
搜索步骤在后台静默完成。Rikka 获取结果时,对话列表中会短暂出现处理状态提示。如果你的模型暴露了推理步骤,工具调用及其输出会在思维链部分中可见。
专用搜索页面
除了每条消息的网页搜索外,Rikka 还提供一个全屏搜索页面,专为研究型会话设计。
打开历史抽屉,点击抽屉操作行中的搜索图标(放大镜)即可进入。搜索页面提供:
- 持久化搜索栏,可直接输入查询并获取网页结果。
- 结果卡片,显示标题、文字摘要和来源 URL。
- 点击任意结果卡片即可打开对应 URL,或将其作为上下文用于新的对话。
当你希望在将结果交给 AI 之前先浏览和对比多个结果时,请使用搜索页面。它比自动化的对话内搜索模式提供更多控制权。
Custom JS 搜索服务
如果内置服务都不满足你的需求,可使用 Custom JS 选项自行编写搜索逻辑。
// 实现 search(query, resultSize) 函数
// 使用 fetch(url, options?) 发送 HTTP 请求
// fetch() 返回 { status, ok, text(), json() }
// 返回 { items: [{ title, url, text }], answer?: string }
function search(query, resultSize) {
const encoded = encodeURIComponent(query);
const res = fetch("https://example.com/search?q=" + encoded + "&limit=" + resultSize);
const data = res.json();
return {
items: data.results.map(function(r) {
return { title: r.title, url: r.url, text: r.snippet };
})
};
}
你还可以提供一个可选的 scrape(urls) 函数,用于实现自定义页面内容提取。Rikka 的沙箱环境提供了同步的 fetch() 辅助函数——无需使用 async/await。
Custom JS 脚本在受限沙箱中运行。可通过 fetch() 访问网络,但脚本无法访问设备存储、Android API 或任何 Rikka 内部功能。