dsh-desktop-yida:在 DSH 里用 AI 创建、修改宜搭应用

前言

在 DeepSeek Harness(DSH)里做企业低代码,常见做法是:模型只能帮你写文档或 JSON,真正改宜搭应用仍要人工进控制台拖拽。钉钉宜搭官方 OpenAPI 侧又主要面向「数据」读写,应用与表单结构的创建、修改通常依赖登录态下的内部接口,和纯 OpenAPI 脚本不是同一条路。

下面介绍社区插件 dsh-desktop-yida(维护者 pangxie985,分类:客户端)。它在 DSH 桌面版中封装开源 CLI OpenYida,把「读 Schema → 生成变更 → 执行命令 → 回读校验」接到 DSH 工具层;右侧栏提供「宜搭工作台」,用内置浏览器查看、打开应用。插件当前在 GitHub 上星标为 0,版本以仓库 package.json 为准(资料中为 0.2.0),许可证 MIT。

这是什么

dsh-desktop-yida 是 DSH 的 bundle 插件:Host 半通过 spawn 调用 openyida CLI 访问宜搭;Client 半注册右侧栏「宜搭工作台」,并通过只读的 /yida/api/*(回环 Host)与工作台 UI 同步。分工是「AI 负责改,浏览器负责看」——内置 Electron <webview> 不向模型暴露页面操作能力。

依赖关系可以概括为:

自然语言 → DSH 模型 ⇄ DSH 工具层 ⇄ dsh-desktop-yida(Host)──▶ openyida CLI ──HTTPS──▶ 宜搭
                                              │
                                        /yida/api/*(只读)
                                              │
                          Client「宜搭工作台」⇄ DSH 内置浏览器

OpenYida 使用你自己的宜搭登录态(openyida login),不占用钉钉开放平台授权包;创建/修改应用与表单结构走其封装的登录态接口,与「仅 OpenAPI 改数据」的能力边界不同,使用前宜先读插件 README 中的合规提醒。

核心功能

14 个 yida_* 工具

开工前建议先调只读工具 yida_status,确认 CLI 版本、登录态与工作目录。

工具 类型 作用
yida_status 只读 CLI 版本、登录态、工作目录
yida_org_list 只读 列出登录态可访问的组织
yida_org_switch 写入 切换本地登录组织(仅改本地凭据指针)
yida_apps 只读 列应用;scope:mine / admin / all
yida_forms 只读 列应用下的表单/页面
yida_schema 只读 读表单 Schema;改表单前必做
yida_app_entry 只读 读平台登记的前端入口 / 管理台地址
yida_data_query 只读 查表单数据实例(分页)
yida_urls 只读 推导页面地址;open: true 时在右侧内置浏览器打开
yida_create_app 写入 建应用
yida_create_form 写入 建表单页(字段 JSON;支持 19 种业务组件 + 分组)
yida_update_form 写入 增量改已有表单
yida_patch_form 写入 按 JSON Pointer 深合并改表单
yida_publish_page 写入 编译并发布自定义页面(.canvas.jsx)

写入类工具受「安全闸门」约束:allowRemoteWrites 为真且调用时 confirm: true 才会真正执行;否则只回显完整命令。所有写工具支持 dryRun: true。

右侧栏「宜搭工作台」

在 DSH 桌面版可用:登录态徽标、CLI 来源、「我管理的 / 我能访问」口径切换、应用与表单列表一键打开、地址框粘贴任意宜搭 URL、以及 AI 调用 yida_urls { open: true } 后的自动开页。

DSH web profile 可安装 Host 侧工具,但 README 标明右侧栏与内置浏览器在 web 端不可用(载体与 X-Frame-Options 限制);web 端更适合只当「执行工具」,结果用系统浏览器查看。

安装与启用

前置:DSH 桌面版、Node.js ≥ 20、能登录宜搭的钉钉账号。

官方 README 给出的安装步骤如下。安装脚本会幂等修改 profile,并在改前备份为 .bak-<时间戳>;顺序是先让 openyida 与插件包在 profile 的 node_modules 中可解析,再写 cordis.patch.yml,避免 DSH 热监听配置时加载失败。

git clone https://github.com/pangxie985/dsh-desktop-yida.git
cd dsh-desktop-yida
node scripts/install.mjs

脚本主要做四件事:在插件目录 npm install openyida;在 profile 的 node_modules 建目录联接;更新 profile 的 package.json 与 dsh.profile.bundles;最后写入 cordis.patch.yml 挂载行。

其它入口:

node scripts/install.mjs --profile web   # 装到 web profile(侧栏不可用,见兼容性)
node scripts/install.mjs --uninstall     # 卸载
node scripts/install.mjs --skip-cli      # 不自动装 openyida

重启 DSH 后 Host 半生效(会中断当前会话)。插件以当前 DSH 进程权限运行,安装前应自行审阅源码与 MIT 许可证。

首次使用:登录宜搭

在插件目录使用 bundled CLI(推荐):

node node_modules/openyida/bin/yida.js login

若已全局安装,也可执行 openyida login。登录成功后,在 DSH 中让 AI 调用 yida_status,看到 loginStatus: "ok" 即可。多组织账号可用 yida_org_list、yida_org_switch 切换。

典型用法

对 AI 说需求(推荐)

目标 示例说法
盘点应用 「列出我是管理员的宜搭应用」
看结构 「读一下 APP_XXX 的表单列表」「把某表的 Schema 拉出来」
建应用 「新建一个叫『XX 管理』的宜搭应用」
建表单 「在 APP_XXX 建表单『客户登记』,字段:客户名称、客户编号、联系人手机、地址定位」
改表单 「给客户登记表加一个『是否重点客户』下拉字段(是/否)」
看效果 「在右侧浏览器打开 APP_XXX 的工作台」

AI 侧常见节奏:读 → 改 → dry-run 展示命令 → 确认 → 写入 → 回读校验 → 打开查看。

工作台快捷键

  1. Ctrl + Alt + B 展开右侧栏(Web 版为 Ctrl + Shift + B);
  2. 在 guide 中选择「宜搭工作台」;
  3. 切换「我管理的 / 我能访问」,点击应用上的打开入口。

建表单时的 fields 示例

传给 yida_create_form 的 fieldsFile 可以是如下 JSON(摘自 README):

[
  { "type": "Divider", "title": "设备信息", "dividerType": "bold-with-thin" },
  { "type": "TextField", "label": "设备名称", "required": true, "placeholder": "请输入设备名称" },
  { "type": "TextField", "label": "设备编号", "required": true },
  { "type": "Divider", "title": "客户信息", "dividerType": "bold-with-thin" },
  { "type": "TextField", "label": "客户名称" },
  { "type": "TextField", "label": "客户编号" },
  { "type": "AddressField", "label": "设备定位" }
]

组件完整清单见 OpenYida 字段速查。

不经 AI,直接 CLI

node node_modules/openyida/bin/yida.js app-list --type managed
node node_modules/openyida/bin/yida.js list-forms APP_XXXXXXXX
node node_modules/openyida/bin/yida.js get-schema APP_XXXXXXXX FORM-XXXXXXXX --summary-json

配置项

在 DSH 插件设置中修改(对应 cordis.patch.yml 的 config):

键 默认 说明
cliPath 空 openyida 入口绝对路径;留空则依次找插件自带 node_modules、OPENYIDA_CLI、PATH
projectDir 空 CLI 工作目录;留空用宿主 cwd
baseUrl 空 宜搭站点;留空自动用当前登录站点
allowRemoteWrites true 关闭后所有写入工具拒绝
timeoutMs 180000 单次 CLI 调用超时
maxInlineBytes 24000 工具返回给模型的最大字符数

适用场景与注意

适合谁:已在用 DSH 桌面版、需要在对话里迭代宜搭应用结构、并希望在同一窗口右侧预览应用的人。Windows 在 README 中标注实测通过;macOS / Linux 未实测。

常见问题(摘自文档):yida_apps 默认 mine 只列自己创建的应用,管理员视角用 scope: "admin" 或 "all"。链接指向 www.aliwork.com 时,检查是否应使用企业专属站点,并优先将 baseUrl 留空。登录态过期需重新 openyida login;凭据在用户目录的 openyida auth 路径,与 profile 无关。

合规:OpenYida 非钉钉官方授权工具;README 建议仅对自己有权限的应用使用、写入前保留确认、生产使用前经公司法务或宜搭官方确认。DeepSeek Harness 生态采用「一切皆插件」思路;社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系。

链接

经过上面的步骤,你可以在 DSH 里把宜搭应用的结构变更交给 AI 与 OpenYida 执行,并在「宜搭工作台」里直接查看结果。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜