关于 session-search
session-search 是用于查找相关 Agent 历史会话并提取上下文的技能。它结合文本相似度、主题簇、书签和时间因素排序,并标明已无法读取完整记录的会话。
主要功能
- 01搜索历史会话
- 02按相似度、主题、书签和时间排序
- 03按项目、主题簇、日期或数量筛选
- 04读取仍可用的会话记录
- 05识别仅保留历史提示词的结果
适用场景
- 01查找之前讨论某主题的会话
- 02按日期范围定位项目讨论
- 03恢复已收藏会话的上下文
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ ar9av/ obsidian-wiki --skill session-search安装后在 Claude Code 中输入/session-search确认已加载。
详细介绍
会话搜索
回答“我过去的哪个会话是关于 X 的?”,然后提取该会话的上下文。
步骤 1:检查图是否存在且为最新
obsidian-wiki sessions-query "<topic>" --json
如果此命令以状态码 1 退出,并显示“run sessions-build first”,请告知用户并提供 /session-brain 选项。如果
graph.json 已超过约 7 天,请提及并提供重建选项——但不要在用户不知情的情况下重建,
因为这需要数秒,而用户并未提出此要求。
步骤 2:排序
评分已经综合了四种信号,因此请直接采用现有排序,不要重新排序:
- 相似度——与会话文本进行 TF-IDF 余弦相似度计算
- 主题簇加权——即使会话本身没有匹配到相关词语,属于最佳匹配主题的会话也会获得更高评分。这就是为什么一个从未提到“telemetry”的会话仍可能因此出现在结果中。
- 书签加权——有人已经将此会话标记为值得保留
- 时间衰减——半衰期为 90 天,并设有下限,因此旧的精准匹配仍会排在新的弱匹配之前
实用筛选条件:--project NAME、--cluster N、--since DATE、--top N。
步骤 3:呈现
将排名前约 5 个结果以紧凑表格展示——标题、项目、日期、主题和 why 字符串;该字符串已经说明了匹配原因。不要向用户倾倒原始 JSON。
有两件事必须如实说明,不要含糊带过:
loadable: false的条目仅有历史记录:文字记录已从磁盘清理,仅保留提示词。这些条目会列在unloadable中,并附有原因。请说明文字记录已不存在;不要暗示可以找回。- 如果所有相关条目都无法加载,请根据现存的提示词文本作答,并说明这就是仅存的内容。
步骤 4:加载——交接处理,不要自行重写
should_load 最多包含 3 个值得打开的会话 ID,并且已筛除没有文字记录的会话。
如果用户安装了现有加载技能,请优先使用:
claude-session-load— 按 ID 加载 Claude 会话bookmark-load— 命中结果已加书签时使用
⚠️ 这些技能位于用户的个人技能目录(~/.claude/skills/),不在此仓库中。它们可能不存在。不要假定它们存在;如果不存在也不要报错——改为直接读取文字记录:
# the path is in the query result as `transcript`
obsidian-wiki sessions-show <session-id> --pretty
文字记录采用 JSONL 格式,可能有数十 MB。**切勿完整读取。**请先筛选出人类发言:
grep -c '' <transcript> # size check before anything else
python3 -c "
import json,sys
for line in open(sys.argv[1], errors='replace'):
try: r = json.loads(line)
except ValueError: continue
if r.get('type')=='user' and not r.get('isSidechain') and not r.get('isMeta'):
c = (r.get('message') or {}).get('content')
if isinstance(c,str) and not c.lstrip().startswith('<'): print('>', c[:400])
" <transcript>
步骤 5:回答
根据已加载的内容综合作答,并注明所用的会话 ID。如果答案来自仅有历史记录的会话中的提示词,而非真实文字记录,请说明这一点——用户需要知道你实际掌握了多少上下文。
相关内容
/session-brain— 构建或刷新图,调查并命名主题wiki-query— 搜索整理后的知识库内容;此技能搜索的是原始会话历史wiki-agent— 从另一个 Agent 的历史记录中提取主题,并将其整理到知识库中