mcpField
S
session-librarian

session-librarian

github.com/nousresearch生产力258.1k41 次安装今天更新
代码仓库

关于 session-librarian

Session Librarian 是用于通过对话查找、总结、重命名和整理 Hermes 会话的技能。它区分内容搜索与元数据筛选,变更前要求先提出计划,并优先使用可恢复的归档而非删除。

主要功能

  1. 01按主题搜索会话并总结决策
  2. 02按元数据筛选会话
  3. 03重命名和归档会话
  4. 04删除前导出会话
  5. 05将工作拆分到并行会话

适用场景

  1. 01查找某主题的过往决策
  2. 02重命名或归档过时会话
  3. 03为不同工单创建独立会话

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nousresearch/hermes-agent --skill session-librarian

安装后在 Claude Code 中输入/session-librarian确认已加载。

详细介绍

Session Librarian

以对话方式管理用户的会话库:查找关于某个主题的过往会话,总结其中的决策,为会话改起有意义的名称,将工作拆分到并行会话中,并建议归档或删除过时会话——只需用自然语言提出请求,例如 “找出我关于第三季度定价的会话,保留有用的,把重复的清理掉。”

灵感来自 Perplexity Computer 由提示词驱动的会话管理(2026 年 8 月): Agent 会启动、整理和清理用户自己的会话库,并且在进行任何操作之前始终先展示计划。

适用场景

  • “我有哪些关于 X 的会话?”/“我们对 X 做了什么决定?”
  • “把这些会话改成有意义的名称。”
  • “清理我的会话库”/“归档过时的会话。”
  • “把那个会话分支成一个专注于 Y 的后续会话。”
  • “把这些内容拆分成每个工单一个会话”(见下文“并行工作流”)。

两种操作方式

任务操作方式
按主题查找会话、阅读内容、总结决策session_search 工具(对消息存储进行 FTS5 全文检索)
按元数据列出/筛选(时长、来源、成本、令牌、工作区)通过终端运行 hermes sessions list/stats
重命名hermes sessions rename <session_id> <title...>
批量软隐藏(可撤销)hermes sessions archive <filters>
删除(不可逆)hermes sessions delete/hermes sessions prune <filters>
删除重要内容前先导出hermes sessions export --session-id <id> --format md
在新位置继续工作/branch(分支当前会话),或启动新会话并引用摘要

流程

① 查找。 使用 session_search(query=..., limit=5-10) 搜索主题关键词;尝试不同的说法(功能名称、症状、项目名称)。按元数据批量筛查(“60 天前来自 telegram 的会话”)时,请改用 hermes sessions list --source telegram --limit 50。

② 逐个会话总结。 搜索结果中的 bookend_start(目标)、匹配窗口和 bookend_end(结果)通常就足够了;只有当用户要求深入了解决策时,才完整检索会话(session_search(session_id=...))。按以下格式汇报每个会话:链接(@session: 格式)— 一句话概述目标 — 一句话概述结果。

③ 操作前先制定计划(对任何会修改内容的操作均为强制要求)。 先展示计划表,说明哪些会话将重命名为哪些名称、哪些将归档、哪些建议删除以及原因(与哪个保留会话重复、已过时或为空)。等待用户确认后再执行。例外:如果用户明确指定只重命名一个会话,可以直接执行。

④ 采用最安全的操作方式。

  • 优先使用 archive(可撤销的软隐藏),而不是 delete/prune。
  • 先使用 --dry-run 运行所有破坏性命令并展示输出,收到确认后再使用 --yes 重新运行。
  • 删除任何包含重要内容的会话前,先提供 hermes sessions export --format md 作为备份。

⑤ 汇报。 说明已应用的重命名、已归档的会话(数量及撤销方式:归档的会话仍保留在数据库中,可通过 --include-archived 列出)、已导出的内容,以及跳过的操作和原因。

并行工作流

对于“每个工单建立一个会话,分别调查并汇报”的请求,不要尝试操控其他正在运行的会话。使用 delegate_task,为每个工作流分配一个任务——每个子 Agent 都会自动在自己的会话中运行——然后综合它们的摘要。请说明,之后也可以通过 session_search 搜索每次委派任务的对话记录。

注意事项

  • 未经试运行和本次对话中的明确确认,绝不删除。 长期有效的“清理一下”授权的是提出建议,而不是直接清理。
  • session_search 查找的是内容,而非元数据。 时长、成本和来源筛选由 CLI 处理;当请求同时涉及两者时,应结合使用(例如“关于定价的旧会话”)。
  • 标题是 /resume <title> 的标识。 重命名时,请确保标题简短、唯一且便于前缀匹配;如果新标题与现有标题冲突,请提醒用户。
  • 已归档 ≠ 已删除。 归档只会将会话从默认列表中隐藏。请说明你执行的是哪种操作。
  • 跨配置文件的会话链接(@session:<profile>/<id>)在其他配置文件中为只读;管理命令会作用于当前配置文件的数据库。

验证

清理完成后,重新运行发现查询和 hermes sessions list,确认资料库符合计划(保留的会话仍在,且已使用新标题;已归档的会话不再显示在默认列表中)。

评论

支持 Markdown