← 返回目录

第 4 卷

第 4 / 5 卷日期:

17Ralph worker reported completion after1round.
18Final report:
19{"status":"complete", … }

20

21---共享工作区里留下了什么(每轮都写进这一份)---
22NOTES.md:
23#本次示例要点笔记
24…

对着这个输出逐条看,Ralph 的机制就清楚了。这个示例的目标一轮就能完成,所以只跑 1 轮就 complete 收手;多轮才看得到的机制,比如每轮换新、跨轮交接,输出里看不到,要看

脚本⻣架,每轮重开一个全新子 agent,把上一轮的 report 作为 previous 交接给下一轮:

传入什么:模型只传了目标(objective)和轮次上限(maxRounds)。

每轮一个全新子 agent:脚本每轮都开一个新子 agent,谁也不继承谁。为什么偏要全新?

因为让同一个子 agent 带着完整历史跑,上下文会越滚越大、越滚越杂、越跑越偏。

跨轮只靠两样:共享工作区 + 交接,并排看最清楚:

对比共享工作区交接

每轮传的结构化报告(status / summary / evidence 是什么共用的工作目录 cwd / nextSteps / blocker)

作用存实际产物(跨轮保留)报上一轮情况
可信度事实来源自报(需核实)
上限无maxHandoffChars(字符数)

最后成功完成:这次第 1 轮就报了 complete,循环立刻收手,工具返回 Ralph worker

的循环判定,而非你逐轮手动决定。想亲眼看多轮接力,把目标设成一轮完不成的任务,或把 maxRounds 调到小于任务所需轮数、让轮次耗尽触发 budget-limited 终态即可。

Ralph 的核心:编排是写死在工具里的一段脚本,模型只传一个目标。无论目标换成什么,脚本都是同一个 for 循环,每轮派一个全新子 agent、靠共享工作区 + 交接跨轮,反复推进。

Workflow 与 Ralph:差异对比

里。前者每次重新生成,后者永远不变,变的只是 objective 和 maxRounds,表里其余维度都是这两条路各自的展开。

本讲小结

两种编排机制都建立在 16 讲的 subagent 之上:脚本里每一次 agent(),底层就是一次 subagent 委派,只是由一段脚本驱动,Workflow 的脚本是模型现写的、Ralph 的脚本是写

死的循环,而非模型逐轮手动委派。两者是并列、不是嵌套关系,能同时装上、模型按需调用。

Workflow 是模型驱动的动态编排策略:模型现场写脚本,用 agent() 原语派活、 parallel() / pipeline() 原语编排,灵活、通用;代价是依赖模型、每次不同难评审。

Ralph 是写死的固定策略:脚本写死在 RALPH_SCRIPT 里,模型只传 objective + maxRounds,每轮用 agent() 原语派一个全新子 agent;跨轮只靠两样:共享工作区(长

期记忆)+ 交接(报告传递),朝一个目标反复迭代,每轮干净重启,不会越跑越偏;代价是不能一次派多个子 agent 并行、完成只靠子 agent 自报(无独立评估)。

这背后真正的变化是,编排引擎统一封装:workflowEngine 把“怎么跑编排脚本”统一封装一次,Workflow / Ralph 共用这一套,不用各自重造。编排引擎与编排策略解耦:编排策略

(脚本)由工具决定,加新工具不用改编排引擎。

加上前面几讲,编排篇收口了:AgentLoop 让一个 agent 跑起来,Preset 定它的工具与人设,Goal 让它自己续跑,Subagent 让它委派子 agent,Workflow / Ralph 把多个子 agent

编排起来。

下一讲进入新的实战篇:构建规则自进化系统,从用 DSH 扩展点搭规则引擎开始,一路走到让 Agent 从异常请求里长出候选规则、评测确认后形成闭环。

全站分卷索引 · 5 卷
  1. 1第 1 卷
  2. 2第 2 卷
  3. 3第 3 卷
  4. 4第 4 卷
  5. 5第 5 卷