@@ -31,7 +31,7 @@ dsh --profile web --patch ./extra.yml --dump-config
## 插件管理
`dsh plugin --profile <name> <args...>` 在 profile 缺失时先初始化它(有随附模板的用模板,其他名称只装 `@deepseek-ai/dsh-base` ),然后以 profile 目录为工作目录,把 `<args...>` 转发给 `pnpm` : `add` 、`remove` 、`why` 、`update` 及其他所有 pnpm 子命令都照常可用; pnpm 必须在 PATH 上。相对路径 spec( `.` 、`../plugin` 及其 `file:` /`link:` 形式)会先锚定到调用目录,因此在插件 checkout 中执行 `add .` 安装的是该 checkout, 而不是 profile。每次成功运行后, `dsh.profile.bundles` 都会与已安装状态对齐:每个解析到 manifest 中声明了 `"dsh": { "bundle": { "patch": "./cordis.patch.yml" } }` 的包的依赖 加入层栈(因此让包获得该声明的 `update` 会将其激活),没有组合包声明的依赖保持为普通依赖并给出一次性警告,已移除的依赖则退出层栈。
`dsh plugin --profile <name> <args...>` 在 profile 缺失时先初始化它(有随附模板的用模板,其他名称只装 `@deepseek-ai/dsh-base` ),然后以 profile 目录为工作目录,把 `<args...>` 转发给 `pnpm` : `add` 、`remove` 、`why` 、`update` 及其他所有 pnpm 子命令都照常可用; pnpm 必须在 PATH 上。相对路径 spec( `.` 、`../plugin` 及其 `file:` /`link:` 形式)会先锚定到调用目录,因此在插件 checkout 中执行 `add .` 安装的是该 checkout, 而不是 profile。每次成功运行后, `dsh.profile.bundles` 都会与已安装状态对齐:解析结果为某个包、且该包的 manifest 中声明了 `"dsh": { "bundle": { "patch": "./cordis.patch.yml" } }` 的每个依赖都会 加入层栈(因此让包获得该声明的 `update` 会将其激活),没有组合包声明的依赖保持为普通依赖并给出一次性警告,已移除的依赖则退出层栈。
``` sh
dsh plugin --profile tui add github:deepseek-harness/turtle-ui
@@ -51,7 +51,7 @@ dsh web --patch ./extra.cordis.yml
dsh web --dump-config
```
生产 Web 运行器需要已构建的包和前端产物(`pnpm run build` )。默认服务地址是 `http://127.0.0.1:3080` 。绑定所有接口时,还会信任机器自动发现的 LAN IP 字面量;`--trusted-host` 可添加 `/api` 浏览器信任围栏接受的具名 authority。
生产 Web 运行器需要已构建的包和前端产物(`pnpm run build` )。默认服务地址是 `http://127.0.0.1:3080` 。绑定所有网络 接口时,还会信任机器自动发现的 LAN IP 字面量;`--trusted-host` 可添加 `/api` 浏览器信任围栏接受的具名 authority。
进程关闭时会给插件树最多 5 秒完成 dispose。第一次 `SIGINT` /`SIGTERM` 启动该优雅排空;第二次信号强制立即退出。如果一次性运行正常结束时已经卡在 dispose 中,第一次 `Ctrl+C` 就会升格并立即退出,而不会被吞掉。
@@ -61,15 +61,15 @@ dsh web --dump-config
`DSH_TOOLS_MODE` 为进程选择 `native` 、`code` 或 `both` ;其他值会导致启动失败。[`config/core-web.cordis.yml` ](../config/core-web.cordis.yml ) 是可选的 RL 兼容 `--patch` overlay: 它固定使用 `native` 模式,仅将 `DSH_SYSTEM_PROMPT` 或 `You are a helpful software engineer assistant.` 渲染为系统提示词,禁用 Workspace 指令与所有 Web 运行时提示词贡献, 并且在保留随附宿主、浏览器、workspace、持久化和权限组合的同时, 仅暴露持久 `bash` 和 `str_replace_editor` 。
`DSH_SYSTEM_PROMPT` 会传给系统提示词的 [`persona` ](../../../packages/core/system-prompt/README.md#config ):完整的 `{{…}}` 分组遵循该契 约的严格变量插值规则,且无法转义为字面花括号;任何已设置的值(包括空字符串)都具有权威性,因此空值会移除系统提示词,只有未设置该变量时才会选择后备值。
`DSH_SYSTEM_PROMPT` 会传给系统提示词的 [`persona` ](../../../packages/core/system-prompt/README.md#config ):完整的 `{{…}}` 分组遵循该约定 的严格变量插值规则,且无法转义为字面花括号;任何已设置的值(包括空字符串)都具有权威性,因此空值会移除系统提示词,只有未设置该变量时才会选择后备值。
## 共享部署行为
基础组合包挂载原生 DeepSeek 适配器、settings 与凭据提供方、稳定的 `web_search` 、repository Plugin 支持和会话遥测。提供方凭据依次从继承环境、`$DSH_HOME/.credentials.yaml` 、调用目录的 `.env` 和 `$DSH_HOME/.env` 解析;受管文档从不物化进 `process.env` ,而两个 `.env` 文件都是普通启动环境层。搜索使用 `DEEPSEEK_API_KEY` 并接受 `DEEPSEEK_SEARCH_BASE_URL` ;只有 patch 层插入提供方并启用 `web_fetch` 后,该工具才可用。
基础组合包挂载原生 DeepSeek 适配器、settings 与凭据提供方、稳定的 `web_search` 、repository 插件 支持和会话遥测。提供方凭据依次从继承环境、`$DSH_HOME/.credentials.yaml` 、调用目录的 `.env` 和 `$DSH_HOME/.env` 解析;受管文档从不物化进 `process.env` ,而两个 `.env` 文件都是普通启动环境层。搜索使用 `DEEPSEEK_API_KEY` 并接受 `DEEPSEEK_SEARCH_BASE_URL` ;只有 patch 层插入提供方并启用 `web_fetch` 后,该工具才可用。
会话事件默认作为 OTLP/HTTP 日志流式发送。`DSH_TELEMETRY_OTLP_URL` 选择其他 collector。任何非空 `DSH_TELEMETRY_DISABLED` 都会在启动前禁用遥测配置行。随附基础配置没有遥测脱敏规则,因此导出的记录可能包含消息文本、工具参数与结果以及 workspace 路径;该部署决策由[遥测 Agent Note ](../../../.agents/notes/implemented/feature/2026-07-31-web-telemetry-default-mount.md )负责。
会话事件默认作为 OTLP/HTTP 日志流式发送。`DSH_TELEMETRY_OTLP_URL` 选择其他 collector。任何非空 `DSH_TELEMETRY_DISABLED` 都会在启动前禁用遥测配置行。随附基础配置没有遥测脱敏规则,因此导出的记录可能包含消息文本、工具参数与结果以及 workspace 路径;该部署决策由[遥测 Agent Note ](../../../.agents/notes/implemented/feature/2026-07-31-web-telemetry-default-mount.md ) 负责。
空 `repository-plugins` 行让 profile 的 patch 层能够挂载已准备的不可变 repository Plugin generation。参见 [repository Plugin 契约 ](../../../packages/self-modification/repository-plugin/README.md#standalone-app-configuration )。CLI 还随附 `@deepseek-ai/dsh-mcp-client` 作为供 patch 层使用的依赖,但默认不启用 MCP 服务器,因为每条服务器命令都是 agent( 智能体) 沙箱之外的受信任可执行代码。
空 `repository-plugins` 行让 profile 的 patch 层能够挂载已准备的不可变 repository 插件 generation。参见 [repository 插件约定 ](../../../packages/self-modification/repository-plugin/README.md#standalone-app-configuration )。CLI 还随附 `@deepseek-ai/dsh-mcp-client` 作为供 patch 层使用的依赖,但默认不启用 MCP 服务器,因为每条服务器命令都是 agent( 智能体) 沙箱之外的受信任可执行代码。
## 源码启动器