会话搜索¶
sessions_search 搜索可见历史会话中的用户和助手文本。每个结果
包含 sessionKey、时间戳、角色以及一段简短的匹配摘录。将返回的
sessionKey、messageId 和 sessionId 一起传递给 sessions_history,以重新打开匹配的
上下文,包括会话重置之前保留的历史。如果没有 messageId,历史返回相对于重置点最新的尾部。一个显式的 messageId,如果仍位于该
当前视图中(包括重置后保留的重置前行),则保持当前视图行为,
并且可以包含重置后的后续轮次。一个显式的 messageId,如果指向当前视图之外保留的
活动路径行,则会打开该原始封闭区间,并且不会
混入重置后的后续轮次。
锚定读取使用 limit 来限定周围消息的范围。使用锚点时,请省略 offset。
对于 SQLite 转录历史,缺失或不在路径上的消息会返回空历史,而不是
最新尾部;不属于所选会话键的 sessionId 会被拒绝。
这些规则也适用于本地嵌入式模式,即使没有运行 Gateway。
可见性与输出¶
搜索使用与 sessions_history 相同的已配置会话可见性规则。默认
tools.sessions.visibility: "all" 允许非沙箱调用方搜索 Gateway 上跨代理的会话,
包括其他用户的对话。跨代理访问默认开启,并由
tools.agentToAgent 控制;设置 enabled: false 可阻止普通跨代理访问,或使用 allow
限制代理对(请求方拥有的原生子代理和 ACP 子会话在 tree 或 all 下仍可达)。当调用方需要更窄的会话可见性时,设置显式的 agent、tree 或 self。
按对等方的 DM 路由会分离对话上下文,但不会限制会话工具可见性。
在应用结果限制之前,会移除位于调用方有效可见性范围之外的结果。启用生成会话可见性时,沙箱代理仍仅限于其生成的会话。隐身会话仍被排除;将可见性从 all 收窄会阻止普通
跨代理访问。
摘录在返回给模型之前会被脱敏。结果还受数量、摘录长度和总响应大小的限制。
Control UI 搜索¶
命令面板和 Threads 页面会将它们的会话筛选条件发送到 Gateway,Gateway 会在该范围内搜索完整的已授权索引历史。浏览器不会下载 会话列表来选择要搜索哪些转录,并且列表页大小不会 排除较早的匹配会话。
在你切换到另一个对话后,命令面板还会根据标题或转录,查找分配给自定义侧边栏分组的代理创建的对话。 未分组的生成会话和子代理运行仍被排除在面板之外。 分组不会授予访问私有对话的权限,也不会在活动搜索中包含隐身或 已归档会话。
搜索返回一组有上限的最佳匹配。匹配数量超过结果限制属于 正常情况,而不是索引不完整警告;请细化查询以缩小结果。真正的 索引工作以及被排除在搜索之外的冷归档转录具有单独的状态 消息。当冷转录历史所在的会话被打开 且历史被恢复后,它再次变得可搜索。搜索不会自动恢复已归档历史。
索引生命周期¶
OpenClaw 会在每个代理的 SQLite 数据库中,将全文索引存储在转录行旁边。 新的用户和助手消息会在持久化它们的同一事务中被索引,因此索引永远不会落后于实时对话;工具结果、推理块和图片被排除在外。 只有转录的活动分支可搜索。
早于索引的转录(例如,由 openclaw doctor 导入的会话)以及
活动分支被回退的会话,会由后台协调重新索引,该协调从下一次搜索开始。因此,带有 indexing: true 的响应可能不完整;请在索引完成后重试。删除会话会在同一事务中移除其索引条目。
搜索使用 SQLite 的 Unicode 单词分词器,并去除变音符号。
会话搜索与记忆搜索¶
对于来自原始会话转录的精确单词或短语,请使用 sessions_search。对于持久记忆文件和语义回忆,请使用
memory_search。
实验性会话记忆语料库 是这种精确转录搜索的语义
补充。
相关¶
- 会话工具 — 公开此搜索的
sessions_*工具接口
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw