目录:ACP 协议API 网关与控制器附件启动与插件管理客户端运行时客户端 UI 包上下文压缩上下文注入核心运行时凭据与授权交付物文档处理实验特性宿主扩展反馈通道文件系统目标与计划工具守卫Hooks 扩展宿主服务交互命令作业调度LLM 适配LSP 集成MCP 协议规划模式Agent 预设代码执行运行时运行时诊断沙箱定时调度SDK 与协议会话核心会话检索设置Shell 执行技能溢出存储SSH 远程执行存储子代理子进程终端待办类型契约框架 vendorWeb 访问Webhook工作流工作区
依赖链 · 上游(该插件依赖的前驱):
dsh-agentdsh-llmdsh-sessiondsh-session-projectiondsh-session-projection-cachedsh-session-titledsh-subagentdsh-system-prompt
依赖链 · 下游(依赖该插件的节点):
同一拓扑层(Layer 5,层次遍历层序):
dsh-agent-default-modeldsh-agent-instructionsdsh-agent-loopdsh-agent-preset-registrydsh-agent-tool-presentationdsh-api-account-controllerdsh-api-settings-controllerdsh-api-terminal-controllerdsh-api-workspace-filesdsh-bash-sandboxdsh-client-file-uploaddsh-compaction-image-offloaddsh-compaction-tool-result-prunerdsh-cordis-host-runnerdsh-experimental-browser-use-chrome-devtools-mcpdsh-experimental-browser-use-playwright-mcpdsh-experimental-tool-agent-teamdsh-file-reference-localdsh-fs-sandboxdsh-fs-sshdsh-goaldsh-hooks-codexdsh-jobs-localdsh-llm-retrydsh-mcp-resourcesdsh-message-feedbackdsh-permission-presetsdsh-ptc-runtime-nodedsh-pwsh-sandboxdsh-repeat-tool-reminderdsh-sdk-jsonrpc-serverdsh-session-checkpoint-policydsh-session-referencedsh-session-title-all-prompts-llmdsh-session-title-first-prompt-llmdsh-spill-policydsh-terminaldsh-time-contextdsh-tmux-contextdsh-tool-bashdsh-tool-call-timeout-policydsh-tool-fsdsh-tool-fs-searchdsh-tool-jobsdsh-tool-lspdsh-tool-presentdsh-tool-pwshdsh-tool-session-querydsh-tool-skilldsh-tool-str-replace-editordsh-tool-tododsh-tool-webdsh-tool-workspace-dependenciesdsh-user-questionsdsh-web-search-deepseek
插件信息
| 包名 | @deepseek-ai/dsh-session-reference |
|---|---|
| 分组 | G08 · 上下文注入 |
| 拓扑层 | Layer 5(层次遍历:被依赖方先于依赖方) |
| 源码路径 | packages/context/session-reference |
| 来源层 | L2 web-app bundle(base 之上装配) |
① 实现逻辑
跨会话引用解析服务 SessionReferenceResolver(ctx.sessionReferenceResolver):把宿主解析出的结构化会话引用读取为当前表面快照,经订阅 system-prompt/assemble 记录的最近路由计算模型相对字节预算,再把投影出的对话按字节上限保留/截断并渲染为不可信只读上下文(src/index.ts:127-142、src/index.ts:299-358、src/projection.ts:73-146)。在 agent/pre-step 前置监听中把直接用户消息里的规范 @[label](dsh-session:…) 提及替换为可读 @label,并在其后插入聚合的引用快照消息(src/index.ts:135-177、src/uri.ts:48-87)。被截断的预览会把完整转录喂给可选 spillStore,并附一条省略说明(src/spill.ts:23-50)。
内部结构动态 DAG(深色主题:橙色=上游依赖 · 绿色=下游依赖 · 棕色=外部seam · 蓝=本插件)
本插件
上游依赖
下游依赖
外部 seam
② 注册/提供(provides)
- ctx.sessionReferenceResolver (跨会话引用解析服务:读取他会话快照并按字节预算渲染为可信度受限的持久上下文)
③ 依赖(depends_on · 上游前驱)
dsh-agentE1+E2
在 agent 步前把会话引用上下文拼入直接用户消息之后
src/index.ts:10 import type Agent/PreStepDecision + src/index.ts:135 ctx.on('agent/pre-step')
dsh-llmE1
构造引用上下文 user 消息、冻结直接消息,并识别 NO_ADAPTER 以回退默认字节预算
src/index.ts:12 import createUserMessage/freezeMessage/LlmError + src/index.ts:13 import type ContentBlock/LlmResolvedModelInfo/UserMessage + src/types.ts:8-9 子路径类型 import
dsh-sessionE1
使用会话 id / 序列号等不透明标识类型区分源会话与捕获位置
src/index.ts:14 import type SessionId + src/projection.ts:7-8 import SessionSeq/类型 + src/spill.ts:3 import type SessionId + src/types.ts:10 + src/uri.ts:4
dsh-session-projectionE1+E2
从 title/subagent 投影快照派生候选的提及标签与显示标题,避免折叠整个日志
src/index.ts:17 import type ProjectionSnapshot + src/index.ts:248 this.ctx.get('sessionProjections') + src/index.ts:250 projections.snapshot(attached, ['title','subagent'])
dsh-session-projection-cacheE1+E2
对冷会话从持久投影缓存回答标题,无需打开其日志
src/index.ts:18 type-only import + src/index.ts:251 this.ctx.get('sessionProjectionCache')?.cachedSnapshot
dsh-session-titleE1
引入 title 投影键的类型合并以读取会话标题作为提及标签
src/index.ts:19 type-only import (title projection key merge)
dsh-subagentE1
引入 subagent 投影值的类型以优先使用子代理创建标签作为显示标题
src/index.ts:20 type-only import (subagent label projection)
dsh-system-promptE1+E2
在系统提示装配完成后捕获 provider/model 变量作为引用字节预算的模型来源
src/index.ts:21 type-only import + src/index.ts:127 ctx.on('system-prompt/assemble', {prepend:true})
④ 被依赖(dependents · 下游消费者)
dsh-api-remotes
装配会话引用命名空间
src/client/index.ts:20 import remote + src/client/index.ts:52 import remote