DAG总览 / 组目录 / G23 LLM 适配

dsh-llm-retry · @deepseek-ai/dsh-llm-retry

Layer 5G23
目录:ACP 协议API 网关与控制器附件启动与插件管理客户端运行时客户端 UI 包上下文压缩上下文注入核心运行时凭据与授权交付物文档处理实验特性宿主扩展反馈通道文件系统目标与计划工具守卫Hooks 扩展宿主服务交互命令作业调度LLM 适配LSP 集成MCP 协议规划模式Agent 预设代码执行运行时运行时诊断沙箱定时调度SDK 与协议会话核心会话检索设置Shell 执行技能溢出存储SSH 远程执行存储子代理子进程终端待办类型契约框架 vendorWeb 访问Webhook工作流工作区
依赖链 · 上游(该插件依赖的前驱):
依赖链 · 下游(依赖该插件的节点):
同一拓扑层(Layer 5,层次遍历层序):
↑ Layer 4(13 插件)Layer 5↓ Layer 6(18 插件)

插件信息

包名@deepseek-ai/dsh-llm-retry
分组G23 · LLM 适配
拓扑层Layer 5(层次遍历:被依赖方先于依赖方)
源码路径packages/llm/llm-retry

① 实现逻辑

在 agent loop 的 agent/request-error 恢复扩展点上实现按 provider 路由的模型请求重试:按 ResolvedRetryPolicy 的 normal/always 模式与可重试错误码判定是否重试,计算指数退避加抖动并做可取消等待 (src/index.ts:194-241, 59-64)。每次调度先 append 持久的 llm/retry 事件、等待成功后再记 llm/retry-started,并把每 provider/policy 的重试计数保存在 sessionProjections 的 llmRetry 状态中 (src/index.ts:125-138, 188-191)。invariant.ts 的 companion 校验这些持久记录与当前打开的 turn/step、路由 provider 与策略链一致 (src/invariant.ts:45-146)。

内部结构动态 DAG(深色主题:橙色=上游依赖 · 绿色=下游依赖 · 棕色=外部seam · 蓝=本插件)
本插件 上游依赖 下游依赖 外部 seam

② 注册/提供(provides)

③ 依赖(depends_on · 上游前驱)

dsh-agentE1+E2
在 agent 请求错误恢复点上裁决是否重试,并把重试写入 agent.session
src/index.ts:12 import type Agent/RequestErrorAction + src/index.ts:22 inject agents
dsh-invariantsE1+E2
注册包拥有的重试持久事件不变量 companion
src/invariant.ts:7 import type InvariantInstaller + src/invariant.ts:178 ctx.invariants.register
dsh-llmE1
消费 provider 中立失败事实与已解析的重试策略类型
src/index.ts:13 import type LlmFailure/ResolvedRetryPolicy + src/types.ts:1 import from dsh-llm/types
dsh-sessionE1+E2
向会话日志追加持久重试事件并回放校验既有记录
src/history.ts:3 import type SessionEvent + src/invariant.ts:160 ctx.sessions.list
dsh-session-projectionE1+E2
注册 llmRetry projection 以在重试间保持每 provider/策略的尝试计数
src/index.ts:14 import type {} + src/index.ts:125 ctx.sessionProjections.register

④ 被依赖(dependents · 下游消费者)

dsh-client-ui-chat
模型重试节点与 turn 过程融合
src/client/conversation-nodes/assistant.ts:7 + retry.ts:5
dsh-client-ui-conversation
重试记录节点类型
src/client/contract/records.ts:9 import @deepseek-ai/dsh-llm-retry
dsh-token-meter
识别 llm/retry-started 以正确区分一次 Turn 内的多次尝试
src/turn-usage.ts:3 import from '@deepseek-ai/dsh-llm-retry/types' + src/usage-projection.ts:7 import type {}