让模型用 Python 代码调用工具、子代理并跨会话记忆
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add theguy000/dsh-prime该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · skill
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令发起外部网络请求
查看扫描证据(共 4 处,展示前 4 条)
- 执行外部命令来自配置/变量index.js:1188
const probe = spawnSync(cmd, ["-c", "import sys; print(sys.version_info[0])"], { encoding: "utf8", timeout: 4000, windowsHide: true }); - 执行外部命令来自配置/变量index.js:1335
const proc = spawn(this.pythonExe, ["-u", "-c", PYTHON_WORKER_SCRIPT], { - 发起网络请求client.js:134
const res = await fetch(new URL(API, window.location.origin).toString(), { - 发起网络请求client.js:828
return fetch(API, {
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 的 RLM 风格智能体模式:模型编写代码来调用工具和子代理,另有一个持续自我改进的 Continual Harness,跨会话保留限定范围的记忆。
README
由 DeepSeek 最新模型翻译生成dsh-prime
为 DeepSeek Harness 提供 prime 智能体模式,一种 RLM 风格的模式,这里的 RLM 取自 prime-agent 的用法,再加上 DSH 默认不提供的那部分:Continual Harness 和按会话持久化的 Python RLM REPL。
程序化工具调用与持久 Python REPL。 模型默认通过代码工作(python_repl + mode: native),并拥有一个有状态的 python_repl 工具,背后是每个会话独立的持久 Python 3 进程。上下文存放在变量里(ctx、messages、goal、workspace、store),支持顶层 await,子代理、harness 状态和宿主工具都能直接从 Python 调用(await rlm("...")、rlm.spawn()、rlm.harness.、await tools.<name>(kwargs))。
Continual Harness。 智能体自己维护的持久、分作用域、带版本的记忆,能跨压缩存活。
展开完整文档(README 剩余 1 节)
dsh-prime
为 DeepSeek Harness 提供 prime 智能体模式,一种 RLM 风格的模式,这里的 RLM 取自 prime-agent 的用法,再加上 DSH 默认不提供的那部分:Continual Harness 和按会话持久化的 Python RLM REPL。
程序化工具调用与持久 Python REPL。 模型默认通过代码工作(python_repl + mode: native),并拥有一个有状态的 python_repl 工具,背后是每个会话独立的持久 Python 3 进程。上下文存放在变量里(ctx、messages、goal、workspace、store),支持顶层 await,子代理、harness 状态和宿主工具都能直接从 Python 调用(await rlm("...")、rlm.spawn()、rlm.harness.、await tools.<name>(kwargs))。
Continual Harness。 智能体自己维护的持久、分作用域、带版本的记忆,能跨压缩存活。事实、提示词规则、可复用技能和子代理角色规格都会连同触发它们的证据一起记录;每条记录带一个 8 字符的 ref,智能体(或操作者)可以用它就地更新、固定或删除;每次写入都会快照 before/after 状态,支持即时 --rollback;两层(session 和 workspace)都会重新注入每个 Prime 提示词。
RLM 对比能走到哪一步
| prime-agent | dsh-prime |
| 从代码中程序化调用工具和子代理 | 相同 —— Node PTC 里用 await tools.<name>(args),python_repl 里用 await tools.<name>(kwargs) |
| 持久 REPL:上下文跨调用存放在变量里 | 完全支持 —— python_repl 为每个会话保留一个持久 Python 3 内核,带 ctx(含压缩前的轮次)、messages、goal、workspace 和磁盘支持的 store |
| rlm.spawn() 句柄,通过 agent_message 回复 | 完全支持 —— rlm.spawn() / await rlm(..., role=...)、rlm.list_subagents()、rlm.send_message()、rlm.interrupt() 和 agent_message.send() |
| Continual Harness:分作用域、可精炼、带版本的状态 | 完全支持 —— 两个作用域(session、workspace),4 种组件类型(memory、prompt、skill、subagent),按 8 字符 ref 执行 add/update/delete/pin,证据门控,以及带 --diff 和 --rollback 的 before/after 快照 |
在 Web/Desktop 的智能体预设选择器里选 Prime,或者打补丁把配置档设成默认:
- id: agent-preset-registry
config:
default: prime
设计
对等靠的是组合,加上一个专注的 RLM 与 Continual Harness 运行时。 DSH 已经提供了 prime-agent 的大部分接口;cordis.patch.yml 是一份声明式的 @deepseek-ai/dsh-agent-preset 声明,把这些已发布的包接在一起,而 index.js、tool.js 和 client.js 提供 Continual Harness、持久 Python REPL 桥、动态技能/子代理投影,以及 Settings → Prime Harness 管理界面。
一个预设的 config.plugins 列表永远不会和另一个预设的合并,所以 mode 自包含,改动 standard 或 ptc 都不会影响它。
能力对照表
左列的事实来源:prime-agent README。
| prime-agent 能力 | DSH 实现方式 | 状态 |
| 「一切皆可编程」?模型工具是持久 REPL | dsh-agent-tool-presentation 配 mode: ptc,dsh-tool-workflow 跑在 dsh-workflow-ptc 之上,再加持久 shell(dsh-tool-bash-persistent / dsh-tool-pwsh-persistent),还有 python_repl(按会话保持状态的 Python 3 RLM 内核,带 ctx、messages、store、rlm. 和 tools.) | 完整 |
| rlm.spawn(...) 子代理以编程方式返回结果 | dsh-tool-subagent(provider: spawn)+ dsh-tool-subagent-fork(provider: fork)+ python_repl 的 rlm.spawn(..., role=...) / rlm.send_message / agent_message.send | 完整 |
| /refine?harness 自我改进,基础提示词不可变,快照可回滚 | dsh-prime(本插件):持久存储 + /refine 命令 + harness_refine 工具 + 4 种组件类型 + 按 ref 原地更新/删除/固定 + 前后快照,支持 --rollback 和 --diff + 压缩后自动 refine | 完整 |
| 技能是可执行包;技能创建器 | dsh-skill-filesystem + dsh-tool-skill + 动态 prime-harness 技能服务商,把 kind: "skill" 的 harness 条目暴露给在线技能目录 | 完整 |
| 会话在后台运行,之后可重新接入 | dsh-jobs-local + dsh-tool-jobs + 会话持久化;子会话活得比父轮次更久 | 部分?应用之外无法分离/重新接入 |
| 智能体直接通信 | python_repl 里的 rlm.send_message / agent_message.send + dsh-tool-subagent-control;如果偏好对等名册的交互方式,可以用 dsh-experimental-agent-team | 完整(走 RLM/子代理消息;见注 1) |
| 自动压缩 | compaction 组:dsh-compaction-basic、dsh-command-compact、dsh-compaction-tool-result-pruner | 完整 |
| 持久目标(/goal) | dsh-command-goal + dsh-tool-goal,底层是 dsh-goal | 完整 |
| 有预算上限的自主模式(/autonomous) | dsh-goal-round-driver + maxGoalRounds 上限 + dsh-tool-ralph 全新智能体循环 | 部分?没有用户自定义的质量门(见注 2) |
| 心跳与调度(/heartbeat、prime-agent schedule) | dsh-time-context + dsh-tool-schedule,底层是 dsh-schedule | 完整 |
| 长任务跨轮次持续推进 | 目标 + 压缩 + 保留/可续接的子代理 + 调度 + 持久 REPL 的 store | 完整 |
| 通过 SSH/tmux 使用剪贴板,自定义证书颁发机构 | 与 mode 无关;DSH 在部署/传输层处理这些 | 不适用 |
持续演进的 harness
不带参数的 /refine 会跑一次 refinement pass:智能体回顾对话,记下哪些内容应该比对话活得更久。/refine <note> 则记录一条直接记下来。条目存在磁盘上,所以天然能活过压缩,提示词区段每次组装都会重新渲染。
智能体通过 harness_refine 工具写入(或在 python_repl 里用 rlm.harness.),绝不用斜杠命令——斜杠命令只有操作员能用,所以下面的触发方式都点名工具。
这个区段自己声明权威,也必须如此。 区段开头写的是 "Treat them as already verified: when one answers the operator's question, answer from it rather than re-deriving the answer from the code",并说明只有在没有条目覆盖问题、或事实可能已过时时才去读源码。标题用 Established:,因为 Recorded: 读起来像日志。
捕获要主动,不是补救。 提示词区段带一条常驻指令:操作员说出持久事实的同一轮就记下来,因为只活在对话里的偏好,历史一压缩就没了。手动 /refine 命令和压缩后钩子是兜底,补主动路径漏掉的。
按 ref 原地修正、4 种组件类型、快照。 每条渲染出来的行都以 8 字符的 ref 句柄、创建日期和可选的 [kind:name] 标签开头:
- 31725ce5 [2026-10-17] [prompt:routing] Always declare Route: fast-path before routine edits.
条目有错或被取代时,模型按 ref 更新或删除(action: "update" | "delete"),而不是在旁边追加一条矛盾的条目。每条条目属于四种组件类型之一:
- memory(默认)——持久事实、约束和发现。
- prompt——每轮都遵守的常驻行为或路由规则,优先级高于未固定的 memory 笔记,这样常规事实永远不会把它们挤掉。
- skill——可复用工作流,动态注册进 DSH 运行中的 skills 服务(prime-harness 服务商),tool-skill 和 / 触发能立刻调用。
- subagent——可复用的子代理角色规格,rlm.spawn(..., role="<name|ref>") 会自动把它加到所生成子代理的任务提示词前面。
一次调用承载整轮,每轮都拍快照。 harness_refine 接收 findings: [...](每次调用最多 20 处编辑;超量批次会被原子拒绝,所以一轮绝不会写一半)。每次变更都记录有界的 before/after 快照(MAX_SNAPSHOTS = 25),带 +added ~updated -deleted 差异计数,所以任何一轮或一处编辑都能用 /refine --diff [<ref>] 查看,用 /refine --rollback [<ref>] 一步撤销。
作用域与命令行用法
两层。操作员在 Settings → Prime Harness 里选写入目标,智能体从不自己选:它记录的一切都进选中的层。读取则始终两层都读。
| 作用域 | 范围 | 存储为 |
| session(默认) | 仅本次会话 | ~/.dsh/prime/session-<id>.json |
| workspace | 共享此工作目录的所有会话 | ~/.dsh/prime/project-<sha1(cwd)>.json |
/refine # refinement pass, default scope
/refine workspace # refinement pass, workspace scope
/refine prefer composition over a new abstraction
/refine workspace --kind prompt always run checks before committing
/refine workspace --kind skill --name lint-check Run npm run check before git commit.
/refine --list
/refine --clear
/refine --snapshots # list before/after snapshots
/refine --rollback [<ref>] # roll back to the latest or named snapshot
/refine --diff [<ref>] # inspect before/after diff of a pass
/refine --pin <ref> / --unpin <ref> # pin or unpin an entry by ref
/refine --edit <ref> <new text> # update an entry in place by ref
/refine --delete <ref> # delete an entry by ref
/refine --reset-repl # reset the session's persistent Python REPL
排序与提示词缓存稳定性
相关性排序沿用 prime-agent 的 harness_digest.rs:目标 objective 权重为 3.0;最近四条用户/助手发言消息权重依次为 2.0 / 1.5 / 1.0 / 1.0,取窗口前先按 source.kind 过滤,避免注入的运行时上下文挤掉操作者的话;查询词最多 48 个;pinned 条目额外加 +100。
系统提示词里,条目顺序是置顶优先,其次是 prompt 类规则,再按最新优先(promptOrder),预算为 topK = 12 / 4000 字符,而不是每轮按查询重排,这样 LLM 的 KV-cache 前缀在各步之间保持稳定。rank 决定 /refine --list 和设置界面的显示顺序。
持久化 Python REPL(python_repl)
除 DSH 的 Node PTC 运行时(run_code)之外,Prime 还挂载了 python_repl:一个按会话隔离的有状态 Python 3 内核,支持顶层 await,并通过双向 JSON-RPC 桥接回宿主。
- 持久命名空间与磁盘存储: 变量、函数、类、导入在会话内跨轮次保留。写入 store["key"] = value(或经 set_vars 传入)的任何可 JSON 序列化键值,都会持久化到 ~/.dsh/prime/repl-session-<id>.json,重启后仍在。
- 抗压缩的对话记录(ctx 与 messages): 每次求值前,extractSessionContext 读取 session.snapshotEvents()(把已压缩的帧标记为 compacted: true),因此即使上下文压缩把较早轮次从模型提示词里丢掉,Python 代码仍能检索并分析整段对话。
- 程序化 RLM 与工具桥接:
- await rlm("task", name="worker", role="auditor", fork=False) 或 rlm.spawn(...)
- await rlm.list_subagents()、await rlm.send_message(id_or_name, msg)、await rlm.interrupt(id_or_name)
- await agent_message.send(msg, receiver_name="main")
- await rlm.harness.list(scope=None, kind=None)、.add(...)、.update(...)、.delete(...)、.snapshots()、.rollback()、.diff()
- await tools.<tool_name>(*kwargs) ? 在调用方智能体上调用任意已注册的 DSH 工具。
Windows 桌面端 ConPTY 与沙箱桥接
在 Windows 上的 DeepSeek Harness Desktop 中,process.execPath 是 DeepSeek Harness.exe(一个 Electron 二进制,链接了 /SUBSYSTEM:WINDOWS),而 @deepseek-ai/dsh-sandbox-windows-acl/lib/runner.js 位于 resources/app.asar 内部。基于管道的子进程能正常继承句柄,但 dsh-terminal-bash(persistent-pwsh)通过 node-pty(CreatePseudoConsole / ConPTY)启动 shell。Windows ConPTY 不会把 WINDOWS_GUI 子系统的可执行文件挂到伪控制台上,这会导致 workspace-write 下的 persistent-pwsh 立刻退出,并报 Error: PTY shell exited during startup。
index.js 里的 ensureWindowsSandboxRunner 在 Windows 桌面端自动完成桥接:把沙箱 runner 和原生 koffi 绑定解压到一个带版本号的临时缓存,并让 sandbox.internals.windowsAclRunnerArgs 指向 DSH 自带的 /SUBSYSTEM:CONSOLE Node 二进制(resources/runtime/primary-runtime/dependencies/node/bin/node.exe)。
设置界面
设置 ? Prime Harness(由 client.js 使用 @deepseek-ai/dsh-client-ui-primitives 注册)与 POST /prime/api 通信,提供:
- 默认写入范围与工作区浏览器: 在 This conversation(session)和 Workspaces(workspace)之间切换。在 Workspaces 视图里,完整的工作区选择器会在冷启动时列出所有已知仓库(来源包括活跃会话、DSH storages 和 ~/.dsh/prime/project-.json 文件),并显示条目数量,因此即使当前没有打开任何聊天,你也能查看、添加、编辑或回滚任意工作区的记忆。
- 组件类型与条目控制: 按类型(Memory、Prompt、Skill、Subagent)筛选和添加条目,把条目置顶或取消置顶到提示词区顶部,就地编辑条目的文本/类型/名称,或删除单条条目。
- 快照历史、差异与回滚: 查看每一次记录的变更(+added ~updated -deleted),内联查看变更前后的差异,一键回滚。
- 持久 Python REPL 状态: 查看活跃内核状态、求值次数、当前变量名、持久化的 store 键,并重置内核。
验证
npm run check
| 检查项 | 覆盖范围 |
| test/self-check.mjs | store 往返、/refine 标志、harness_refine 的批量/证据/更新/删除契约、python_repl 持久命名空间 + store + RLM 子代理/工具/harness RPC 桥接 + 动态 skills 服务商、预设门控的压缩后钩子、/prime/api 路由端到端,以及客户端 bundle 不变量 |
| test/validate-patch.mjs | cordis.patch.yml 里每一行都能在已安装的 DSH bundle 树中解析到,并且 harness_refine 和 python_repl 两个 schema 都能通过 @deepseek-ai/dsh-tools 的校验器 |
| test/scope-check.mjs | 作用域隔离(session 与 workspace)、已废弃的 project 和 global 写法、去重、容量上限,以及按目标与查询加权的排序 |
目录结构
| 文件 | 作用 |
| cordis.patch.yml | 声明式 dsh-prime 根行 + 自包含的 preset-prime(Prime)智能体预设 |
| index.js | Continual Harness 宿主侧(作用域存储、快照/回滚/差异、排序、/refine、预设门控的压缩后钩子、常驻 python_repl 内核与 RPC 桥、Windows ConPTY 沙箱桥、/prime/api) |
| tool.js | 挂载在 preset-prime 内的智能体作用域侧:prime:continual-harness 提示词段、harness_refine 工具、python_repl 工具,以及动态 prime-harness 技能服务商 |
| client.js | 设置 ? Prime Harness 界面(__ModuleLoader__ bundle,使用 @deepseek-ai/dsh-client-ui-primitives,无需构建步骤) |
| test/self-check.mjs | 端到端测试:宿主、工具、python_repl、RLM 桥、API 路由与客户端契约 |
| test/validate-patch.mjs | bundle 行解析与 @deepseek-ai/dsh-tools JSON schema 校验 |
| test/scope-check.mjs | 作用域隔离、别名、去重、上限与相关性排序测试 |预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
theguy000/dsh-prime
让模型用 Python 代码调用工具、子代理并跨会话记忆
相关插件 · 技能 / 提示词
人设统管ZiChuanLan/agent-purge
一份系统提示词,喂给多个 coding…
★ 931已汉化DSH
73.8
人物画像蒸馏titanwings/distilly
Distilly — 把他们的思考方式提炼成可复用的技能,供任何智能体或机器人使用。原名 Colleague Skill(原同事 Skill)。
★ 25,659已汉化DSH
71.3
推理工作空间套件Tiger3807861189/J-Space-Cognition-Suite
J-Space 是面向复杂推理、大型仓库工程、子代理协作与授权安全分析的推理时工作空间和控制套件。
★ 2,957已汉化DSH
70.5
两阶段工具锚定预设xiaobright/dsh-anchored-standard
实验性 DeepSeek Harness agent preset…
★ 3,742已汉化DSH
70.1
智能体工作流编排nrslib/takt
不再日夜盯着 AI 编码智能体。
★ 1,402已汉化DSH
70
Agent 运行时手册Electricitysheep/dsh-handbook
DeepSeek Harness dsh 从 0 到 1 深度手册:安装/插件开发/性能调优/实测案例/同模型多…
★ 827已汉化DSH
68.7