前言¶
在 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 页面。
装完后的验证¶
- 刷新页面(F5)。
client.js由 host 在加载时注入,不刷新可能看不到侧栏图标。 - 确认 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。