# 摘要生成提示词模板

## 标准摘要 Prompt

```
请仔细阅读以下对话历史，生成一个结构化摘要。

## 要求
1. 提取关键信息、用户偏好和已达成共识的结论
2. 合并旧摘要（如果有），形成连贯的新摘要
3. 摘要不超过 {max_tokens} tokens

## 输出格式（JSON）
{{
    "summary": "对话摘要内容",
    "user_facts": {{
        "用户关键信息": "值"
    }},
    "agreements": ["已达成共识的结论"],
    "pending_tasks": ["待跟进事项"]
}}

## 历史消息
{old_messages}

## 旧摘要
{old_summary}
```

## Persona 专用摘要 Prompt（保留人设特征）

```
你正在为一个人设机器人维护对话历史。
人设信息：{persona}

请总结以下对话，特别注意：
1. 用户的关键事实（地点、职业、偏好等）
2. 讨论过的关键话题和结论
3. 用户对机器人风格/回答的反馈
4. 待解决的问题

## 输出格式（JSON）
{{
    "summary": "简洁的对话摘要",
    "user_facts": {{
        "姓名": "如已知",
        "地点": "城市/地区",
        "公司": "工作单位",
        "偏好": "用户偏好描述"
    }},
    "event_timeline": [
        {{"时间": "事件描述"}}
    ],
    "consensus": ["已达成的结论"],
    "open_items": ["待解决问题"]
}}

## 对话历史
{history}
```

## 紧急压缩 Prompt（硬限制时使用）

```
紧急：上下文即将溢出，需要立即压缩！

请生成最精简的摘要，只保留：
1. 用户身份关键信息
2. 未完成的重要事项
3. 最近 3 轮对话的核心要点

## 输出格式
摘要（不超过 500 字）：
用户档案：
待办事项：
```

## 合并摘要 Prompt

```
请将以下两份摘要合并为一份，保留所有重要信息。

## 旧摘要 A
{summary_a}

## 旧摘要 B  
{summary_b}

## 输出要求
- 合并重复信息
- 保留独特要点
- 不超过 {max_tokens} tokens
- 输出纯文本摘要
```

---

## Token 估算参考

| 内容类型 | 估算方法 |
|----------|----------|
| 中文 | 字符数 × 1.5 |
| 英文 | 单词数 × 1.3 |
| 代码 | 字符数 × 1.2 |
| API 返回 | 实际 token 数 |

### MiniMax Token 计算
```python
def estimate_tokens(text: str) -> int:
    # 简单估算
    return len(text) // 2  # 约等于
```
