# 系统提示词

系统提示词定义模型的角色、行为和规则。Agora 让你精细控制指令的组装和发送方式。

## 三段式编辑器

每个系统提示词模板有三个独立可编辑的部分：

```text
┌─────────────────────────────────┐
│ 系统提示词                       │ ← 核心指令（角色、规则、语气）
├─────────────────────────────────┤
│ 用户前缀                         │ ← 每条用户消息前添加
├─────────────────────────────────┤
│ 用户后缀                         │ ← 每条用户消息后添加
└─────────────────────────────────┘
```

### 系统提示词

主要指令块。定义：

- **角色**："你是一位专注于整洁架构的高级 Python 开发者。"
- **规则**："始终用中文回复。使用项目符号列表。"
- **约束**："不要道歉。简洁明了。优先代码而非解释。"

### 用户前缀与后缀

包裹每条消息：

- **用户前缀** — 添加在消息文本之前。适合提醒或上下文标签。
- **用户后缀** — 添加在消息文本之后。适合结束指令。

**示例**：如果前缀是 `[上下文：正在开发 Agora 文档]`，后缀是 `\n\n请用 Markdown 回复。`，模型收到：

```text
[上下文：正在开发 Agora 文档]
如何配置网络搜索？
请用 Markdown 回复。
```

---

## 创建提示词

1. 前往 **设置 → 系统提示词**
2. 点按 **添加新提示词**
3. 输入**标题**（如 "翻译"、"代码审查"、"中文助手"）
4. 填写三个部分：
    - 点按 **添加文本** 写入静态内容
    - 点按 **添加变量** 插入动态值
5. 点按 **保存**

### 重新排序项目

每个部分内可以有多个文本块和变量。长按项目：

- **上移** / **下移** — 在部分内重新排序
- **移除** — 删除该项目

---

## 变量替换

变量在消息发送时替换为动态值：

| 变量 | 展开为 | 示例 | 解析时机 |
|----------|-----------|---------|---------------|
| `{time}` | 当前时间 (HH:mm:ss) | `14:30:00` | 提示词编译时 |
| `{date}` | 当前日期 (YYYY-MM-DD) | `2026-05-10` | 提示词编译时 |
| `{sent_time}` | 消息发送时间 (HH:mm) | `10:05` | 每条消息 |
| `{sent_date}` | 消息发送日期 (YYYY-MM-DD) | `2026-05-11` | 每条消息 |
| `{active_memory}` | 活跃记忆内容 | `[你的已保存记忆内容]` | 提示词编译时 |
| `{model_id}` | 当前选中的模型 ID | `gemini-1.5-flash` | 提示词编译时 |

**每条消息变量**（`{sent_time}`、`{sent_date}`）在你每次发送消息时解析，因此它们反映确切的发送时间。**提示词级变量**（`{time}`、`{date}`、`{active_memory}`、`{model_id}`）在系统提示词编译时解析。

!!! tip
    对日期敏感的提示词使用 `{sent_date}`，如 "今天是 {sent_date}。讨论近期事件时，注意你的知识可能已过时。" 使用 `{active_memory}` 将模型的持久记忆注入系统指令。

### 添加变量

1. 在编辑器的任意部分，点按 **添加变量**
2. 从选择器中选择变量
3. 它显示为一个标签/胶囊 — 拖动以重新定位

---

## 管理提示词

### 设为默认

点按提示词旁边的单选按钮将其设为**全局默认**。所有对话使用此提示词，除非被覆盖。

### 单对话覆盖

每个对话可以使用不同的系统提示词：

1. 打开一个对话
2. 点按顶部栏的更多菜单 (:material-dots-vertical:)
3. 选择 **对话提示词**
4. 从列表中选择提示词

单对话设置仅覆盖该对话的全局默认值。

### 编辑或删除

- 点按提示词进行**编辑**
- 长按并选择**删除**以移除

!!! warning
    删除系统提示词是永久性的。使用它的对话将回退到全局默认值。

---

## 无系统提示词

如果没有选择系统提示词，模型不会收到特殊指令——按照其基础训练行事。有时这对测试或不使用系统指令表现更好的模型来说是可取的。

要使用无提示词，从提示词列表中选择**无**。

---

## 自动标题生成 {#auto-title-generation}

Agora 可以在首次回复后自动生成对话标题：

1. 前往 **设置 → 标题生成**
2. 启用 **自动生成标题**
3. 选择**标题模型**：
    - **使用当前模型** — 使用对话中活跃的任何模型
    - **选择标题模型** — 为标题生成选择特定的快速/经济的模型

启用后，首次模型回复后会显示简短的"正在生成标题..." snackbar，对话会自动从"未命名"重命名为描述性标题。

---

## 提示词示例

### 翻译

```yaml
系统提示词: |
  你是一名专业翻译。将用户输入翻译为英文。
  保留格式、代码块和技术术语。不要添加解释。
```

### 代码审查

```yaml
系统提示词: |
  你是一位高级代码审查员。面对代码时：
  1. 识别 bug 和边界情况
  2. 建议性能改进
  3. 检查安全问题
  具体明确。尽可能引用行号。
```

### 中文助手

```yaml
系统提示词: |
  你是一个乐于助人的中文助手。用简洁、清晰的中文回答问题。
用户后缀: |
  \n\n请用中文回答。
```
