一个持久、全权限的运行时智能体,能记忆、计算、委派、恢复、验证并完成任务。
24.5/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add lilCnid/recursus该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · skill
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 68 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量
查看扫描证据(共 80 处,展示前 55 条)
- 读取本地文件packages/assembly/src/assembled-smoke-worker.ts:184
auth = object(JSON.parse(await readFile(authFile, 'utf8')), 'Codex auth document') - 写入本地文件packages/assembly/src/assembled-smoke-worker.ts:202
await mkdir(lockDirectory, { recursive: true }) - 写入本地文件packages/assembly/src/assembled-smoke-worker.ts:355
await mkdir(resourceRoot, { recursive: true }) - 读取本地文件packages/assembly/src/assembled-smoke-worker.ts:356
const realResourceRoot = await realpath(resourceRoot) - 写入本地文件packages/assembly/src/assembled-smoke-worker.ts:365
await writeFile( - 读取密钥环境变量packages/assembly/src/assembled-smoke-worker.ts:381
process.env.HONCHO_API_KEY = apiKey - 读取密钥环境变量packages/assembly/src/assembled-smoke-worker.ts:401
delete process.env.HONCHO_API_KEY - 写入本地文件packages/assembly/src/assembled-smoke-worker.ts:477
await writeFile( - 写入本地文件packages/assembly/src/assembled-smoke-worker.ts:535
await mkdir(workspace, { recursive: true }) - 读取本地文件packages/assembly/src/assembled-smoke-worker.ts:644
const sourceBytes = await readFile(sourcePath) - 读取本地文件packages/assembly/src/assembled-smoke-worker.ts:673
if (typeof resolved.path !== 'string' || sha256(await readFile(resolved.path)) !== expectedHash) throw new Error('artifact exact resolution failed') - 读取密钥环境变量packages/assembly/src/assembled-smoke-worker.ts:713
const honchoApiKey = arguments_.has('--live-honcho') ? process.env.HONCHO_API_KEY : undefined - 读取密钥环境变量packages/assembly/src/assembled-smoke-worker.ts:714
delete process.env.HONCHO_API_KEY - 删除本地文件递归packages/assembly/src/assembled-smoke-worker.ts:743
await rm(runtimeRoot, { recursive: true, force: true }) - 执行外部命令来自配置/变量packages/assembly/src/command-adapter.ts:79
const child = spawn(invocation.executable, [...invocation.arguments], { - 读取本地文件packages/assembly/src/command-adapter.ts:109
const info = await lstat(directory) - 读取本地文件packages/assembly/src/command-adapter.ts:111
return await realpath(directory) - 写入本地文件packages/assembly/src/command-adapter.ts:117
await mkdir(workRoot, { recursive: true }) - 写入本地文件packages/assembly/src/command-adapter.ts:120
await mkdir(parent, { recursive: true }) - 写入本地文件packages/assembly/src/command-adapter.ts:123
await mkdir(target, { recursive: true }) - 读取本地文件packages/assembly/src/command-adapter.ts:189
const [existingExecutable, existingModule] = await Promise.all([lstat(executable), lstat(module)]) - 写入本地文件packages/assembly/src/command-adapter.ts:214
await writeFile(target, contents, { encoding: 'utf8', flag: 'wx' }) - 读取本地文件packages/assembly/src/command-adapter.ts:217
if (await readFile(target, 'utf8') !== contents) { - 读取本地文件packages/assembly/src/command-adapter.ts:236
const [installedExecutable, installedModule] = await Promise.all([lstat(executable), lstat(module)]) - 写入本地文件packages/assembly/src/command-adapter.ts:243
if (process.platform === 'linux') await chmod(executable, 0o755) - 读取本地文件packages/assembly/src/command-adapter.ts:332
const contents = await readFile(resolveHostContainedPath(packageDirectory, ...metadataPath.split('/')), 'utf8') - 读取本地文件packages/assembly/src/git-acquisition.ts:65
return await lstat(target) - 写入本地文件packages/assembly/src/git-acquisition.ts:79
await mkdir(workRoot, { recursive: true }) - 读取本地文件packages/assembly/src/git-acquisition.ts:80
const realWorkRoot = await realpath(workRoot) - 写入本地文件packages/assembly/src/git-acquisition.ts:87
await mkdir(sourcesRoot, { recursive: true }) - 读取本地文件packages/assembly/src/git-acquisition.ts:88
const realSourcesRoot = await realpath(sourcesRoot) - 读取本地文件packages/assembly/src/git-acquisition.ts:123
const resolvedTarget = await realpath(target) - 删除本地文件递归packages/assembly/src/git-acquisition.ts:202
if (created) await rm(target, { recursive: true, force: true }) - 读取本地文件packages/assembly/src/manifest.ts:437
parsed = JSON.parse(await readFile(path, 'utf8')) as JsonValue - 读取本地文件packages/assembly/src/package-inspection.ts:203
const archive = await readFile(options.archivePath) - 读取本地文件packages/assembly/src/profile-lifecycle.ts:62
await lstat(target) - 读取本地文件packages/assembly/src/profile-lifecycle.ts:73
info = await lstat(directory) - 读取本地文件packages/assembly/src/profile-lifecycle.ts:79
return await realpath(directory) - 读取本地文件packages/assembly/src/profile-lifecycle.ts:299
const manifestContents = await readFile(manifestPath, 'utf8') - 读取本地文件packages/assembly/src/profile-lifecycle.ts:311
const lockfileInfo = await lstat(lockfilePath) - 读取本地文件packages/assembly/src/profile-lifecycle.ts:315
const lockfile = await readFile(lockfilePath, 'utf8') - 写入本地文件packages/assembly/src/profile-lifecycle.ts:399
await mkdir(options.workRoot, { recursive: true }) - 写入本地文件packages/assembly/src/profile-lifecycle.ts:405
await mkdir(distributionsRoot, { recursive: true }) - 写入本地文件packages/assembly/src/profile-lifecycle.ts:418
await mkdir(staging) - 写入本地文件packages/assembly/src/profile-lifecycle.ts:440
await mkdir(path.dirname(destination), { recursive: true }) - 写入本地文件packages/assembly/src/profile-lifecycle.ts:441
await copyFile(source, destination) - 写入本地文件packages/assembly/src/profile-lifecycle.ts:490
await writeFile(resolveHostContainedPath(staging, 'pnpm-lock.yaml'), options.profileLockContents, { - 删除本地文件递归packages/assembly/src/profile-lifecycle.ts:499
await rm(staging, { recursive: true }) - 删除本地文件递归packages/assembly/src/profile-lifecycle.ts:511
if (await exists(staging)) await rm(staging, { recursive: true }) - 删除本地文件递归packages/assembly/src/profile-lifecycle.ts:915
if (await exists(context.profileDirectory)) await rm(context.profileDirectory, { recursive: true }) - 删除本地文件packages/assembly/src/profile-lifecycle.ts:935
await rm(lockPath) - 删除本地文件递归packages/assembly/src/profile-lifecycle.ts:1001
await rm(backup, { recursive: true }) - 删除本地文件递归packages/assembly/src/profile-lifecycle.ts:1004
if (await exists(context.profileDirectory)) await rm(context.profileDirectory, { recursive: true }) - 读取本地文件packages/assembly/src/smoke.ts:152
const realWorkRoot = await realpath(options.workRoot) - 读取本地文件packages/assembly/src/smoke.ts:153
const realProfile = await realpath(options.profileDirectory)
扫描于 2026/11/1(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 记忆并委派任务
- 验证完成后自动恢复执行
基于 DeepSeek Harness 构建的持久全权限运行时智能体
README
由 DeepSeek 最新模型翻译生成Recursus
一个持久、全权限的运行时智能体,能记忆、计算、委派、恢复、验证并完成任务。
Recursus 是 OpenCnid 智能体运行时的产品与装配层,构建在 DeepSeek Harness 之上。DeepSeek Harness 仍是控制平面:智能体循环、会话、工具、审批、策略、血缘、取消和遥测都由它负责。Recursus 围绕这个核心,把各自独立版本化的能力组合起来,并将加入持久运行状态、执行监督、验证驱动的完成、协同委派、有界上下文编译和自适应模型路由。
[!IMPORTANT]
Recursus 正在实现里程碑 1。已验收的 Windows 包、配置档和冒烟证据,仍是上一个 Harness 修订版的历史证据。经评审的确定性打包修复现已固定到 e52c224fe00954fb7e8cda19eb2411dceef15989;Linux 包、配置档、冒烟和 §20.6 证据必须在该源码锁定点重新生成。本仓库尚未创建 Recursus 发布版,组件的再分发限制仍然适用。
Recursus 有意以操作者授予的主机权限运行。它的定位是可信开发机上的强力智能体,不是安全沙箱。不可逆的外部操作仍需显式闸门、精确目标和持久证据。
展开完整文档(README 剩余 1 节)
Recursus 一个持久、全权限的运行时智能体,能记忆、计算、委派、恢复、验证并完成任务。 Recursus 是 OpenCnid 智能体运行时的产品与装配层,构建在 DeepSeek Harness 之上。DeepSeek Harness 仍是控制平面:智能体循环、会话、工具、审批、策略、血缘、取消和遥测都由它负责。Recursus 围绕这个核心,把各自独立版本化的能力组合起来,并将加入持久运行状态、执行监督、验证驱动的完成、协同委派、有界上下文编译和自适应模型路由。 [!IMPORTANT] Recursus 正在实现里程碑 1。已验收的 Windows 包、配置档和冒烟证据,仍是上一个 Harness 修订版的历史证据。经评审的确定性打包修复现已固定到 e52c224fe00954fb7e8cda19eb2411dceef15989;Linux 包、配置档、冒烟和 §20.6 证据必须在该源码锁定点重新生成。本仓库尚未创建 Recursus 发布版,组件的再分发限制仍然适用。 Recursus 有意以操作者授予的主机权限运行。它的定位是可信开发机上的强力智能体,不是安全沙箱。不可逆的外部操作仍需显式闸门、精确目标和持久证据。 运行时组成 flowchart TD operator["Operator"] --> recursus["Recursus product and run layer"] recursus --> dsh["DeepSeek Harness control plane"] dsh --> codex["OpenAI Codex model provider"] dsh --> rlm["Persistent RLM compute and native recursion"] dsh <--> honcho["Honcho cross-session memory"] rlm --> artifacts["Project-local exact artifacts"] artifacts --> dsh dsh --> dovetail["Dovetail workflows and evaluation skills"] dsh --> truth["Git, files, tests, CI, and durable run state"] | 组件 | 职责 | 仓库 | | DeepSeek Harness | 智能体循环、工具、会话、策略、血缘、取消、UI | OpenCnid/deepseek-harness | | OpenAI Codex adapter | ChatGPT 订阅制模型服务商 | OpenCnid/deepseek-openai-codex | | DeepSeek RLM | 持久 IPython、快照、递归 DSH 子进程、Python 工具桥 | OpenCnid/deepseek-rlm | | DeepSeek Honcho | 跨会话记忆、精确产物、脱敏实验卡片 | OpenCnid/deepseek-honcho | | DeepSeek Dovetail | 提示词、委派、评估、自我对弈、引导和交接工作流 | OpenCnid/deepseek-dovetail | 精确修订版和许可边界记录在 manifests/components.json 和 THIRD_PARTY_NOTICES.md。 装配契约状态 manifests/assembly.json 在已接受的组件版本锁定基础上,扩展出带版本号的 Milestone 1 源码锁:许可证状态、获取方式、精确的包管理器与 lockfile 摘要、组件自有的校验/构建/打包命令、包选择器、公开的 DSH 配置档贡献、平台支持,以及兼容性约束。它的严格 schema 是 manifests/assembly.schema.json,而 manifests/profile-lock.yaml 在 pnpm 11.19.0 下冻结了组装后配置档的第三方依赖解析结果。 私有包 packages/assembly 定义了与服务商无关的生命周期、只读 Git 获取、精确的组件命令执行、有界的 npm-tarball 检查、隔离的 DSH 配置档生命周期,以及组装后的冒烟运行器。操作者提供绝对的 Recursus 工作根目录;所有源码、包管理器、依赖、Python、分发和打包输出状态都留在该目录之下。检查器会在归档文本中拒绝这个确切的根路径,包括斜杠归一化形式和转义形式。manifests/package-integrity.json 以及 Windows 包、配置档、默认冒烟和可选启用的实时冒烟报告,为前一个 Harness 版本锁定保留了不含路径的证据。这些证据相对新审查的源码锁是有意过期的,不得重新标注。在完整的 §20.6 工作流在新版本锁定下重新生成证据之前,Linux 验收仍然缺失。工作流、已验证行为和剩余限制见 docs/ASSEMBLY.md。 Recursus 将负责什么 - 可复现、一条命令完成的运行时组装; - 权威且持久化的任务与运行状态; - 持久化的进程、内核、CI 和唤醒监督; - 机器可读的完成契约; - 依赖感知的多智能体协调; - 带信任与新鲜度标签的有界上下文编译; - 模型、推理强度与 RLM 路由; - 操作者的状态、暂停、恢复、取消和审批控制; - 端到端兼容性、打包、评估和发布。 Recursus 不负责什么 - 在 DSH 之外再造一个智能体循环; - 另一个对话记录存储或通用记忆系统; - Honcho 内部的当前代码真相; - Honcho 内部的产物字节; - 隐藏的重新许可或复制的组件历史; - 声称获得任何上游项目的官方背书。 站在巨人的肩膀上 Recursus 之所以存在,是因为许多项目把困难的部分变得清晰可读、可复用。我们尤其感谢: - DeepSeek AI 和 DeepSeek Harness 贡献者,提供了插件优先的智能体控制平面; - Cordis 及相关框架贡献者,提供了时空服务组合能力; - OpenAI 和 Codex 生态,提供了我们通过服务商适配器使用的模型体验; - Mario Zechner、Pi 生态和 @earendil-works/pi-ai 贡献者,提供了直接服务商与 OAuth 基础层; - Prime Agent 贡献者,他们提出的 persistent-kernel 与 recursive-agent 技术被 DeepSeek RLM 采用; - Project Jupyter 和 IPython,提供计算底座; - Honcho 和 Plastic Labs,提供跨会话推理能力与官方 Honcho SDK; - Matthew Murphy、Lexideck、SPARK 作者,以及所有 OpenCnid Dovetail 贡献者,他们的方法构成了工作流层的基础; - 组件 lockfile 和 notices 中记录的每个库与工具的维护者。 署名不能替代许可证。每个依赖和组件都保留各自的版权与条款。详见 THIRD_PARTY_NOTICES.md。 路线图 实现顺序定义在 GAMEPLAN.md: 1. 可复现的运行时组装; 2. 持久化的运行状态; 3. 执行监督; 4. 验证驱动的完成判定; 5. 协同委派; 6. 有界上下文编译; 7. 自适应模型与算力路由; 8. 操作者体验、评估与发布。 规范性的产品边界与完成定义(Definition of Done)见 SPEC.md。组件拓扑见 docs/ARCHITECTURE.md。 要在全新的 Codex 会话中继续实现,请使用 NEXT_SESSION_PROMPT.md 中维护的启动提示词。它会引导会话查阅规范性规格文档,并定位第一个尚未完成的里程碑。 仓库验证 使用 Node.js 22.19.0 或受支持的 Node.js 24 版本,以及 pnpm 11.19.0: pnpm install --frozen-lockfile pnpm check node scripts/verify.mjs 仍然是不依赖第三方库的检查,覆盖组件版本锁定、已实现的 Milestone 1 schema、源码锁、package/profile 证据、smoke 报告和 notice 闭环。在这次有意的版本锁定过渡期间,它会按明确的历史身份校验已接受的前序证据,并独立校验当前源码锁。仓库验证器通过,并不代表历史报告就是最新的,也不代表 Milestone 1 已完成;完整的 package、profile、smoke、Linux 和 §20.6 证据集,仍须在新的源码锁下重新生成并通过验收。 许可证 Recursus 原创代码与文档采用 MIT License 授权。引用及后续组装的组件保留各自的许可证。Recursus 是独立的 OpenCnid 项目,并非 DeepSeek、OpenAI、Honcho 或 Prime 的官方产品。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
lilCnid/recursus
一个持久、全权限的运行时智能体,能记忆、计算、委派、恢复、验证并完成任务。
相关插件 · 技能 / 提示词
人设统管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