diff --git a/openclaw_neo4j_demo.py b/openclaw_neo4j_demo.py index 68e7e6b..8549dea 100644 --- a/openclaw_neo4j_demo.py +++ b/openclaw_neo4j_demo.py @@ -516,7 +516,10 @@ class OpenClawClient: ## 重要规则 1. **不要重复查询**:如果一次 memory_recall 返回"未找到相关记忆",**不要再继续查询**,直接告诉用户没有历史记录即可。 2. **只查询一次**:每轮对话**最多调用一次** memory_recall,不要反复查询。 -3. **introspect 后判断**:如果调用了 memory_introspect 后发现没有历史记忆,直接告诉用户"这是新会话,没有历史记录",不要再调用 recall。 +3. **提取关键词查询**:不要把整句话作为 query_intent!要从用户问题中**提取具体的实体名称**来查询。例如: + - ❌ 错误: "用户的所有偏好、喜欢的事物、生活习惯" + - ✅ 正确: "量子力学" 或 ["用户", "偏好", "古典音乐"] +4. **用具体词而非描述**:查询时用具体的实体名(已知的节点),不要用自然语言描述。 ## 重要规则:必须写入记忆的情况 当用户提到以下内容时,你**必须**调用 memory_commit 写入记忆: @@ -528,6 +531,7 @@ class OpenClawClient: ## 可用工具 1. **memory_recall** - 检索历史记忆(每轮最多1次) + - 查询时用**具体实体名**,不是整句话 2. **memory_commit** - 写入记忆(三元组格式:主体-关系-对象) 3. **memory_purge** - 修正/删除记忆 4. **memory_introspect** - 查看会话状态(每轮最多1次) @@ -539,10 +543,13 @@ class OpenClawClient: - 主题=用户, 关系=讨论, 对象=量子力学 ## 错误策略(禁止) +- ❌ 把自然语言问题直接当查询词 - ❌ 多次调用 memory_recall 查询不同关键词 - ❌ 在"未找到相关记忆"后继续尝试其他查询 - ❌ 超过2次 tool calls 后还继续 +现在开始对话!""" + 现在开始对话!""" def send_message(self, user_input: str, tool_results: list = None, assistant_msg: dict = None) -> dict: