zerosloney/dsh-ralph-loop

zerosloney★ 0TypeScriptLast synced: 2026-08-16

Open on GitHub

RALPH cognitive-loop plugin for DeepSeek Harness: Reflect-Assess-Learn-Plan-Handle autonomous code generation with a hard cycle cap.

README excerpt

dsh-ralph-loop RALPH 认知闭环插件:把 Reflect(反思)→ Assess(评估)→ Learn(学习)→ Plan(规划)→ Handle(执行) 的五阶段状态机接入 DeepSeek Harness (dsh)。针对传统 ReAct 循环的盲目试错、错误震荡与缺乏经验沉淀问题,提供确定性、可自愈的自主代码生成与错误修复闭环。 这是什么 dsh-ralph-loop 是一个 dsh bundle 包 ,导出单个 cordis 插件: 能力 落点 ctx.ralph 服务: execute(task, testCmd, initialFiles) 一键闭环 服务注册( RalphService ) 五阶段状态机 + 不可变状态快照 + maxCycles 硬上限 状态引擎( engine.ts ) run ralph loop 工具,LLM 可自主触发子图自愈 ctx.tools ralph/ 生命周期事件(start / cycle-start / reflect / learn / success / cycle-end / end) ctx.emit 事件总线 每次执行独立的隔离临时工作目录(沙箱纯净度) 沙箱适配( ctx.subprocess + node:fs ) 设计要点(与设计文档的适配) - 文档伪代码中的 ctx.llm.chat(...) 落地为 harness 原生 ctx.llm.stream(GenerateOptions) + 权威 BlockAssembler ;Handle 的 JSON 生成经 chatJson + 容错 extractJson (去围栏/平衡括号提取)。 - LLM 失败显式化 :harness 语义下适配器/路由错误(provider 未注册、限流、网络失败)不抛异常,而是以终止性 finish 块结束流—— chatText 迭代后检查 finish.kind , error / aborted 转为异常上抛。配错 provider 会立刻报错并触发退避重试,而不是静默返回空串、把 maxCycles 个周期空烧完。 - harness 没有 ctx.sandbox 服务:文档的 sandbox.writeFile/runBash 映射为隔离临时目录内的 node:fs 写入 + ctx.subprocess.spawn (collect 模式、树级终止、abort 超时)。路径守卫拒绝绝对路径、 .. 穿越、Windows 保留设备名( con / nul / com1 等,含带扩展形式)与尾点/尾空格段。 - 沙箱是工作目录纯净度隔离,非安全边界 : testCmd 是任意 shell 命令、LLM 可经其任意执行,符号链接可绕过路径守卫——不用于隔离不可信输入。 - 门禁…

View full README on GitHub →
Agentsdeepseek-harnessdsh-plugin

Category