# dsh-biz-bridge —— profile bizbridge 用户层补丁(示例) # # 将本文件内容整体覆盖到 $DSH_HOME/profiles/bizbridge/cordis.patch.yml # (默认文件只是注释 + [],可直接替换)。字段逐项说明见同目录 config.md。 # # 分层说明(仅注释): # - 首次 dsh plugin --profile bizbridge add 已把该 profile 初始化为 # bundles=[@deepseek-ai/dsh-base],并把本插件装成第二个 bundle 层; # - 本文件属于用户层(最后应用):只负责“宿主行(webServer)”与本插件 config。 # # 注意:本文件是 YAML 补丁列表,不要在里面夹带 Markdown 围栏或非注释说明文本。 # 1) HTTP 载体:插件的 /bizbridge 前缀挂在它上面 # host/port 按需修改:port 默认 42731(改端口就改这一行)。 # 安全语义:127.0.0.1 只监听本机(推荐默认,最安全)。 # 需要局域网/外部访问时,把 host 改成**本机某块网卡的具体 IP 字面量**(如 192.168.1.10) # 并配合防火墙 —— **DSH 0.2.1 起通配地址 0.0.0.0 / :: 会在加载期被拒**。 - insert: - id: webserver name: '@deepseek-ai/dsh-host-webserver' config: host: "127.0.0.1" port: 42731 # 端口:按需修改(示例值,无特殊含义) compression: gzip compressionLevel: 1 compressionThresholdBytes: 1024 # ── Office 技能(可选):让桥接会话能读/写 docx、xlsx、pptx ────────── # DSH 自带这两个插件(dsh-skill-office 提供 office-docx / office-pptx / office-xlsx), # 但 dsh-base **不带**它们 —— 只挂在 sdk-app bundle 且被 DSH_PRIMARY_RUNTIME 门控。 # 不挂的后果:agent 拿到 docx 后 `read` 只回 "binary file",于是如实拒绝处理。 # # ⚠️ 两个易踩点(详见 config.md §security 与「Office 文档」小节): # ① skill-office 的 assetRoot 与 node 在 DSH 0.2.1 起**均可选**(缺省取包内 assets/ 与 # 当前可执行文件);显式给出时 assetRoot 必须是**绝对路径**; # ② 0.2.1 已移除对 scripts/check_office.py 的强制校验;新增的 office-render / # office-recalculate / office-export-pdf 技能需要 node 能驱动 LibreOffice Kit。 # 另:assetRoot 不要照抄上游 sdk-app 的 `/../office-skills` 推导 —— # 那个目录未必存在(本机实测不存在),直接用 skill-office 包自带的 assets 最稳。 - id: workspace-dependencies name: '@deepseek-ai/dsh-tool-workspace-dependencies' config: # 含 runtime.json 与 dependencies/ 的 payload 目录(提供 python-docx) source: 'C:/Users/admin/.dsh/dsh-runtimes/dsh-primary-runtime' - id: skill-office name: '@deepseek-ai/dsh-skill-office' config: # 取值范围示例: # DSH 安装树:<安装树>/node_modules/@deepseek-ai/dsh-skill-office/assets # 便携包内: <包根>/program/dsh/node_modules/@deepseek-ai/dsh-skill-office/assets assetRoot: 'D:/project-test/dsh-biz-bridge-0.1.4-win-x64/program/dsh/node_modules/@deepseek-ai/dsh-skill-office/assets' # 用于驱动 LibreOffice CLI 的 node(便携包内即 <包根>/program/node/node.exe) node: 'D:/project-test/dsh-biz-bridge-0.1.4-win-x64/program/node/node.exe' # 2) (默认不设置)业务 agent 系统提示词 # 业务桥接场景下,业务意图由每次请求的 prompt 表达,不建议套用 # “coding agent”式人设。需要自定义时再取消下面注释并按需改写: # - id: system-prompt # config: # persona: >- # 你是业务系统的执行代理;上下文以业务方提供的会话为准。 # 3) LLM 默认模型 —— **独立部署(无 dsh web)必须配** # 不配的现象:服务能启动、HTTP 接口全部正常返回,但每个 agent 轮次都失败, # 报 has no provider/model。 # 本节覆盖 dsh-base 自带的 agent-default-model 行。 # 若宿主已通过其它方式配好默认模型(例如用过 dsh web 的设置界面),可删掉本节。 - id: agent-default-model config: provider: deepseek-official model: deepseek-flash # ⚠️ API Key **不在这里**。llm-deepseek 的配置项只有 apiKeyEnv(**环境变量名**, # 默认 DEEPSEEK_API_KEY),没有 apiKey 字段。 # key 放 /.credentials.yaml(可直接编辑,改后无需重启即生效) # 或启动环境变量。解析优先级(0.2.1 起):.credentials.yaml > 环境变量 > 项目 .env。 # 详见 config.md §4.2。 # 3b) 其它模型(可选)—— provider 目录是 **profile 级**的:在 dsh-web 里配的模型**不会** # 自动出现在桥接进程里(两个 profile 各自持有自己的 settings 文档;共享的只有凭据)。 # 要用别的模型,把 provider 段写在这里——与 dsh-web 的 Models 页写的是同一种文档; # 也可以用管理面接口写入(POST /bizbridge/api/v1/admin/models/providers,见 api.md §15)。 # # 下面是被注释的样例(apiKeyEnv 是**环境变量名**,key 放 /.credentials.yaml): # # - id: llm-pi-ai # config: # providers: # xiaomi: # apiKeyEnv: XIAOMI_API_KEY # models: # - id: mimo-v2.6-flash # name: mimo-v2.6-flash # contextWindow: 1024000 # maxTokens: 128000 # 4) 插件配置 - id: dsh-biz-bridge config: runtime: # 单一磁盘根(绝对路径,推荐)。自动派生子目录: # /data/dsh-biz-bridge.db SQLite # /logs/ 运行日志(按天轮转) # /workspace// 各业务 client 的会话工作目录 # Linux(服务器): # path: /var/lib/dsh-bizbridge/runtime # Windows(本地开发,盘符按需): path: E:/dsh-biz-bridge/runtime database: journalMode: "WAL" busyTimeout: 5000 auth: timestampWindow: 300 nonceCacheSize: 10000 # client 公钥表**不在这里** —— 它在 /clients/ 下,改动即时生效、无需重启: # clients/clients.json [{ clientId, scope, enabled }] # clients/.pem 该 client 的公钥(SPKI PEM,整段原文) # 本键只在那个目录尚未建立时作为**一次性迁移来源**,之后不再参与运行; # 首次部署保持空数组即可(空表 = 所有 API 返回 401、静态页可达)。 clients: [] scheduler: pollInterval: 2 maxConcurrency: 5 callbackTimeout: 30 maxRetry: 3 retryInterval: 30 # agent 侧安全约束:业务方的 prompt 与附件一律视为不可信输入(详见 config.md §security) security: policySection: true # 把“输入不可信”策略写入系统提示词 sandboxMode: default # 改 read-only 即禁止 agent 写/删文件(出站产物随之失效) denyTools: [] # 按宿主工具集填写,例如: # denyTools: [bash, pwsh, web_search, web_fetch] attachments: denyInternalHosts: true # SSRF 防护:拒绝内网地址(含 IPv4 映射等写法) # 内网联调(回调地址指向本机)时必须显式放开,且仅放开回调: # allowInternalCallbackHosts: true # allowedHosts: ["files.biz.example.com"] # 收紧拉取来源(空 = 不限制)