> For the complete documentation index, see [llms.txt](https://tinyhumans.gitbook.io/openhuman/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tinyhumans.gitbook.io/openhuman/zh/kai-fa/engines.md).

# 可插拔引擎

四个可替换引擎（模型、嵌入、记忆、搜索）以及用于选择它们的配置键。

OpenHuman 通过一个配置键而不是硬编码客户端来处理四类工作：聊天和推理、嵌入、记忆和网络搜索。每一类都有一个受管理的默认选项，无需密钥，另外还有自带密钥或本地选项。本页列出了支持的内容以及用于选择它的键。链接的 Features 页面介绍了设置和取舍。

## LLM 提供商

聊天、推理、视觉和编码工作各自有自己的 provider 字段（`chat_provider`, `reasoning_provider`, `agentic_provider`, `coding_provider`, `vision_provider` 以及更多）。每个都是如下形式的字符串 `<slug>:<model>`。未设置、为空或设置为 `cloud` 的字段将保持为受管理默认值。

支持的路由：

* 受管理（TinyHumans）：默认值。它为你提供 OpenRouter 模型目录，无需管理密钥。
* 本地：你安装并运行的运行时（Ollama、LM Studio、MLX、OMLX）。其地址写作 `ollama:<model>`, `lmstudio:<model>`, `mlx:<model>` 或 `omlx:<model>`，并在 `[local_ai] base_url`中设置端点。OpenHuman 不会安装运行时或下载模型；这些需要你自己拉取。
* 一个兼容 OpenAI 的本地端点：任何支持 OpenAI chat API 的服务器。使用 `local-openai:<model>`，或用它自己的 slug 和端点注册它。
* Claude Code / Claude Agent SDK：一种 provider slug，它会运行你已安装的 Claude Code CLI，而不是调用托管 API。
* 26 个自带密钥的 slug，每个都带有预设端点，因此你只需要一个密钥： `openai`, `anthropic`, `google`, `openrouter`, `orcarouter`, `groq`, `mistral`, `deepseek`, `together`, `fireworks`, `cerebras`, `xai`, `moonshot`, `gmi`, `huggingface`, `nvidia`, `zai`, `minimax`, `stepfun`, `kilocode`, `deepinfra`, `novita`, `venice`, `vercel-ai-gateway`, `sumopod`, `modelscope`.

Provider 定义位于 `crates/openhuman-core/src/inference/provider/` (`factory.rs` 会把一个 `<slug>:<model>` 字符串转换为客户端，而 `types.rs` 保存 provider 形状）。设置和本地模型能力表位于 [本地模型与自带密钥](/openhuman/zh/gong-neng/model-routing/local-and-byok-models.md)。路由和回退顺序位于 [自动模型路由](/openhuman/zh/gong-neng/model-routing.md).

## 嵌入

嵌入有自己独立的 provider 设置，和聊天 provider 分开。可通过 `embeddings.update_settings` 通过 RPC 设置，或针对单个工作负载用 `embeddings_provider`.

* 受管理（默认）：OpenHuman 后端基于 Voyage 的嵌入端点。新安装即可使用，无需本地守护进程。
* Voyage：使用你自己的密钥访问 Voyage AI API。
* OpenAI：通过 OpenAI API 提供云端嵌入。
* Cohere：使用你自己的密钥访问 Cohere embed API。
* Ollama：你已拉取的本地模型。 `bge-m3` 建议使用（`ollama pull bge-m3`）。记忆引擎不会使用这些，因为它会在自己的侧进行嵌入。
* 自定义：任何兼容 OpenAI 的嵌入端点。

代码位于 `crates/openhuman-core/src/inference/embedding_host/`. `mod.rs` 列出了 provider， `factory.rs` 构建客户端，而 `schemas.rs` 定义了 `embeddings.*` RPC 接口，包括 `set_api_key` ，按 provider slug 区分。

## 记忆

记忆是在可插拔引擎上的检索、获取和存储。其契约是 `tinymemory-api`，已随源码 vendored 到 `vendor/tinymemory/`。它定义了一个 `MemoryEngine` trait，包含 `回忆`, `获取`, `store`, `forget`, `list` 和 `health`。一个 `EngineDescriptor` 说明引擎是否托管、是否需要端点或密钥，以及它支持哪些获取模式。 `tinymemory::list_engines` 和 `build_engine` 是注册表。

有两个引擎随附，都由 `tinymemory-integrations`:

| id           | 什么                                         | 端点                                                                     | 密钥                                |
| ------------ | ------------------------------------------ | ---------------------------------------------------------------------- | --------------------------------- |
| `tinyhumans` | TinyHumans 后端后面的 CortexDB 托管版（`/memory/*`) | 后端来源                                                                   | 登录会话或 API 密钥，通过主机凭据接缝按请求解析        |
| `cortexdb`   | 用户自己的 CortexDB（直接 `/v1/*`)                 | `[memory.engines.cortexdb] endpoint` （默认 `https://api-v1.cortexdb.ai`) | 存储在操作系统钥匙串中，名称为 `memory-cortexdb` |

使用 `[memory] engine` 进行选择，或在 Connections > Memory > Engine 中选择（`openhuman.memory_engine_set`). `memory::engine::resolve` 将其绑定。如果你已登出且没有 CortexDB 密钥，记忆功能将关闭： `memory` 工具不会注册，摄取不会执行，RPC 会返回 `MEMORY_OFF`.

已构建的引擎会按引擎 ID、端点和凭据身份的指纹进行缓存。更改其中任意一项，下一次调用时都会重建引擎。引擎不会迁移，因此切换后会从空状态开始。对旧存储的一次性导入会在你同意后上传到所选引擎。

两个引擎都声明 `fetch_modes = [hybrid]`，因为 CortexDB 的 recall 接口没有关键词或向量开关。请求其他模式会失败并返回 `UNSUPPORTED`.

相关页面： [记忆](/openhuman/zh/gong-neng/memory.md) 和 [记忆架构](/openhuman/zh/kai-fa/architecture/memory.md).

## 网络搜索

`[search] engine` 选择活动提供商。一次只有一个处于激活状态：

* `受管理` （默认）：通过后端代理，无需密钥。
* `parallel`：Parallel API 上的搜索、提取、聊天、研究、增强和数据集工具。
* `brave`：Brave Search（网页、新闻、图片、视频）。
* `querit`：Querit 网页搜索。
* `exa`：Exa 神经搜索（search、find-similar、contents）。它直接调用 `api.exa.ai` ，绝不通过受管理后端。
* `tavily`：Tavily 搜索和提取（网页、新闻、金融）。它调用 `api.tavily.com` 。
* `disabled`：未注册任何搜索工具。

如果你选择了一个自带密钥的引擎但没有存储的密钥，搜索会回退到 `受管理` ，这样代理就不会没有搜索工具可用。

SearXNG 是一个单独的开关（`[searxng] enabled`, `base_url`），不是一个 `search.engine` 值，因为它指向的是自托管实例而不是供应商 API。

提供商位于 `tinysearch` 模块（`vendor/tinysearch`），它负责各 provider 的传输和角色分发。主机把 provider 解析和凭据策略保留在 `crates/openhuman-core/src/search/` 和 `crates/openhuman-core/src/config/schema/tools/search.rs`。其 provider 列表来自模块契约。

参见 [网络搜索](/openhuman/zh/gong-neng/native-tools/web-search.md) 用于各个引擎暴露的工具。
