--- name: wecom-cross-session-recall description: 跨会话召回——从企微私信session中检索内容并发到群聊。用于Doro在群里要求"把私信里的XX发到这里"的场景。 tags: [wecom, session, cross-chat, recall] --- # 企微跨会话召回 ## 触发条件 - Doro在群里说"把私信里的XX发到这里"、"你看看我们私信的聊天记录"等 - 需要衔接群聊和私信的上下文 ## 步骤 ### 1. 找到私信session ID ```bash python3 -c " import json with open('$HOME/.hermes/sessions/sessions.json') as f: data = json.load(f) for sid, meta in data.items(): if 'dm:doro' in sid: print(f'{sid}: session_id={meta[\"session_id\"]}') " ``` ### 2. 读取session内容 ```bash # 搜索关键词 grep "关键词" ~/.hermes/sessions/.jsonl | python3 -c " import sys, json for line in sys.stdin: d = json.loads(line) role = d.get('role','?') content = str(d.get('content','')) if '关键词' in content: print(f'{role}: {content[:500]}') " ``` ### 3. 也可以用 session_search 工具 - session_search 会搜索所有session,但可能匹配不精确 - 直接grep jsonl文件更可靠 ## 注意事项 - 群聊session key: `agent:main:wecom:group::` - 私信session key: `agent:main:wecom:dm:` - 两个session完全独立,互相看不到上下文 - 私信中无法跨群发消息(send_message工具未启用),需要在群里收到消息时才能发