Pular para o conteúdo principal
9

dsh-plugin-symbai-deepseek

912d/dsh-plugin-symbai-deepseek

Workbench de regras white-box para DeepSeek Harness: transforma regras em linguagem natural em cadeias legíveis e auditáveis executadas por motor determinístico de encadeamento para frente com 171 átomos. Registros comerciais ficam na máquina; a geração envia apenas nomes de campos e texto das regras.

Instalar

dsh plugin --profile web add github:912d/dsh-plugin-symbai-deepseek

README

SymbAI · 白箱规则工作台(DSH 插件)

用 DeepSeek 把大白话业务规则转成可读、可导出的规则链,再由 171 原子前向链引擎确定性执行。 业务数据全程留在本机:只有你主动点「生成规则」时,才会把需求文字与字段名交给 DeepSeek, 不发送任何一条数据记录;规则与数据分离,附完整逻辑库/数据库工作台。

  • 白箱:每条结论可追到具体规则与字段级变更,可倒查、可复算;
  • 两库分离:规则里只有字段名,数据一步都不动;
  • 完整工作台:人工模式 7 种操作 + 大模型模式 + 数据库/原始表格/试算/审计;
  • 本地优先:数据留本机,规则是可带走、可传阅的普通文件。

它最初为基层事务的规则判定而设计:逻辑库只存规则(只有字段名),数据库只存数据(原始表格只读 + sha256 校验)。 断网时,浏览、编辑、试算、写盘全部照常可用。

版本 0.2.5 | MIT | 包内自带整套 SymbAI 应用(app/,约 0.85 MB,供社区用户离线使用)。

English one-liner (for the catalog PR): A white-box rule workbench for DeepSeek Harness: turn plain-language rules into readable, auditable rule chains executed by a deterministic 171-atom forward-chain engine. Your business records stay on your machine — rule generation sends field names and rule text only, never data records.


一、安装后怎么用

  1. 安装 bundle 后刷新一次 Harness 页面(Client 插件需要重新加载模块图);
  2. 侧栏底部(设置按钮旁)出现 SymbAI 工作台 按钮;
  3. 点开即见全屏工作台,默认「本机通道」:
    • 页面自动读取 data_dir 下的 逻辑库/规则/*.json、数据库/数据表/*.json;
    • 点「导出逻辑组 / 导出数据」时直接写回磁盘(写前校验 JSON,旧文件留 .bak);
    • 右下角角标可一键切换「浏览器通道」,面板顶部也有「本机通道 / 浏览器通道」切换;
  4. 需要生成规则时,也可以直接在对话里说:「用 SymbAI 把……转成规则并试跑」,走三个 Agent 工具,使用 Harness 自带的 DeepSeek,无需另配 Key。

二、双通道(配置)

cordis.patch.yml:

config:
  provider: ''        # 留空 = 跟随 Harness 当前模型
  model: ''
  temperature: 0.2
  maxTokens: 3000

  app_dir: ''         # 应用目录;留空=自动探测:工作区 AI/SymbAI2.0 → 否则用包内 app/
  data_dir: ''        # 规则/数据表目录;留空=与 app_dir 相同
  file_channel: both  # both(可切换)| host(只写盘)| browser(只下载/选择文件)
通道导出载入适合
本机通道 Host直接 POST 写回磁盘(原子写 + .bak 备份)页面打开即读磁盘(Host 路由动态生成内置索引),改完点「刷新磁盘」Harness 内日常使用
浏览器通道浏览器下载 JSON/XLSX/CSV选择文件/拖放不想让插件碰磁盘、纯演示、或离线版

首装默认把 app_dir/data_dir 解析到当前工作区的 AI/SymbAI2.0(存在时),写的就是你项目里的真实规则; 社区用户没有该目录时自动使用包内 app/ 副本,写入也落在插件自己的副本里(可通过 data_dir 指到任意目录)。

二·补、主题适配(跟随 Harness 日间 / 夜间)

工作台 iframe 会自动识别 Harness 当前主题(父页面同源时读主题标记/背景亮度;否则跟随系统偏好):

  • 日间:白底 + 紫字(正文/标题紫色 #5b2a86,强调紫 #6b3fa0,边框淡紫;按钮、表格、输入框全部重绘);
  • 夜间:黑底 + 浅黄字(背景 #000,正文/标题浅黄 #f2e6c0,强调黄 #e6c56b);启动页顶栏用浅蓝色底 + 深色字,其余面板/表格/输入框/文档卡片统一深色;
  • 面板外壳(标题栏/按钮/边框/底栏)也按同一套颜色切换,不只是 iframe 内容;面板打开时把当前主题显式传给 iframe(&theme=light|dark),避免主题判断不一致;
  • 主题变化会在 Harness 切换时自动跟随(父页面同源时观察 DOM 标记;否则刷新即可);
  • 调试/截图可加 ?theme=dark 或 ?theme=light 强制主题,例: http://127.0.0.1:<port>/symbai/逻辑库/逻辑库.html?host=1&theme=dark;
  • 两种主题的实测截图在 docs/light-逻辑库.png、docs/dark-逻辑库.png、docs/dark-数据库.png、docs/dark-启动.png。

二·补2、面板白屏排查

  1. 先刷新整页(插件刚启用/刚更新时,Client 需要重新加载模块;必要时重启 Harness);
  2. 面板底部有提示:点「新标签打开」直接访问 /symbai/启动.html,能打开说明路由正常、问题只在 iframe 缓存;
  3. 让 Agent 调用 symbai_doctor:
    • registered: false → 看 routeError(一般是 webServer 服务不可用/路径冲突),重启 Harness 后重试;
    • registered: true 但浏览器 404 → 确认访问的是当前 Harness 端口,并刷新;
  4. 仍异常时把 symbai_doctor 的返回贴给维护者。

三、Host 路由与文件 API

路由方法说明
/symbai/GET整套工作台(原样服务 app/)
/symbai/逻辑库/内置/内置逻辑.jsGETHost 通道下从 data_dir 现读规则生成
/symbai/数据库/内置/内置数据表.jsGETHost 通道下从 data_dir 现读数据表生成
/symbai/api/infoGET目录、通道、规则/数据表数量
/symbai/api/list?kind=rules|dataGET列出可读 JSON
/symbai/api/read?kind=&name=GET读取一个 JSON
/symbai/api/writePOST{kind,name,content} 写回磁盘

安全边界:只允许 逻辑库/规则/*.json 与 数据库/数据表/*.json 两个目录;禁止路径穿越、 禁止非 JSON 内容、禁止跨源请求、请求体上限 4 MB;原始表格(组1~4.xlsx)永远只读,没有任何写入 API。

四、Agent 工具(不变)

工具作用调用模型
symbai_generate_rules大白话需求 → SymbAI v2 规则组(两库边界校验 + 原子引用校验 + provenance)是(Harness DeepSeek)
symbai_check_rules校验规则组:两库边界 / 条件可解析 / 原子 id 存在否
symbai_run_rules171 原子前向链对 records 试跑,返回 final_state / 终止原因 / 逐轮变更否(确定性)
symbai_doctor诊断:工作台路由是否注册、应用/数据目录、通道、原子数;面板白屏时先调它否

模型调用走 Harness 的 llm 服务(实测 deepseek-official / deepseek-flash),不直连外网、不另存 API Key。 生成结果带 nondeterministic: true、human_approved: false,人工确认后才应落库;max_iter 是"没算完"的显式信号。

五、包结构

index.js            Host 半:3 个工具 + 工作台路由注册
client.js           Client 半:侧栏按钮 + 全屏工作台浮层(iframe)+ 通道切换
host/routes.js      静态路由 / 动态内置索引 / 文件 API / 双通道判断
host/hostio.js      注入到应用页面的通道桥(导出写盘、角标、通道切换)
app/                随包携带的完整 SymbAI 2.0 应用(启动页/逻辑库/数据库/文档)
lib/                171 原子 + 前向链引擎 + IR(工具执行用)
locale/, icon.svg   插件市场展示元数据
scripts/sync-app.mjs 从工作区 AI/SymbAI2.0 同步应用进 app/(发布前运行)

六、开发与发布

# 同步最新应用进包(在包目录)
node scripts/sync-app.mjs
# 检查发布内容(社区发布前)
npm pack --dry-run --json --ignore-scripts

发布到社区(待作者决策):

  1. private: true 改为 false;
  2. 确认 npm 包名 dsh-plugin-symbai-deepseek 可用;
  3. npm pack --dry-run 核对文件(当前 56 个文件 / 解包约 1.1 MB;含 app/、host/、lib/、client.js);
  4. npm publish,并把 dsh 字段(bundle.patch + client)与图标/文案提交到插件市场索引;
  5. 发布前用真实 DeepSeek 额度复测 401/余额不足/超时错误路径(当前只有 mock 与正常路径实测)。

七、已知边界

  • 面板是一个 iframe 承载的原应用,不是 React 重写;应用内的「大模型模式」仍走原版离线/本机桥逻辑, 在 Harness 里推荐用 Agent 工具(原生 DeepSeek)生成规则。
  • 浏览器通道下仍受浏览器沙箱限制:保存=下载、载入=选择文件;本机通道才写盘。
  • 22 个控制流/文件 IO/numpy 算法原子保持 unsupported(原设计口径),不会被伪造执行。
  • 修改插件源码后需重启 Harness(或禁用/启用插件)才能加载新的 Host JS 代际;Client 半在刷新页面后生效。

八、本机实测(2026-11-05)

  • 安装:install_bundle → application: applied,v0.2.0;插件行 include:symbai-deepseek active;
  • Client 注册:sidebar.footer.action → symbai-workbench active;shell.overlay → symbai-workbench-overlay active;
  • Host 路由:/symbai/api/info 正常;/symbai/启动.html?host=1&selftest=1 PASS 11/0, 逻辑库页 PASS 16/16,数据库页 PASS 8/8;
  • 双通道:本机通道页 __SYMBAI_HOST__=true,点「导出逻辑组」→ HTTP POST 写回磁盘成功, statusLine 显示「已写入本机:…/AI/SymbAI2.0/逻辑库/规则/逻辑组_订单折扣.json」; 切到 ?host=0 后 __SYMBAI_HOST__=false,角标为「浏览器通道(下载/选择文件)」;
  • 文件 API:写接口 200;路径穿越、非 JSON 内容、浏览器通道写入均被拒绝;
  • 打包:npm pack --dry-run 56 个文件、解包 1.13 MB(含完整 app/)。

Plugins relacionados