jev-laya-dsh 在 DeepSeek Harness 智能体之前加入一个本地 System-1 决策层,遵循…
数据截至 2026/10/8 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
git clone https://github.com/alexdoandev/jev-laya-dsh.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
安装兼容性检查需源码安装仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/11 22:15:08
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
查看扫描证据(共 10 处,展示前 10 条)
- 读取本地文件eval/parity.js:14
const items = readFileSync(join(here, "eval-set.jsonl"), "utf8") - 执行外部命令固定命令eval/parity.js:41
execFile("/usr/bin/curl", ["-s", "-m", "90", "-X", "POST", url, - 读取本地文件eval/run-eval.js:38
const items = readFileSync(setPath, "utf8") - 执行外部命令固定命令eval/run-eval.js:45
execFile("/usr/bin/curl", args, { maxBuffer: 1 << 20, timeout: (timeoutS + 2) * 1000 }, (err, stdout) => { - 写入本地文件eval/run-eval.js:171
mkdirSync(outDir, { recursive: true }); - 写入本地文件eval/run-eval.js:173
writeFileSync(outFile, JSON.stringify({ report, records }, null, 2)); - 执行外部命令固定命令onnx-server/laya-onnx-server.mjs:55
execFile("/usr/sbin/sysctl", ["-n", "kern.memorystatus_vm_pressure_level"], { timeout: 2000 }, (err, out) => { - 读取本地文件onnx-server/patches/apply-multilingual-patch.js:27
src = readFileSync(target, "utf8"); - 写入本地文件onnx-server/patches/apply-multilingual-patch.js:42
writeFileSync(target, src.replace(ORIGINAL, PATCHED)); - 执行外部命令来自配置/变量smoke-test.js:39
execFile(bin, args, { maxBuffer: 1 << 20, timeout: 30000 }, (err, stdout, stderr) => {
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
功能亮点
- 毫秒级路由提示词
- 拦截高风险工具调用
- 本地切换模型
用户 → Jev(Laya)→ 智能体:DeepSeek Harness 智能体的本地 System-1 决策层。Laya(开源、兼容 Jev)毫秒级路由提示词、拦截高风险工具调用、切换模型。100% 本地,$0/token。MIT。
README
由 DeepSeek 最新模型翻译生成展开完整文档(README 剩余 1 节)
jev-laya-dsh
jev-laya-dsh 在 DeepSeek Harness 智能体之前加入一个本地 System-1 决策层,遵循 User → Jev(Laya) → Agent 模式:
User
│ prompt
▼
[1] ROUTER — 事件 agent/pre-step │ Laya 单次前向完成 prompt 分类(task_type / needs_code_model / urgency), │ 融合后的结论以建议性 notice 注入 ▼ [2] GATE — 事件 tools/pre-execute(可选) │ 对高风险工具调用做 3 探针 noul 投票;命中则转人工确认 ▼ [3] AGENT — 大模型执行真正的工作 │ 可选:经事件 agent/request 按 tier 切换模型 ▼ 回答
决策来自 Laya —— 开源、兼容 Jev 的校准决策模型(mmBERT 多语编码器,100+ 语言):不生成文本、无幻觉置信度、单次前向、$0/token、100% 本地。大模型调用只留给真正需要它的工作。
特性
- Prompt 路由 —— 在主模型消耗第一个 token 之前完成分类(chat / code / architecture),结论以建议性 notice 注入。
- 风险闸门 —— 对 bash/pwsh 调用做 3 探针校准投票(破坏性 / 不可逆 / 越出工作区),单批前向完成;触发即转人工确认而非静默执行。
- 按层切换模型 —— 架构/规划类难题(tier 2)可经 agent/request 整回合固定到强模型(RouteLLM / Hybrid LLM 式成本路由)。
- 混合驻留服务 —— ONNX 运行时保持热态(冷启动 2.5 秒、热态 0.3 秒),空闲或内存压力下自动卸载权重,并在会话出现时预测唤醒。
- 构造上即 fail-open —— 每一层退化均为"本轮无路由",决策层永不做单点故障。
- 决策 0 云端 token —— 路由、闸门与评测全部本地运行;大模型只为主要工作计费。
环境要求
- DeepSeek Harness(具备 Cordis 插件 API 的任意部署)用于路由插件 —— 两个服务本身可独立运行。
- Node ≥ 20(ONNX 服务、评测、冒烟测试)。
- Python 3.12+ 与 torch —— 仅一次性 ONNX 导出需要。
- 模型权重:convaiinnovations/laya-multilingual (Apache-2.0,约 1.3 GB)。测试平台为 macOS arm64;任何可运行 onnxruntime-node 的环境应均可。
安装
git clone https://github.com/alexdoandev/jev-laya-dsh.git
cd dsh-jev-meta
1) 权重(一次性)
HF_HUB_OFFLINE=0 python3 -c "from huggingface_hub import snapshot_download; \
snapshot_download('convaiinnovations/laya-multilingual')"
2) ONNX 包(一次性;需 torch)
python3 onnx-export/export_onnx_multilingual.py \
~/.cache/huggingface/hub/models--convaiinnovations--laya-multilingual/snapshots/<rev> \
onnx-export/fp32
3) 服务
cd onnx-server && npm install
LAYA_PORT=8755 LAYA_MODEL_DIR=../onnx-export/fp32 npm start
curl http://127.0.0.1:8755/health # {"ok":true,"ready":true,...}
接入 DeepSeek Harness
向 profile 添加 bundle 与 insert 条目(desktop / web 同理):
<profile>/package.json → dsh.profile.bundles += "@local/dsh-jev-router"
<profile>/package.json → dependencies += { "@local/dsh-jev-router": "workspace:*" }
<profile>/node_modules/@local/dsh-jev-router → 软链到 packages/ 副本
<profile>/cordis.patch.yml
- insert:
- id: local-jev-router
name: "@local/dsh-jev-router"
config:
routing: true
gate: false
modelSwap: true
modelByTier:
tier2: { provider: zai-coding-cn, model: glm-5.3 }
重启应用后每个新回合都会被路由。packages/dsh-jev-decide(拉模式工具 jev_decide)与 /mcp 端点为可选配套。
使用
node smoke-test.js "<任意 prompt>" # 端到端路由检查(fake Cordis ctx)
node eval/run-eval.js [--url http://127.0.0.1:8756] # 61 条评测 + 阈值扫描
curl -X POST http://127.0.0.1:8755/decide \
-H 'content-type: application/json' \
-d '{"state":"...","questions":{"urgent":{"type":"noul","instructions":"Is this urgent?"}}}'
curl http://127.0.0.1:8755/health # ready / loading / memPressure / idleForSecs
curl -X POST http://127.0.0.1:8755/admin/unload # 立即释放权重
curl -X POST http://127.0.0.1:8755/admin/load # 后台预热
服务同时支持 MCP(streamable-http,工具 jev_decide):POST /mcp —— 任何 MCP 客户端皆可消费该决策层。
配置
插件(patch 条目的 config):
| 选项 | 默认 | 说明 |
| routing | true | 在 agent/pre-step 上为每个回合分类并注入 notice |
| gate | false | 启用 tools/pre-execute 风险闸门 |
| gateThreshold | 0.85 | 触发询问用户的 noul 均值阈值 |
| gateTools | [bash, pwsh] | 受闸门约束的工具 |
| timeoutMs | 2500 | 单请求超时;保证回合不被阻塞 |
| wake | true | api-session/added 时预测唤醒 |
| wakeUrl | http://127.0.0.1:8755/admin/load | 唤醒端点 |
| coldRetryMs | 2000 | 服务唤醒后重试一次,仍失败则 fail-open |
| maxPromptChars | 2000 | 作为 Laya state 的 prompt 前缀长度 |
| modelSwap | false | 经 agent/request 将 tier-2 回合固定到 modelByTier.tier2 |
| modelByTier | {} | 每层 {provider, model} 覆盖 |
| routeUtterances | {} | 可选:扩展向量路由的种子语句 |
服务端环境变量:LAYA_PORT(8755)、LAYA_MODEL_DIR、LAYA_IDLE_UNLOAD_SECS (1800)、LAYA_THREADS(4)。
基准
61 条带金标的越南语 prompt(eval/eval-set.jsonl);阈值扫描由 eval/run-eval.js 完成。决策本地运行——无云端 token。
| 信号 | 准确率 |
| 仅 Laya(argmax) | 62.3% |
| 仅向量路由(char-ngram 质心) | 80.3% |
| 仅正则 | 78.7% |
| 融合(Laya × 证据,laya-win ≥ 0.75) | 86.9% |
工作点分层:chat 14/20 · 代码 18/20 · 架构 21/21。
运行时对比(同一基准、同一问题)
| 指标 | Python/torch | ONNX Runtime (Node) | Rust 宿主 (ort) |
| 冷启动 | 7–20 分钟 | 2.5 秒 | 1.2 秒(566 KB 二进制) |
| 热态 decide(3 问,闲机) | 0.14–0.36 秒 | 0.29–0.41 秒 | ≤ 0.5 秒(估) |
| 热态 decide(重载窗口) | — | 6.8–13.6 秒 | 1.5–2.4 秒 |
| Parity | 参考实现 | max \|Δlogits\| = 7.4e-06 | 同图同引擎族 |
| 服务磁盘 | venv 922 MB + 1.7 GB 快照 | 1.29 GB 包 + node_modules | 1.29 GB 包 + 566 KB 二进制 |
| 加载后 RAM | ~0.9–1.8 GB | ~0.9 GB | ~0.57 GB |
Rust 行(benchmarks/rust/)经 ort(onnxruntime 的 Rust 绑定)运行同一 ONNX 图,单一精简二进制——无 Node、无 HTTP 一跳。在重载窗口(三个 rustc 任务、load ~80)下,同一推理比同窗口的 Node 服务快 4–8×;空机时两者皆亚秒级,差距退化为 HTTP 一跳。
Rust 是"完全去掉服务进程"嵌入决策层的最强选项。
工作原理
- 融合策略 —— Laya 结论与词法/向量证据层合并:一致 ⇒ 采信;分歧 ⇒ 模型置信超过调优阈值(0.75)方可推翻证据;低置信 ⇒ 不注入任何 notice。全部阈值位于 packages/dsh-jev-router/lib/index.js,由 eval/ 扫描选出。
- 向量路由 —— 以 char-trigram + 词级 TF 向量构建每层语句质心,纯 JS、微秒级;种子可经 routeUtterances 配置。
- Fail-open —— Laya 宕机/冷态/超时 ⇒ 本轮跳过路由并触发唤醒;工具闸门同样 fail-open。
- 混合驻留 —— 运行时进程常驻(HTTP 恒在);权重在 LAYA_IDLE_UNLOAD_SECS 空闲或 macOS 内存压力告警时卸载,加载完成后有 120 秒宽限与在途请求保护。运维详解见 docs/OPERATIONS.md(容量、杀软扫描风暴、部署清单)。
- 建议而非命令 —— 注入的 notice 只引导智能体,绝不否决回合。唯一能拦截的是闸门层,且仅升级为人工确认。
项目结构
├── laya-server/ Python/torch 参考服务(协议一致) ├── onnx-server/ Node/ONNX 服务(推荐)+ 多语补丁 ├── onnx-export/ checkpoint → ONNX 导出脚本 ├── packages/ │ └── dsh-jev-router/ DeepSeek Harness 宿主插件(router/gate/swap) ├── eval/ 基准集 + 阈值扫描运行器 ├── docs/OPERATIONS.md 运维手册(容量、杀软风暴、部署) └── smoke-test.js 端到端路由检查
贡献
见 CONTRIBUTING.md。路由行为变更必须附带 eval/run-eval.js 的前后数据。
许可证
MIT —— 见 LICENSE。第三方组件保留各自许可(Laya 权重:Apache-2.0, © Convai Innovations —— 多语 ONNX 包发布于 alexdoandev/laya-multilingual-onnx;@receptron/laya:MIT)。"Jev" 为 TypeSafe 产品;本项目仅使用开源、Jev 兼容的 Laya 模型作为独立本地组件。预览分享卡片长什么样 ↓
jev-laya-dsh 在 DeepSeek Harness 智能体之前加入一个本地 System-1 决策层,遵循…