dsh-runtime-kitv0.1.0

daoyan2142/dsh-runtime-kit

安全管理 MIT 最近更新 2026-11-07
0Stars
0Forks
0待解决 Issue
安装命令 dsh plugin --profile web add github:daoyan2142/dsh-runtime-kit#6b884ada194b92b8e5b02019c420f89d3c75c8c8

介绍

DSH runtime plugin: context governance, fast path, PTC orchestration, sandbox isolation and audit - zero business dependencies

标签

dsh dsh-plugin context-governance fast-path ptc sandbox audit

概述

dsh-runtime-kit

DSH 通用运行时插件 —— 复刻 WorkBuddy 级执行效率与沙箱环境,零业务依赖。

对标规格:DSH-快速执行与沙箱方案.md v2.1(§0–§8)

🎯 核心定位

维度说明
是什么给 DSH 装上「上下文治理 + 快路径 + PTC + 沙箱 + 审计」的通用运行时能力
不是什么不内置任何业务逻辑、不读业务文件、不驱动浏览器、不管账号/选择器/登录态
交付形态单一插件包 dsh-runtime-kit,内部模块化,整体可一键启停
唯一耦合面registry:使用方注册 工具 / 模板 / 工作区,插件只认这三个结构

📦 能力矩阵(对标 v2.1 §4)

代号能力关键特性验收指标
C1上下文治理返回体 ≤4KB 裁剪、字段投影、预算、pruner/compaction、延迟工具加载M1/M2/M3
C2快路径模板注册表、命中即规则执行、0 LLM 调用、幂等键、状态机M4
C3PTC 封装脚本容器内批量调工具、中间结果留容器内、仅摘要进 context、registry 强制约束M2/M3
C4编排裁剪preset 补丁默认关 plan/todo/goal/subagent、可独立配置、--dump-config 核对M1
C5并发与恢复(可选)只读工具并发上限 8、变更工具屏障串行、崩溃隔离、turn/step 持久化、一键回退M5/M9/M10/M12
C6沙箱三档基线 + 三态细粒度规则(文件读/写/删、命令前缀、网络域名)、fail-closed、网络默认拒绝、Windows pwsh、变更快照/回收站、工具粒度管控、工作区信任/受限、注入防护、敏感脱敏、执行域可替换M6/M7/M8/M11/M13/M14
C7审计与指标append-only 流水、脱敏、可导出、token/工具调用/拒绝/审批全指标M1–M14 全覆盖

🔌 对外契约:Registry(唯一耦合面)

// 工具注册
registry.registerTool({
  name: 'my_tool',
  description: '...',
  schema: { type: 'object', properties: {...} },
  isStateChanging: false,      // 是否触发屏障/审批
  returnBudget: 4096,          // 返回体预算
  timeout: 30000,
  handler: async (args) => ({ success: true, data: {...} })
});

// 模板注册(快路径)
registry.registerTemplate({
  name: 'my_template',
  match: (input) => input.startsWith('do something'),
  plan: [
    { tool: 'tool_a', args: { param: 'value' } },
    { tool: 'tool_b', args: (input, prev) => ({ data: prev.get('tool_a')?.data }) },
  ],
  idempotencyKeyFn: (input) => `my_template:${input}`
});

// 工作区注册(沙箱边界)
registry.registerWorkspace({
  profile: 'my-profile',
  root: '/absolute/path/to/workspace',
  networkAllowlist: ['api.example.com'],
  permissionMode: 'workspace-write',
  envPrefix: 'MY_',
  trusted: false,
});

插件不关心 handler 里跑什么——浏览器、HTTP、纯计算均可。


⚙️ 配置(完整 schema 见 config.schema.json)

{
  "context": { "maxReturnBytes": 4096, "fieldsProjection": true, "prunerEnabled": true, "compactionEnabled": true, "lazyLoadTools": true },
  "loop": { "preset": "code", "disabledLayers": ["plan","todo","goal","subagent"], "maxParallelToolCalls": 8, "enableCustomLoop": false },
  "sandbox": {
    "mode": "workspace-write",
    "approval": "ask",
    "rules": {
      "files": [{ "pattern": "**/*.secret", "read": "deny", "write": "deny", "delete": "deny" }],
      "commands": [{ "prefix": "rm -rf", "action": "ask" }],
      "network": [{ "domain": "api.github.com", "action": "allow" }]
    },
    "networkDefault": "deny",
    "backupEnabled": true,
    "deletionProtection": true,
    "injectionGuard": true,
    "sensitiveProtection": true,
    "shell": "pwsh",
    "workspaceTrust": false,
    "toolControl": { "dangerous_tool": false }
  },
  "audit": { "mode": "append-only", "desensitize": true, "exportable": true, "retentionDays": 90 }
}

🧪 验收指标(§6,纯通用夹具,零业务)

#指标通过线
M1首请求输入 token显著下降,给出实测值
M2重复模板任务 10 次平均输入 token降幅 ≥70%(vs 原生 loop)
M3每轮进入 context 的 tool result 字节≤4 KB
M4快路径命中时的 LLM 调用次数= 0
M58 个 echo 并发 wall-clock明显缩短,无状态错乱
M6跨工作区读 / 路径穿越100% 拒绝 + 审计
M7白名单外外联100% 阻断 + 审计
M8策略配置损坏行为fail-closed(拒绝)
M9disable 后官方 loop立即可用、无状态残留
M10跨重启恢复已成功步骤不重复执行
M11凭据/Cookie 在返回/日志/上下文出现次数0(脱敏测试)
M12崩溃工具后的会话主干继续可用、错误结构化
M13工具返回含诱导指令疑似内容不进上下文 + 需确认
M14越界写入/修改已有文件拒绝或需确认 + 变更前快照可回退

测试夹具:echo / kv_get/kv_set / file_read/file_write + 两个临时目录 / http_probe / echo-chain 模板 / crash_tool


🚀 快速开始

cd D:Dshdsh-pluginsdsh-runtime-kit
pnpm install
pnpm build

在 DSH profile 中启用:

{
  "plugins": {
    "dsh-runtime-kit": {
      "enabled": true,
      "config": { /* 见上方配置示例 */ }
    }
  }
}

📋 管理命令

# 健康检查
runtime_kit_health

# 配置核对 / 应用预设
runtime_kit_config [minimal-no-orchestration|code-ptc-friendly]

# 指标查看
runtime_kit_metrics

# 审计日志
runtime_kit_audit_logs [profile] -t <tool> -a <action> -r <result> -s <date> -l 50

# 隔离验证
runtime_kit_isolation <profile>

# 快路径执行
runtime_kit_fastpath "echo-chain:test" [profile]

# PTC 执行
runtime_kit_ptc 'callTool("echo", {"text":"hi"})' [profile]

# 注册表查看
runtime_kit_registry_tools
runtime_kit_registry_templates
runtime_kit_registry_workspaces

🏗️ 内部架构

src/
├── types.ts              # 所有类型定义(零业务)
├── registry/             # 唯一对外耦合面
├── context/              # C1 上下文治理(中间件)
├── sandbox/              # C6 沙箱(路径/网络/命令/工具/快照/回收站/注入/脱敏/shell/执行域)
├── audit/                # C7 审计(append-only + 脱敏 + 指标)
├── loop/                 # C2 快路径 + C3 PTC + C5 并发/恢复
├── preset/               # C4 编排裁剪补丁
└── index.ts              # 插件主入口,组装所有能力

📌 实施阶段(§7)

阶段交付验收外部依赖
P0 上下文治理registry + C1 + C4 + 通用夹具M1/M2/M3无
P1 沙箱与审计C6 + C7 + Windows pwsh 抽象M6/M7/M8/M11无
P2 快路径C2 + C3 + 幂等/状态机M4无
P3 并发与恢复(可选)C5 自定义 loop + 回退M5/M9/M10/M12临时 profile 验证
每阶段独立验收,无需任何业务信息。

⚠️ 禁止项(§8.2)

  1. 禁止在插件内引用任何业务脚本、记忆文件、账号、选择器、登录态
  2. 禁止内置任何具体任务模板或业务参数
  3. 禁止把工具返回的大对象、二进制、日志全文塞进 context
  4. 禁止把 danger-full-access 设为默认;禁止策略异常时降级放行
  5. 禁止依赖 git bash 或任何绕开受限令牌的 shell 适配
  6. 禁止在验收夹具里出现真实业务系统、真实 URL、真实凭据
  7. 禁止在主力 profile 直接试用未经验证的第三方 loop 实现
  8. 禁止让插件核心 import 使用方代码——耦合只允许发生在 registry

🔗 关键参考

  • 规格书:C:UsersAWorkBuddy2026-10-31-23-20-43DSH-快速执行与沙箱方案.md (v2.1)
  • WorkBuddy 官方文档:附录 C 证据索引
  • DSH 运行时:D:软件Deepseek Harnessresourcesapp.asardsh

星级评价

0.0 按 GitHub Stars 换算的社区热度,非用户打分
Stars0
Forks0
待解决 Issue0
最近更新2026-11-07

基本信息

作者daoyan2142
版本0.1.0
开源许可MIT
默认分支main
入库时间2026-11-07

插件信息来自公开 GitHub 仓库与 SkillHub,版权归原作者所有;安装前请自行审查仓库代码。