FlashAnchor(闪电锚点):DSH 跨会话全文搜索与块级定位

前言

在 DSH(DeepSeek Harness)里做智能体开发,会话一多,想找「某次工具返回里写过的一句配置」「某段思维链里的假设」并不轻松:内置界面往往只能按会话翻页,关键词命中在轮次中部时也很难直接落到对应段落。FlashAnchor 是社区插件 dsh-flash-anchor(目录归类为「记忆」),在 Host 侧建本地索引,用全文检索覆盖多类语料,点击结果通过 Scroll Router 滚到产生命中的块并高亮,而不是停在会话顶部。索引与查询均在本机完成,插件不发起外部网络请求。维护与产品方向由 BR-PC 负责;实现见 GitHub 仓库。当前公开版本为 v1.6.1(MIT 许可证)。

这是什么

FlashAnchor 是运行于 DSH Desktop / DSH Web 的 bundle 插件,包名 flash-anchor。它读取各会话中的正文、思维链、工具调用与结果、输入/输出文件等可检索内容,在单一搜索框内查询;结果携带块级地址,跳转时展开折叠卡片并把命中块滚到视口中心。DSH 生态主张「一切皆插件」;SkillHub 目录页 为社区收录,与 DeepSeek / 幻方无官方从属关系。

核心功能

搜索范围与类型

插件支持六类目标:思维链(reasoning)、正文(modelText)、工具调用/结果(tools)、输出文件(outputFiles)、输入正文(userText)、输入文件(inputFiles)。范围可选全部会话或指定一个会话;若会话不存在会明确提示,而非伪装成无匹配。结果页可按类型、会话、时间或相关度筛选;查询词本身可匹配文件名,无需单独后缀筛选。同一搜索请求再次打开时优先读取物化视图快照(仅保存结果 ID 与每会话 seq),筛选条件变化时页面用请求签名门控,避免在 chips 下混入另一套筛选结果。

定位(Scroll Router)

每条命中携带块地址字段,包括 turn、step、messageId、toolCallId、blockIndex、seatIndex、blockKind、fileIndex、chunk 等。定位流程先解析 Chat 节点 key(例如 14:assistant-step<turn>:<step>、9:tool-call<id>、13:input-message<id>),再在节点内按块文本匹配,展开折叠的思考或工具卡片,最后将该块滚到视口中心并仅高亮该块。虚拟列表未挂载时会等待 Chat 视图就绪,并结合轨迹栏轮次、loadThrough 与转录区滚动做多重兜底。若无法精确定位,会报「未定位到」,不会用同轮邻居消息顶替有独立地址的命中。

性能与隐私

索引未变时复用语料缓存,README 给出的实测参考为:命中较少的查询 p50 约 6–8 ms;单字符等宽匹配在 24 会话 / 12 900 文档规模下约 200 ms。索引按会话分片写入 $DSH_HOME/flash-anchor/index/(gzip),只重写变化会话。搜索进行中后台索引让路;支持 1–8 线程 Worker 池,OOM/超时/崩溃时可降级为内联扫描并指数退避恢复。

全部索引、查询与跳转在本机 Host 完成,无 API Key、无插件侧外网请求。落盘目录为 $DSH_HOME/flash-anchor/(含 state.json、索引分片、errors.log 等);为让历史会话可搜,索引中保存会话文本的可检索副本,仅驻留本机。关闭「自动索引」或执行「清空」可移除本地索引;插件不修改 Host 侧的会话源数据(只读)。

安装与启用

推荐从 GitHub Release 安装 tgz,不要凭仓库名自行拼接 CLI 安装串。

  1. 打开 Releases,下载最新的 flash-anchor-x.y.z.tgz(当前资料中为 v1.6.1)。
  2. 在 DSH 中安装该包:
    - 桌面端:设置 → 插件 → 安装本地插件 / 插件管理器,选择下载的 tgz;或
    - 命令行/Agent:调用插件管理器 install_bundle,目标填 file:<tgz 绝对路径>。
  3. 确认当前 profile 的 bundle 列表中出现 flash-anchor 且已启用。
  4. 重启 DSH Desktop(Host 半在启动时加载;Client 半可热替换,必要时 Ctrl+R)。

经过上面的步骤,左侧栏底部应出现 闪电锚点 入口。插件在 当前 DSH 进程权限 下运行,安装前宜自行查看源码与 MIT 许可证。

典型用法

操作 说明
打开 左侧栏底部「闪电锚点」
搜索 输入关键词后 Enter;结果按会话分组,显示命中轮次与时间
筛选 设置中配置范围(全部/指定会话)、目标类型、排序;结果页顶部 chips 对应当前页面的筛选
历史 历史条目保存当时那次搜索的结果与耗时;索引变化后会提示缓存可能过期,可一键更新
定位 点击结果 → 打开会话 → 展开折叠 → 滚动并高亮命中块;失败有明确提示

结果页 chips 含义(来自 README):缓存 表示来自物化视图;原搜索 Nms 为当初搜索耗时;建面/匹配 为当初分段耗时;实时搜索则显示本次耗时。

适用场景与注意

适合会话量大、需要跨轮次检索工具输出、配置片段或长文产物的 DSH 用户。搜索为子串匹配(大小写不敏感),不做分词与同义词;中文短词效果取决于原文表述。单文档最多索引 256 段(约 1 MB),超出不可搜;默认结果上限 400 条(可预加载到 2000)。首次清空索引后建面需读全部会话日志(README 举例:24 会话约 1.4 s);冷启动定位通常需 2–8 s 等待视图挂载。定位依赖 Chat DOM 契约(如 data-chat-turn、data-chat-node-key 等),DSH 大改版后可能降级为「只到该轮」;诊断可查看 $DSH_HOME/flash-anchor/errors.log 中 [client:jump] 行。

结尾

FlashAnchor 把跨会话检索与块级跳转收进一个本机搜索框,减轻「记得谈过、找不到段落」的成本。安装包与版本说明见 GitHub;目录介绍见 SkillHub:BR-PC/dsh-flash-anchor。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜