🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

迷你运行时 huangjunsen0406/mini-dsh

DeepSeek Harness
huangjunsen040668 天前有提交已提供中文文档扫描:含敏感能力

一个手写的最小运行时,遵循 DSH 的设计理念,基于 @deepseek-ai/cordis 构建。

47.1/100
综合分
39
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add huangjunsen0406/mini-dsh
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · other
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 68 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包mini-dsh(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20.18.1 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/1 07:01:34

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 2 处,展示前 2 条)
  • 读取密钥环境变量
    src/models/deepseek.js:5
    const apiKey = config.apiKey ?? process.env.DEEPSEEK_API_KEY
  • 发起网络请求
    src/models/deepseek.js:36
    const response = await fetch(`${baseUrl}/chat/completions`, {
扫描于 2026/11/2(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-mcp-client
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

1 张 · 点击查看大图

功能亮点

  • 手写极简运行时
  • 遵循DSH设计理念
  • 基于cordis构建

一个手写极简运行时,遵循 DSH 理念

README

由 DeepSeek 最新模型翻译生成
mini-dsh 一个手写的最小运行时,遵循 DSH 的设计理念,基于 @deepseek-ai/cordis 构建。 这是一个用来学习 DSH 核心设计的最小项目——不是完整的 DSH 产品。 它刻意保留了五样东西: 1. Cordis Context / Plugin / Service 2. Session Event Log -> deriveMessages() 3. Tool Registry -> register / schemas / execute 4. LLM Provider Adapter 5. Agent Loop -> model -> tool -> model -> answer 它还保留了 Bash/File 工具,以及官方的 @deepseek-ai/dsh-mcp-client + Context7,用来证明「一切皆插件」。Context7 是可选的:连不上时命令行照样能启动——只是拿不到那些 MCP 工具。
展开完整文档(README 剩余 1 节)
mini-dsh

一个手写的最小运行时,遵循 DSH 的设计理念,基于 @deepseek-ai/cordis 构建。

这是一个用来学习 DSH 核心设计的最小项目——不是完整的 DSH 产品。

它刻意保留了五样东西:

1. Cordis Context / Plugin / Service
2. Session Event Log -> deriveMessages()
3. Tool Registry -> register / schemas / execute
4. LLM Provider Adapter
5. Agent Loop -> model -> tool -> model -> answer

它还保留了 Bash/File 工具,以及官方的 @deepseek-ai/dsh-mcp-client + Context7,用来证明「一切皆插件」。Context7 是可选的:连不上时命令行照样能启动——只是拿不到那些 MCP 工具。

演示

mini-dsh CLI

环境

- Node.js >= 20.18.1
- pnpm 11.22.0(见 package.json 里的 packageManager)

运行

pnpm install
cp .env.example .env
fill in DEEPSEEK_API_KEY
pnpm start

.env.example 里设置的是 deepseek/deepseek-v4-flash。如果 MINI_DSH_MODEL 完全缺失(比如你没复制 .env),入口会回退到 deepseek/deepseek-v4-pro(src/index.js:41)。

可选:填上 CONTEXT7_API_KEY。当 mcp.context7.com 连不上时,你只会看到 [plugin] failed——进程不会挂掉。

Context7 连上之后的路径:

@deepseek-ai/dsh-mcp-client
-> https://mcp.context7.com/mcp
-> ctx.tools.register(...)
-> mcp__context7__resolve-library-id
-> mcp__context7__query-docs

命令行

/tools
/models
/model
/model deepseek/deepseek-v4-pro
/model deepseek/deepseek-v4-flash
/history
/prompt
/reset
/exit

写入和 bash 执行前会先问 [Y/n]。智能体运行期间按 Esc 可以取消当前运行(方向键不会取消)。

为什么 Agent Loop 里没有 12 步上限?

学习版刻意写成:

while (true) {
const response = await model()

if (!response.toolCalls?.length) {
return response.content
}

await executeTools(response.toolCalls)
}

唯一的正常结束条件,就是模型不再请求工具。

这里刻意省略了:

- maxSteps
- token/cost budget
- compaction
- no-progress detector
- stop hooks
- steering queue
- 完整的权限系统(学习版在唯一一道真实边界——命令行的 [Y/n] 确认——前面,加了一道应用层路径门禁和命令黑名单)
- 完整的模型配置中心
- TUI/Web UI

这些对成熟产品非常有用,但理解 Agent Harness 的核心并不需要。

注意:所以理论上,一条糟糕的模型/工具链可能会无限循环。这个项目是用来学习的——别把它当成生产环境的 Agent Runtime。

给初学者:从零写一遍

不要先通读整个仓库。先浏览 ARCHITECTURE.md 建立整体印象,然后新建一个空项目,自己动手写,按 LEARNING.md 一个里程碑一个里程碑地推进。

推荐阅读顺序

src/index.js
↓
src/plugins/sessions.js
src/plugins/system-prompt.js
src/plugins/tools.js
src/plugins/llm.js
src/plugins/agents.js
src/plugins/agent-loop.js
src/plugins/sandbox.js
↓
src/core/session-runtime.js
↓
src/core/system-prompt-runtime.js
src/plugins/runtime-context.js
↓
src/core/tool-runtime.js
↓
src/core/llm-runtime.js
↓
src/core/agent-runtime.js
↓
src/core/agent-loop-runtime.js ← 核心 ↓ src/plugins/cli.js ↓ src/utils/path.js src/core/sandbox-runtime.js ↓ src/models/deepseek.js ↓ src/tools/bash.js src/tools/files.js ↓ src/plugins/external-plugins.js plugins.config.js ↓ test/core.test.js ← 行为文档:每个 runtime 一个示例

最重要的心智模型

Cordis Context
│
┌────────────┬────────────┬────────────┬────────────┬────────────┬────────────┐
▼ ▼ ▼ ▼ ▼ ▼
sessions systemPrompt tools llm agents agentLoop
│ │ Agent
bash / files DeepSeek
│
ctx.sandbox
path / command / Y/n
└── dsh-mcp-client (optional)
│
Context7

Agent Loop 对 Context7 和 Bash 一无所知,它只认识 ctx.tools。Agent 只是个薄薄的包装:sessionId + model + loop(src/core/agent-runtime.js)。

这才是这个项目里最值得学的东西。

测试

pnpm test
pnpm check

测试里有个用例:智能体连续调用 20 次工具后才结束——证明 Loop 已经没有过去那个 12 步的上限了。

来 LINUX DO 学 AI
预览分享卡片长什么样 ↓huangjunsen0406/mini-dsh
分享 · DeepSeek Harness Hub
huangjunsen0406/mini-dsh

一个手写的最小运行时,遵循 DSH 的设计理念,基于 @deepseek-ai/cordis 构建。

回到顶部