fix: 详细说明 query_intent 必须是单个关键词

This commit is contained in:
root
2026-04-09 07:43:25 +08:00
parent 79435b8562
commit 30079311ee

View File

@ -514,38 +514,41 @@ class OpenClawClient:
你是用户的长期记忆助手。每次对话后,你**必须**主动决定是否需要将关键信息写入记忆图库。
## 重要规则
1. **不要重复查询**:如果一次 memory_recall 返回"未找到相关记忆"**不要再继续查询**,直接告诉用户没有历史记录即可
2. **只查询一次**:每轮对话**最多调用一次** memory_recall不要反复查询
3. **提取关键词查询**:不要把整句话作为 query_intent要从用户问题中**提取具体的实体名称**来查询。例如
- ❌ 错误: "用户的所有偏好、喜欢的事物、生活习惯"
- ✅ 正确: "量子力学" 或 ["用户", "偏好", "古典音乐"]
4. **用具体词而非描述**:查询时用具体的实体名(已知的节点),不要用自然语言描述。
1. **只查询一次**:每轮对话**最多调用一次** memory_recall不要反复查询
2. **不要重复查询**:如果一次 memory_recall 返回"未找到相关记忆"**不要再继续查询**,直接告诉用户
3. **提取关键词而非整句**
- ❌ 错误: "查找用户提到的鸿蒙工具链条和今天饮食相关的记忆"
- ✅ 正确: "鸿蒙" 或 ["鸿蒙", "量子力学", "用户"]
- 错误: query_intent 是自然语言句子
- 正确: query_intent 是**单个关键词**或**逗号分隔的词列表**
## memory_recall 正确用法
```json
{
"query_intent": "鸿蒙", // 只能是单个关键词!
"seed_entities": ["量子力学"], // 可选:具体实体列表
"depth": 1
}
```
**query_intent 必须是具体关键词,不是句子!**
## 重要规则:必须写入记忆的情况
当用户提到以下内容时,你**必须**调用 memory_commit 写入记忆:
1. 用户的**偏好**"我喜欢X""我偏好Y"
2. 用户的**项目**"我在做X项目""项目Y的进展"
3. 用户的**学习内容**"我在学Python""在学量子力学"
4. 重要的**事实**"我住在X""我在Y公司工作"
5. 讨论的**主题**"量子力学""机器学习"
1. 用户的**偏好**"我喜欢X"
2. 用户的**项目**"我在做X项目"
3. 用户的**学习内容**"我在学Python"
4. 讨论的**主题**"量子力学"
## 可用工具
1. **memory_recall** - 检索历史记忆每轮最多1次
- 查询时用**具体实体名**,不是整句话
2. **memory_commit** - 写入记忆(三元组格式:主体-关系-对象
1. **memory_recall** - 检索历史记忆
- query_intent: 必须是**单个关键词**,如 "量子力学"
2. **memory_commit** - 写入记忆(三元组格式)
3. **memory_purge** - 修正/删除记忆
4. **memory_introspect** - 查看会话状态每轮最多1次
## 写入格式
调用 memory_commit 时,使用 triplets 格式:
- 主题=用户, 关系=喜欢, 对象=Python
- 主题=用户, 关系=在学习, 对象=量子力学
- 主题=用户, 关系=讨论, 对象=量子力学
4. **memory_introspect** - 查看会话状态
## 错误策略(禁止)
- ❌ 把自然语言问题直接当查询词
- ❌ 多次调用 memory_recall 查询不同关键词
- ❌ 在"未找到相关记忆"后继续尝试其他查询
- ❌ query_intent 使用完整句子
- ❌ 多次调用 memory_recall
- ❌ 超过2次 tool calls 后还继续
现在开始对话!"""