目录:ACP 协议API 网关与控制器附件启动与插件管理客户端运行时客户端 UI 包上下文压缩上下文注入核心运行时凭据与授权交付物文档处理实验特性宿主扩展反馈通道文件系统目标与计划工具守卫Hooks 扩展宿主服务交互命令作业调度LLM 适配LSP 集成MCP 协议规划模式Agent 预设代码执行运行时运行时诊断沙箱定时调度SDK 与协议会话核心会话检索设置Shell 执行技能溢出存储SSH 远程执行存储子代理子进程终端待办类型契约框架 vendorWeb 访问Webhook工作流工作区
依赖链 · 上游(该插件依赖的前驱):
依赖链 · 下游(依赖该插件的节点):
无下游(叶子/被消费端)
同一拓扑层(Layer 3,层次遍历层序):
dsh-api-gatewaydsh-commandsdsh-config-editordsh-deepseek-account-platformdsh-experimental-webworker-runtimedsh-hook-protocoldsh-host-frontend-staticdsh-host-open-in-appdsh-llm-pi-aidsh-personadsh-session-log-deepseekdsh-session-persistence-jsonldsh-session-projectiondsh-session-query-sqlitedsh-session-telemetry-oteldsh-skill-badgedsh-skill-filesystemdsh-skill-officedsh-user-approvaldsh-web-fetch-httpdsh-web-search-exadsh-web-search-perplexitydsh-webhook-githubdsh-workspace
插件信息
| 包名 | @deepseek-ai/dsh-llm-pi-ai |
|---|---|
| 分组 | G23 · LLM 适配 |
| 拓扑层 | Layer 3(层次遍历:被依赖方先于依赖方) |
| 源码路径 | packages/llm/llm-pi-ai |
① 实现逻辑
以 @earendil-works/pi-ai 为后端实现通用多 provider LLM 适配器:PiAiAdapter 每次操作捕获一个不可变 snapshot(profiles 与其 Models 集合),保证一次调用的 provider/模型/凭据在 await 期间冻结 (src/adapter.ts:232-241, 330-348)。config.ts 按 provider 路由解析 profile、物化模型目录与注册时捕获的 retryPolicy (src/config.ts:410-509),context.ts 把 harness 消息历史(含持久图像解析与 offload 占位)转成 pi-ai 的 Context (src/context.ts:262-338)。index.ts 以设置驱动注册/原子替换适配器路由与可配置目录,并注册按命名空间的模型发现 (src/index.ts:285-316, 275-278);auth.ts 与 login.ts 把 harness 的 credentials/authorization seam 桥接到 pi-ai 的凭据存储与登录流 (src/auth.ts:141-231, src/login.ts:120-160)。
内部结构动态 DAG(深色主题:橙色=上游依赖 · 绿色=下游依赖 · 棕色=外部seam · 蓝=本插件)
本插件
上游依赖
下游依赖
外部 seam
② 注册/提供(provides)
- pi-ai 多 provider LLM 适配器 (向 ctx.llm 注册一组 provider 路由,实现 LlmAdapter 并声明各路由 retry policy)
- pi-ai 凭据/登录桥接 (把 credentials 记录与 authorization 流程映射为 pi-ai 的 CredentialStore/AuthContext 与登录事件)
③ 依赖(depends_on · 上游前驱)
dsh-authorizationE1+E2
把 pi-ai 的登录会话翻译成 harness 中立的通知/提问流程
src/login.ts:12 import type AuthorizationMethod + src/login.ts:138 ctx.authorization.registerFlow
dsh-llmE1+E2
实现并注册 llm seam 适配器,复用其错误类型、图像投影与目录 API
src/adapter.ts:41 import LlmAdapter/attributionHeaders + src/index.ts:94 inject llm + src/index.ts:302 ctx.llm.registerAdapter
dsh-settingsE1
激活 settings 服务声明,使插件可按设置命名空间配置 provider 路由
src/index.ts:57 import type {} from '@deepseek-ai/dsh-settings'
④ 被依赖(dependents · 下游消费者)
无下游(叶子/被消费端)