用常驻 Python REPL 处理超长上下文并派生子代理
31.4/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/4 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装;安装清单取自 project/plugin/package.json。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add tkellogg/dsh-rlm该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 32 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/31) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装;安装清单取自 project/plugin/package.json
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包@dsh-rlm/plugin(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/11 22:14:22
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 24 处,展示前 24 条)
- 写入本地文件launcher/cli.mjs:19
try { await writeFile(path, content, { flag: 'wx', mode: 0o600 }); } - 写入本地文件launcher/cli.mjs:23
await mkdir(config.profile, {recursive:true,mode:0o700}); - 写入本地文件launcher/cli.mjs:24
await mkdir(config.state, {recursive:true,mode:0o700}); - 执行外部命令来自配置/变量launcher/cli.mjs:36
const child=spawn(command,args,{stdio:'inherit',...options}); - 读取本地文件launcher/cli.mjs:48
const manifest=JSON.parse(await readFile(join(root,'release.json'),'utf8')); - 读取本地文件launcher/cli.mjs:58
try{await access(path,constants.R_OK);console.log(`OK ${label}: ${path}`)}catch{good=false;console.log(`MISSING ${label}: ${path}`)} - 执行外部命令来自配置/变量launcher/cli.mjs:60
const probe=spawnSync(config.python,['-c','import dsh_rlm, dill, pydantic; print("Python runtime imports OK")'],{encoding:'utf8'}); - 读取本地文件launcher/cli.mjs:72
for(const path of [config.node,config.python,config.dsh,config.patch])await access(path,constants.R_OK); - 删除本地文件递归launcher/cli.test.mjs:14
const dir=await mkdtemp(join(tmpdir(),'rlm-launch-'));t.after(()=>rm(dir,{recursive:true,force:true})); - 读取本地文件launcher/cli.test.mjs:16
assert.deepEqual(JSON.parse(await readFile(join(c.profile,'package.json'),'utf8')).dsh.profile.bundles,['@deepseek-ai/dsh-base','@deepseek-ai/dsh-web- - 读取本地文件launcher/cli.test.mjs:17
await writeFile(join(c.profile,'cordis.patch.yml'),'# user\n[]\n');await prepare(c);assert.equal(await readFile(join(c.profile,'cordis.patch.yml'),'ut - 写入本地文件launcher/cli.test.mjs:17
await writeFile(join(c.profile,'cordis.patch.yml'),'# user\n[]\n');await prepare(c);assert.equal(await readFile(join(c.profile,'cordis.patch.yml'),'ut - 读取本地文件project/client/build.mjs:3
const source = await readFile(new URL("./src/client.bundle.js", import.meta.url), "utf8"); - 写入本地文件project/client/build.mjs:5
await mkdir(new URL("./lib/", import.meta.url), { recursive: true }); - 写入本地文件project/client/build.mjs:6
await writeFile(new URL("./lib/client.js", import.meta.url), source); - 写入本地文件project/client/build.mjs:7
await writeFile(new URL("./lib/index.js", import.meta.url), "/** Host half is intentionally empty; UI is in ./client.js. */\nexport const name = '@dsh - 写入本地文件project/client/build.mjs:8
await writeFile(new URL("./lib/index.d.ts", import.meta.url), "export declare const name: string;\nexport declare function apply(): void;\n"); - 读取本地文件project/onboarding/build.mjs:3
const source = await readFile(new URL('./src/client.bundle.js', import.meta.url), 'utf8'); - 读取本地文件project/onboarding/build.mjs:4
const host = await readFile(new URL('./src/index.js', import.meta.url), 'utf8'); - 写入本地文件project/onboarding/build.mjs:6
await mkdir(new URL('./lib/', import.meta.url), { recursive: true }); - 写入本地文件project/onboarding/build.mjs:7
await writeFile(new URL('./lib/client.js', import.meta.url), source); - 写入本地文件project/onboarding/build.mjs:8
await writeFile(new URL('./lib/index.js', import.meta.url), host); - 发起网络请求project/onboarding/lib/index.js:64
async fetch(request) { - 发起网络请求project/onboarding/src/index.js:64
async fetch(request) {
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 常驻PythonREPL
- 处理超长上下文
- 派生子代理
面向 RLM 与程序化智能体的 DeepSeek Harness 插件
README
由 DeepSeek 最新模型翻译生成DSH RLM 与 Program Agent
一组 DeepSeek Harness(DSH)插件,默认启用 RLM,并引入一种新的子代理类型:Program Agent。
什么是 RLM 与 Program Agent
标准 DSH、Claude Code 和 Codex 大体都遵循「模型 → 工具 → 结果」循环(下图是简化后的 ReAct 风格示意):
flowchart TD
subgraph ReACT["ReACT (Claude Code & Codex)"]
ctx[(Context)] --> LLM -->|write| tool[Tool Calls]
tool -->|append| ctx
tool -->|eval| results[Tool Results] -->|append| ctx
end
在 DSH RLM 中,LLM 的工作方式更像数据科学家:它操作一个常驻的 Python REPL,类似 Jupyter notebook。变量把状态保存在模型对话上下文之外;不需要安装 Jupyter。
展开完整文档(README 剩余 1 节)
DSH RLM 与 Program Agent 一组 DeepSeek Harness(DSH)插件,默认启用 RLM,并引入一种新的子代理类型:Program Agent。 什么是 RLM 与 Program Agent 标准 DSH、Claude Code 和 Codex 大体都遵循「模型 → 工具 → 结果」循环(下图是简化后的 ReAct 风格示意): flowchart TD subgraph ReACT["ReACT (Claude Code & Codex)"] ctx[(Context)] --> LLM -->|write| tool[Tool Calls] tool -->|append| ctx tool -->|eval| results[Tool Results] -->|append| ctx end 在 DSH RLM 中,LLM 的工作方式更像数据科学家:它操作一个常驻的 Python REPL,类似 Jupyter notebook。变量把状态保存在模型对话上下文之外;不需要安装 Jupyter。 flowchart TD subgraph RLM ctx[(Context)] --> LLM -->|write code| block[Code Block] -->|hit Enter| repl[(Python REPL)] block -->|append code| ctx repl -->|append stdout| ctx end 所以 RLM 能用 Python 代码处理超大的上下文。代码可以在 REPL 单元之间复用(比如创建可复用的函数)。 RLM API 不是一组扁平的工具,而是功能丰富的 Python API,带类、方法、函数。它支持各种能力,包括消息传递、定时器、基于 Python asyncio 的并行等等。 flowchart TD ctx[Huge Context] --> root root --> sub1[Subagent] root --> sub2[Subagent] root --> sub3[Subagent] root --> sub4[Subagent] sub4 -->|"yo! I'm done"| root RLM 代码块会变得非常大。代码块越大,智能体在回到 LLM 之前能做的事就越多。 如果智能体永远不回到 LLM 呢? 于是就有了 program agent: flowchart TD subgraph rlm[RLM] RLM end RLM[Parent RLM] -->|edit, restart| code code[Program Agent] -->|report error| RLM subgraph program[Program Agents] code end code --> s1[Subagent] code --> s2[Subagent] code --> s3[Subagent] code --> s4[Subagent] Program agent 运行一个异步 Python 函数,可以访问其权限允许的运行时 API。它没有自主的 LLM 循环:它能持续运行确定性代码,需要帮助时给父 RLM 发消息。程序主动请求模型时,它也能显式调用模型。 Program agent 是活跃 Python 进程里的协作式任务,不是独立的持久服务。它们可以比启动它们的 REPL 单元活得更久,但活跃任务和句柄熬不过解释器恢复;父级必须重新创建它们。 用 uv 运行 实验性版本: 已在 PyPI 发布,支持 macOS(Apple Silicon 和 Intel)以及 glibc Linux(ARM64 和 x86-64)。各平台的运行时包托管在 GitHub Releases。 uvx dsh-rlm 想在 PATH 上留一个常驻命令: uv tool install dsh-rlm dsh-rlm 需要先装 uv?照着 uv 安装指南 做就行。 uv 负责管理 Python 环境。首次启动时,dsh-rlm 会从 GitHub Releases 下载一个预构建的 Node + DSH 应用,带校验和,版本也匹配。你不需要已有的 DSH、全局 Node、npm 登录、Git clone,也不用从源码构建。之后每次启动都复用那个版本的应用包。Python 包更新后,会选一个新的、匹配的应用包;随包附带的 DSH 版本不会在启动时自行更新。 uvx dsh-rlm setup # Launch setup; use Settings → Setup to revisit uvx dsh-rlm doctor # Diagnose without downloading the application uvx --upgrade dsh-rlm # Upgrade uvx's package and launch uv tool upgrade dsh-rlm # Upgrade a persistent tool installation 在你的项目目录里启动。凭据、会话和 Python 检查点都存在 uv 的一次性工具缓存之外,与普通 DSH 分开。首次运行的安装流程会提供已安装的服务商适配器,不强制要求 DeepSeek key;认证方式取决于你选的适配器和账号。新会话默认使用 RLM Mode。 已发布的平台:macOS arm64/x86-64 和 glibc Linux arm64/x86-64。同一个 Python 包和命令会自动选出匹配的运行时包。目前不支持 Windows 和 Alpine/musl。 构建、存储和发布细节见分发指南。 四个平台的包都通过了 CI 构建和迁移安装冒烟测试。浏览器引导另外在 macOS Apple Silicon 的 Chrome 上测过;这些冒烟测试不覆盖真实的服务商登录和推理。 运行时能力 这套工作系统提供: - 一个可分发的 DSH Agent Preset,名为 RLM Mode; - 一个根控制器,模型能看到的唯一工具是 execute_python; - 一个持久化的 CPython 命名空间,支持顶层 await; - 从 Python 调用由宿主支持的 runtime.tools 和 runtime.models; - RLM 子级会继承持久化的 Python 控制平面,而 Standard 父级仍保留 Standard 子级; - 原生 asyncio 任务和有界本地邮箱; - 尽力而为的检查点,并强制发送中断通知;以及 - 每个存活的 RLM 智能体对应一个受管理的 Python 进程。 DSH 仍然负责服务商路由、权限、审批、会话、工具执行、子进程生命周期和外层智能体循环。RLM 插件把 Python 作为控制器的工作状态,并把嵌套操作路由回这些宿主服务。 目录结构 - project/python/ —— 经过测试的 Python 运行时、REPL、检查点存储和 JSONL 桥接。 - project/plugin/ —— Cordis bundle、RLM preset、原生工具和宿主回调分发器。 - research/ —— 设计决策和固定的 DSH 集成发现。 发布构建默认解析 DSH 的 npm latest,可在构建时用 DSH_VERSION 覆盖。发布版 0.1.2 捆绑 DSH 0.1.5-rc.3,并且订阅 0.9.4。RLM 宿主插件也已在开发版宿主 0.1.6-alpha.2 上测试过;那不是 0.1.2 里附带的宿主。 构建、安装和启动说明见 project/plugin/README.md。有界检查、任务可见性和活动单元格投递的实操示例,见 RLM runtime cookbook。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
tkellogg/dsh-rlm
用常驻 Python REPL 处理超长上下文并派生子代理
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,489已汉化DSH
73.1
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,918已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,453已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
Download DS Bot for Windows 10/11 64-bit / 下载 Windows…
★ 5,293已汉化DSH
71.2
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,797已汉化DSH
71.1
这是你的仓库?认领条目