前言¶
在 DeepSeek Harness(dsh)里跑智能体时,上下文往往只存在于当前会话:换 profile、关终端或新开一轮对话,之前沉淀的偏好、项目约定和跨会话事实很难自动回到 prompt 里。若再单独维护一套「记忆服务」,还要自己对接注入时机、MCP 调用观测和 token 统计,成本和耦合都会上去。
下面介绍社区插件 dsh-vibe-assistant-bridge(npm 包名 dsh-vibe-assistant-bridge)。它在 dsh 宿主内运行,通过本机 loopback HTTP 与 Vibe Assistant(智管)通信:在 agent 步进前注入共享记忆、上报 MCP 边界与用量、在回合结束时触发采集,并注册 recall / skill 等原生工具。Vibe Assistant 未启动时,后台能力会静默降级,工具返回可读错误,不干扰正常对话。
这是什么¶
dsh-vibe-assistant-bridge 是由维护者 Zafer-Liu 开源的 dsh 插件,在 SkillHub 等社区目录中归类为「记忆」。运行时仅依赖 Node 内置模块(零运行时 npm 依赖),默认连接 http://127.0.0.1:9420。
它解决的是:让 dsh 会话与本地、隐私优先的 Vibe Assistant 工作台对齐——共享 L2/L3 记忆注入、会话结束后的 L0→L1 抽取触发,以及通过 dsh 工具访问记忆中心与已发布 Skill 库,而不必在 dsh 侧重复实现同一套 HTTP 协议。
环境与依赖¶
安装前请确认:
- dsh 版本:
>=0.2.0 <0.3.0(开发者预览阶段;README 说明每经核验发布会放宽引擎范围) - Node.js:
>=22 - 完整能力需要本机运行 Vibe Assistant(注入、遥测、采集、工具)
核心功能¶
六项能力彼此独立,各自 try/catch 隔离,可在配置里单独关闭(见下文「配置」)。
| 能力 | 在 dsh 侧的机制 | Vibe Assistant 端点 |
|---|---|---|
| 记忆注入 | agent/pre-step:首步近似 SessionStart 注入 L3+L2;后续步按内容 digest 去重,相同内容不重复注入 |
POST /memory/context?event=… |
| MCP 观测 | session/event 中 tool/call 与 tool/result 成对;命名空间 mcp__<server>__<tool>;仅上报调用边界与成功/失败,不上报参数或结果体 |
POST /mcp/observation |
| Token 用量 | 每条带 usage 的 assistant/message 记一条用量,模型名来自 model/selection 事件 |
POST /telemetry/usage |
| 会话采集触发 | agent/turn-stopping 通知智管在回合关闭后立即做 L0→L1 抽取,不必等扫描周期 |
POST /collect/trigger |
| 记忆工具 | 原生工具 recall_memory、get_user_profile |
POST /memory/recall、POST /memory/profile |
| Skill 工具 | 原生工具 list_shared_skills、read_shared_skill |
POST /skills/list、POST /skills/read |
当 endpoint 不可达时:注入可回退到本地快照(默认路径见配置表);后台上报静默丢弃;四个工具失败并提示例如「Vibe Assistant is not running or unreachable at http://127.0.0.1:9420」。
安装与启用¶
dsh 桌面(Web UI):打开 Plugins → Add plugin,粘贴 npm 包名:
dsh-vibe-assistant-bridge
CLI:建议固定版本(桌面端 pnpm 相对 @latest 可能滞后最多约 24 小时):
npx @deepseek-ai/dsh plugin --profile desktop add --save-exact dsh-vibe-assistant-bridge@0.1.0
从 Git 引用或本地目录(仓库已附带编译好的 lib/,无需 build):
# from a GitHub ref
npx @deepseek-ai/dsh plugin --profile desktop add git+https://github.com/Zafer_Liu/dsh-vibe-assistant-bridge.git
# from a local checkout
npx @deepseek-ai/dsh plugin --profile desktop add ./dsh-vibe-assistant-bridge
卸载:
dsh plugin --profile desktop remove dsh-vibe-assistant-bridge
社区目录页(与 DeepSeek / 幻方无官方从属关系,仅为独立插件站点):https://www.skillhub.cn/plugins/Zafer-Liu/dsh-vibe-assistant-bridge
配置¶
默认无需改配置。若要覆盖,在 profile 的 cordis.patch.yml 中编辑该插件行的 config(用户层 patch 写同 id 行,后层覆盖前层)。插件在 patch 中的 id 为 vibe-assistant-bridge。
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
endpoint |
string | http://127.0.0.1:9420 |
Vibe Assistant 本机 HTTP |
timeoutMs |
number | 2000 |
每次 bridge 请求超时 |
maxInflight |
number | 8 |
并发 fire-and-forget 上报上限 |
maxPending |
number | 512 |
等待 call_end 的工具调用记忆上限 |
snapshotPath |
string? | ~/.dsh/profiles/desktop/plugins/vibe-assistant-memory-snapshot.md |
离线注入回退;null 关闭 |
features.injection |
boolean | true |
记忆注入 |
features.observation |
boolean | true |
MCP 观测 |
features.usage |
boolean | true |
Token 用量上报 |
features.collect |
boolean | true |
会话采集触发 |
features.tools |
boolean | true |
四个记忆/Skill 工具 |
仅关闭用量上报的示例:
- id: vibe-assistant-bridge
config:
features:
usage: false
典型用法¶
- 本机启动 Vibe Assistant,确认 HTTP 监听与
endpoint一致(默认 9420)。 - 按上文安装插件并启用 desktop profile(或你使用的 profile)。
- 正常在 dsh 中对话:首步及后续 agent 步会自动拉取并注入共享记忆(内容不变则不再注入)。
- 需要主动查记忆或 Skill 时,在会话中让模型调用已注册工具:
recall_memory、get_user_profile、list_shared_skills、read_shared_skill(需features.tools为 true 且智管可达)。 - 若智管临时不可用,仍可能从
snapshotPath读到上次缓存的记忆片段用于注入;观测与采集不会阻塞会话。
README 未提供单独的可复制「端到端演示脚本」;行为以上表事件与 HTTP 映射为准。
适用场景与注意¶
适合:已在或计划使用 Vibe Assistant 做本地记忆与治理,并希望 dsh 会话自动享受注入、MCP 边界观测、token 归因与回合后采集,同时通过 dsh 原生工具访问同一记忆与 Skill 库的开发者。
注意:
- 插件随 dsh 宿主进程运行,具备该进程权限;安装前请阅读 GitHub 源码 与 MIT 许可证。
- dsh 生态理念是「一切皆插件」;SkillHub 等为社区目录,并非 DeepSeek 官方应用商店。
- 当前 npm 版本为 0.1.0,与 dsh 开发者预览版本区间绑定,升级 dsh 或插件时请对照 README 的
engines.dsh范围。
结尾¶
dsh-vibe-assistant-bridge 把 dsh 的 agent 生命周期事件和 Vibe Assistant 的 HTTP API 对齐:共享记忆注入、合规的 MCP 观测、用量与会话采集,以及 recall / skill 工具,且智管离线时不拖垮会话。
- 目录页:https://www.skillhub.cn/plugins/Zafer-Liu/dsh-vibe-assistant-bridge
- 仓库:https://github.com/Zafer-Liu/dsh-vibe-assistant-bridge