dsh-agent-context-hub:多 Agent 会话索引与共享上下文板

前言

在 DSH、Codex、Claude Code、Trae 之间切换时,常见情况是:上一轮在某个 agent 里定过的方案,换工具后只能凭记忆或翻各自目录里的会话文件;同一仓库被多个 agent 轮流改,历史散在不同路径;远程机器上的 Codex 会话在本机列表里根本看不到。结论若只留在某次聊天里,下一个 agent 往往只能猜。

下面介绍 DSH 插件 dsh-agent-context-hub(面板名「上下文中枢」)。它把本机各 agent 的会话历史合并成一份只读索引供 DSH 使用,并提供一块所有 agent 都能读写的共享上下文板,让「谁在哪个项目上做过什么、当时怎么定的」在同一时刻对齐。

这是什么

  • 包名:dsh-agent-context-hub,DSH bundle + Web 客户端面板。
  • 维护者:GitHub 仓库 Sirius-rocco/dsh-agent-context-hub(作者 wuqi,许可证 MIT,当前 package 版本 1.1.0)。
  • 定位:跨 agent 会话索引 + 只追加的共享上下文 + CLI/HTTP 可编程接口;索引版本 INDEX_VERSION = 5。磁盘与 HTTP 契约见仓库内 CONTRACT.md,给 agent 用的说明见 SKILL.md。

默认数据目录为 ~/.dsh/agent-context,可用环境变量 DSH_AGENT_CONTEXT_HOME 覆盖。

核心功能

插件能力可归纳为三块,共用同一份数据目录。

跨 agent 会话索引

只读索引,按项目(cwd)分组。列表行带来源 agent 徽标(Codex / Claude Code / DSH / Trae / 通用接入)与时间;搜索可命中标题、项目、首条人类提问、会话 ID。远程 Codex 会话在索引里只有元数据,点开正文时才通过 SSH 读取;Trae 适配器索引本地落盘的记忆摘要(每回合 intent / outcome / learned 及 topics.md),行上标「摘要」,正文页会说明原文不在本机。

当前 README 列出的数据来源包括:

来源 本机路径(摘要) 正文完整度
codex ~/.codex/sessions/**/rollout-*.jsonl 完整,按需读
claude-code ~/.claude/projects/<slug>/<uuid>.jsonl 完整,按需读
dsh ~/.dsh/sessions/**(多帧 zstd) 完整,按需读
trae ~/.trae-cn/memory/projects/... + workspace 反查 cwd 仅摘要
inbox ~/.dsh/agent-context/inbox/*.jsonl 取决于写入方

入口:面板「会话」标签页、GET /agent-context/api/list、node lib/cli.mjs list。

共享上下文板

只追加的 shared.jsonl,条目类型为 decision / handoff / task / note,可带 tags 与 refs,任意 agent 可读。digest 把共享板压成一段 Markdown,便于贴进新会话,减少人肉转述上一轮结论。

入口:面板「共享上下文」、GET|POST .../shared、cli context / cli share / cli digest。

可编程接口

CLI 与 HTTP 是同一份数据的两个出口(面板走 HTTP,前缀 /agent-context/api,本机 Web 端口示例为 56842)。agent 可按 SKILL.md 自行查旧会话、写回共享板。

注意:shared.jsonl 是唯一不可通过重扫重建的数据;删 index.json 后执行 scan 可重建索引。

安装与启用

插件以 DSH bundle 形式安装。前提:Node ≥ 22.15(DSH 适配器用 zlib.zstdDecompressSync 解多帧 zstd;Node 20 上该来源会被跳过并在 warnings 中说明)。

有 dsh 启动器(推荐)

本地路径安装(路径按本机实际修改):

dsh plugin add "C:\path\to\agent-context-hub"

市场发布后也可按仓库地址安装(见仓库 docs/MARKET.md):

dsh plugin add github:<owner>/dsh-agent-context-hub

没有 dsh 在 PATH 上

可在 DSH 会话中让 agent 通过插件管理器安装本地插件,或合并 profile 的 package.json(勿整体覆盖),例如:

{
  "dependencies": {
    "dsh-agent-context-hub": "link:C:/path/to/agent-context-hub"
  },
  "dsh": {
    "profile": {
      "bundles": ["dsh-agent-context-hub"]
    }
  }
}

profile 目录一般为 ~/.dsh/profiles/<profile>/。改完保存并刷新 DSH 页面。

装完后的验证

  1. 刷新页面(F5)。client.js 由 host 在加载时注入,不刷新可能看不到侧栏图标。
  2. 确认 host 存活:
curl.exe -s http://127.0.0.1:56842/agent-context/api/ping

期望返回形如 {"ok":true,"at":"...","name":"agent-context-hub"}。
3. 触发首次扫描(在插件目录或已 link 的环境中):

node lib/cli.mjs scan

典型用法

面板

侧栏进入「上下文中枢」:

  • 会话:左列按项目分组,搜索框匹配标题、项目、首条提问、会话 ID;右侧按消息分段,工具输出可折叠。远程会话点开时才拉正文。
  • 共享上下文:按类型与 agent 过滤、关键词搜索,可「+ 写入」决策或交接。

CLI

在插件仓库根目录执行(Windows 示例与 README 一致):

node lib/cli.mjs scan
node lib/cli.mjs list --limit 5
node lib/cli.mjs show --id dsh:7f8730e6-82cd-4f06-b046-0e03bd037ec1
node lib/cli.mjs stats
node lib/cli.mjs share --title "索引改为按内容摘要" --body "..." --kind decision --tags index,search
node lib/cli.mjs context --q 索引 --limit 10
node lib/cli.mjs digest --limit 5
node lib/cli.mjs paths

不传子命令时等价于 list。退出码:0 成功,1 失败,3 无结果(空搜索也算正常,便于脚本判断)。

查看实际数据路径:

$env:DSH_AGENT_CONTEXT_HOME = "D:\agent-context"
node lib/cli.mjs paths

HTTP(节选)

方法 路径 用途
GET /agent-context/api/ping 存活探针
GET /agent-context/api/list 会话列表(refresh=1 强制重扫)
GET /agent-context/api/shared 共享上下文列表
POST /agent-context/api/shared 写入一条共享上下文
GET /agent-context/api/digest 共享板导出 Markdown
GET /agent-context/api/transcript?id=<agent:id> 单会话正文

适用场景与注意

适合谁:经常在 Codex、Claude Code、DSH、Trae 之间切换、又需要在同一项目 cwd 下对齐历史与决策的开发者;需要把远程 Codex 元数据纳入本机索引、或把 Trae 本地摘要纳入检索的场景。

使用前请知悉:

  • 插件随当前 DSH 进程权限运行,安装前应自行审阅源码与 MIT 许可证。
  • DSH 社区插件目录站点 skillhub.cn 与 DeepSeek / 幻方无官方从属关系;生态理念是「一切皆插件」,本文事实以仓库 README 与 package.json 为准。
  • Codex 的 session_index 可能存在「仅有索引记录、无本地或远程 rollout」的会话,正文不可读;README 扫描输出中有相应 warning 示例。
  • 定时同步等运维细节见仓库脚本与文档(如 npm run sync 对应 node lib/cli.mjs scan --quiet)。

结尾

dsh-agent-context-hub 把多 agent 会话收成一份可搜索索引,并用共享板固定跨 agent 的 decision / handoff,换工具时上下文不必再从零拼接。目录页:https://www.skillhub.cn/plugins/Sirius-rocco/dsh-agent-context-hub;源码与完整说明:https://github.com/Sirius-rocco/dsh-agent-context-hub。

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

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

Xiaoye