Skip to content

应用装配:配置层、服务依赖与运行实例 ​

app-boot 将命名 profile 的 bundle 与覆盖层交给 Loader;Cordis 按服务依赖激活插件,配置编辑与重载共同协调运行实例。配置组合、依赖满足和实例激活各有可观察结果。

配置所有权与插件运行依赖

箭头表示标注的调用或依赖关系;点击组件定位正文。完整关系见下方文字说明。

文字关系说明与章节链接

Profile / patches →(配置输入)→ app-boot;app-boot →(组合条目)→ Loader / Cordis;config-editor →(写入覆盖项)→ Profile / patches;HMR →(请求重载)→ app-boot;Loader / Cordis →(管理实例)→ Providers / consumers。

Profile / patches · app-boot · Loader / Cordis · config-editor · HMR · Providers / consumers

app-boot 选择应用组合 ​

受支持的 Node 应用由 dsh 的命名 profile 启动。dsh-app-boot 负责加载环境、解析配置并启动 Loader;dsh-cmdline 负责应用自己的参数和退出状态。

// 用户选择命名 profile,启动其 bundle 与 patch 组合的应用。
dsh --profile web

固定版本中的 web、headless、sdk、acp 在 base 上叠加不同入口,sdk-minimal 则要求显式选择能力。因此浏览器是否存在、是否提供标准自动化协议、能调用哪些工具,首先取决于装配,而不是用户消息里写了什么。

配置覆盖层决定有效条目 ​

app-boot 读取所选 profile,依次应用有序 bundle、profile patch、home patch 和命令行 patch。后面的修改可以覆盖前面的选择;插件配置按整行替换处理,不能把它理解为任意深度的对象合并。

Loader 最终拿到的是具体插件条目、配置和禁用状态,再据此创建作用域。需要解释某个插件为何启用时,应检查最终配置;--dump-config 用于查看这次组合的结果,不能只看 base 的声明。

// 用户预览本次配置组合;输出含配置中的拒绝加载行,不代表运行实例已激活。
dsh --profile web --dump-config

Cordis 连接服务定义、提供者与消费者 ​

Loader 加载服务定义、提供者和消费者后,消费者才能获得所需的 ctx 服务。读文件任务至少需要执行 Agent 的组成、模型提供者以及文件工具所依赖的文件能力;Web 入口还要装配网页与会话控制器。

配置中的 !!js 只允许出现在插件 config 和条目 disabled 等指定位置,其他元数据保持字面值。配置错误应在加载时或最早可解析的时点显式失败,避免界面看似可用而能力实际缺失。

配置编辑与 HMR 协调实例变更 ​

dsh-config-editor 写入活动 profile,dsh-plugin-manager 管理当前 profile 的插件与 bundle,dsh-hmr 协调重新加载。

// 完整配置编辑器修改活动 profile 的覆盖项;实际生效仍受 Loader 与更高层 patch 影响。
ctx.configEditor.edit

操作结果分别报告磁盘是否 changed,以及 application 是 applied、restart-required、overridden 还是 failed;写入成功仍可能被更后面的 patch 覆盖。固定版本 base 启用配置 HMR,headless、SDK、ACP 关闭,sdk-minimal 不默认装配。包操作超时属于失败,不能把超时伪装成找不到包再换注册源。

// 重配置成功且生命周期与诊断检查完成后通知监听者;事件不携带配置或差异。
'app-boot/config-reload'
辅助示例

为读取 README 启动 Web profile 时,app-boot 先生成插件表,Loader 再挂载模型、Agent、文件能力和 Web 控制器。若在插件页关闭文件提供者,即使提示词仍要求读取文件,工具将缺少所需的磁盘访问服务;应检查有效配置与应用结果,而不是反复改提示词。

设计取舍 ​

按 profile 和 bundle 组合让一个执行内核服务不同入口,也让最小应用可以省去网页等组件;代价是排错必须追踪配置来源、覆盖顺序和应用状态。固定版本的默认组合只说明仓库设计,不能替代对某次部署的实际检查。

相关包与插件
资料来源与核验范围

本章依据固定版本的官方文档整理,设计取舍根据所述机制分析;核验范围为文档,不包含运行实测。

图示
100%双指缩放 · 滑动查看