> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rikka-ai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 提示词注入与知识库详解

> 使用模式注入和知识库自动将上下文片段插入对话中，完全控制位置、优先级和触发条件。

提示词注入是 Rikka 自动插入到对话上下文中指定位置的文本片段。它们让你能够为任何助手添加额外的指令、参考材料或世界观设定——而不会使主系统提示词变得杂乱。知识库扩展了这一概念，将多个注入条目分组，并仅在对话中出现特定关键词时激活每个条目。

## 核心概念

<CardGroup cols={2}>
  <Card title="模式注入" icon="toggle-right">
    手动切换的文本片段。在助手上启用后，只要该助手处于活跃状态就会始终注入。非常适合用于"模式"切换，如正式写作风格或分步推理格式。
  </Card>

  <Card title="知识库" icon="book-open">
    命名的条目集合。每个条目携带关键词；当这些关键词出现在最近的消息中时，条目的内容会自动注入。非常适合世界观参考材料或项目术语表。
  </Card>
</CardGroup>

## 注入位置

每个注入针对消息列表中的特定位置。选择最符合你内容意图的位置。

<Accordion title="系统提示词之前">
  在现有系统消息之前插入内容。用于应在所有其他指令之前出现的高优先级框架内容。
</Accordion>

<Accordion title="系统提示词之后">
  将内容追加到系统消息的末尾。这是最常用的位置——它扩展系统提示词而不替换它。
</Accordion>

<Accordion title="对话顶部">
  将内容放置在对话历史中第一条用户消息之前。适用于在开头出现一次的场景上下文。
</Accordion>

<Accordion title="对话底部">
  在最近一条用户消息之前插入内容。适用于应该保持在模型注意力中的提醒或动态上下文。
</Accordion>

<Accordion title="指定深度">
  在距离消息列表末尾的特定深度处插入（例如，深度 4 = 距底部四条消息处）。用于相对于最近对话轮次的精确放置。
</Accordion>

## 创建模式注入

<Steps>
  <Step title="打开设置">
    在主屏幕点击设置图标。
  </Step>

  <Step title="导航到提示词">
    选择**提示词**（也可以通过助手的**扩展**标签页中的**前往提示词**按钮访问）。
  </Step>

  <Step title="添加模式注入">
    在模式注入部分点击 **+**。为其命名，编写内容，选择注入位置，设置角色（用户或助手），并分配优先级。
  </Step>

  <Step title="保存">
    点击**保存**。该注入现在可以附加到任何助手上。
  </Step>
</Steps>

## 创建知识库

<Steps>
  <Step title="打开设置 → 提示词">
    导航到知识库部分，点击 **+** 创建新的知识库。
  </Step>

  <Step title="命名知识库">
    给它一个描述性的名称，如"奇幻世界设定"或"项目术语表"。
  </Step>

  <Step title="添加条目">
    在知识库中点击 **+** 创建条目。为每个条目配置：

    * **关键词** — 触发此条目的词语或模式。
    * **内容** — 触发时注入的文本。
    * **注入位置**和**角色**。
    * **扫描深度** — 检查关键词匹配的最近消息数量。
    * **使用正则表达式** — 将关键词视为正则表达式而非纯文本。
    * **区分大小写** — 匹配时是否区分字母大小写。
    * **始终激活** — 无条件注入此条目，不考虑关键词。
  </Step>

  <Step title="保存知识库">
    点击**保存**。知识库及其所有条目现已准备好附加到助手上。
  </Step>
</Steps>

<Tip>
  如果你希望某个条目始终注入，请为其设置**始终激活**，使其行为类似于持久的模式注入，但出于组织目的放在知识库中。
</Tip>

## 将注入附加到助手

<Steps>
  <Step title="打开助手的扩展标签页">
    前往**设置 → 助手**，点击一个助手，然后选择**扩展**标签页。
  </Step>

  <Step title="启用模式注入">
    切换到**模式注入**子标签页，开启你想要为此助手激活的注入。
  </Step>

  <Step title="启用知识库">
    切换到**知识库**子标签页，开启你想要在此助手对话中使用的知识库。
  </Step>
</Steps>

## 关键助手字段

<ParamField path="modeInjectionIds" type="set">
  此助手已激活的模式注入集合。此集合中的任何注入都会包含在每次对话中，不受消息内容影响。
</ParamField>

<ParamField path="lorebookIds" type="set">
  附加到此助手的知识库集合。当这些知识库中的条目的关键词在最近的消息中被检测到时，会自动触发。
</ParamField>

<ParamField path="allowConversationSystemPrompt" type="boolean" default="false">
  启用后，每个单独的对话可以覆盖此助手的系统提示词。如果你想在不更改助手默认设置的情况下按对话自定义系统提示词，请开启此选项。
</ParamField>

<ParamField path="allowConversationPromptInjection" type="boolean" default="false">
  启用后，每个对话可以绑定自己的模式注入和知识库集合，覆盖助手级别的选择。当你想要按对话动态混搭注入时，请启用此选项。
</ParamField>

## 消息模板

**消息模板**在每条用户消息发送给模型之前对其进行包装。默认值为 `{{message}}`，即按原样发送消息。你可以在其周围添加上下文、格式化或角色提示。

<ParamField path="messageTemplate" type="string" default="{{message}}">
  应用于每条发出的用户消息的模板字符串。必须在某处包含 `{{message}}`，以便用户的实际文本能够被传递。如果缺少此占位符，Rikka 会标记为错误。
</ParamField>

<Warning>
  如果消息模板中缺少 `{{message}}`，用户的实际消息将不会包含在请求中。Rikka 会在编辑器中将此标记为错误——请在保存前始终验证模板。
</Warning>

## 占位符变量

占位符变量可以在**消息模板**、**系统提示词**或任何注入内容中使用。Rikka 在每条消息发送时将它们替换为实时值。`{{variable}}` 和 `{variable}` 两种语法都可以使用。

| 变量                   | 描述                                       |
| -------------------- | ---------------------------------------- |
| `{{cur_date}}`       | 当前日期，按你的区域设置格式化                          |
| `{{cur_time}}`       | 当前时间，按你的区域设置格式化                          |
| `{{cur_datetime}}`   | 当前日期和时间，按你的区域设置格式化                       |
| `{{model_id}}`       | 当前活跃模型的模型 ID 字符串                         |
| `{{model_name}}`     | 当前活跃模型的显示名称                              |
| `{{locale}}`         | 你设备的当前区域设置（例如 `English (United States)`） |
| `{{timezone}}`       | 你设备的当前时区名称                               |
| `{{system_version}}` | 设备上运行的 Android 版本                        |
| `{{device_info}}`    | 设备品牌和型号名称                                |
| `{{battery_level}}`  | 当前电池电量百分比                                |
| `{{nickname}}`       | 你在**设置 → 显示**中的显示昵称                      |
| `{{user}}`           | 与 `{{nickname}}` 相同——你的显示名称              |
| `{{char}}`           | 当前助手的名称                                  |

点击系统提示词或模板编辑器下方显示的任意变量标签，即可将其插入到光标位置。

## 注入优先级的工作原理

当多个注入针对同一位置时，Rikka 按优先级值降序排列——数字越大，越先注入。在同一位置具有相同角色的注入会合并为一条消息，以保持对话结构整洁。

<Note>
  Rikka 会注意不在用户消息和紧随其后的包含工具调用的助手消息之间插入注入消息，因为某些提供商（如 DeepSeek）要求这两条消息相邻以确保正确推理。
</Note>
