前言¶
在 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。