Files

1.4 KiB

name, description, tags
name description tags
wecom-cross-session-recall 跨会话召回——从企微私信session中检索内容并发到群聊。用于Doro在群里要求"把私信里的XX发到这里"的场景。
wecom
session
cross-chat
recall

企微跨会话召回

触发条件

  • Doro在群里说"把私信里的XX发到这里"、"你看看我们私信的聊天记录"等
  • 需要衔接群聊和私信的上下文

步骤

1. 找到私信session ID

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内容

# 搜索关键词
grep "关键词" ~/.hermes/sessions/<session_id>.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:<chatid>:<userid>
  • 私信session key: agent:main:wecom:dm:<userid>
  • 两个session完全独立,互相看不到上下文
  • 私信中无法跨群发消息(send_message工具未启用),需要在群里收到消息时才能发