[控场AI]
· 6 分钟阅读· 3,127 字

Devin动态工作流:多会话并行协作实战解析

Devin动态工作流:多会话并行协作实战解析

Devin 用 Python 脚本编排多会话协作,把大任务拆成可并行、可恢复的工作流。

Devin 推出的 Dynamic Workflows 改变了 AI 编程助手的运行方式:不再依赖单会话逐条推进,而是让 Devin 自动编写 Python 脚本,调度多个 Devin 会话像团队一样并行协作,最后汇总产出。它支持 Parallel(全部完成后再合并)与 Pipeline(各项目独立流经阶段)两种编排模式,并以「记录—重放」机制保证可恢复性,中断后只重跑未完成部分。官方用 12 个组件的可访问性审计演示了真实效果:12 个审查代理并行工作,整合代理合并出 10 条去重并按严重程度排序的发现。文章还给出了适用判断:宽扇出加合并、分阶段工作、机械化批量修改适合工作流,紧密耦合的少量会话则更适合普通模式,并可将验证过的工作流保存为技能复用。

Devin 推出的 Dynamic Workflows 功能,正在改变 AI 编程助手处理复杂任务的方式。它不再是单一会话逐条推进,而是通过 Python 脚本编排多个 Devin 会话,让它们像一支团队一样并行协作,最终汇总结论。

从单兵作战到团队协作

传统 AI 编程助手通常以单会话模式运行,面对迁移、审计、代码审查等大型任务时,往往需要反复沟通、手动衔接。Dynamic Workflows 的核心思路是:让 Devin 自己写一个 Python 脚本,这个脚本负责调度多个 Devin 会话,把大任务拆解成可并行执行的子任务。

脚本会独立运行各个子任务,在阶段之间传递结果,最后将所有产出汇总。整个流程可重复、可恢复——即使中途中断,已完成的代理调用会被记录,重放时直接跳过,只运行未完成的部分。这为迁移、审计或研究类工作提供了稳定的工程化路径。

Let's try it on a real job.

什么是「扇出/合并」(fan-out / fan-in)模式?

这是并行计算与分布式系统中的经典编排模式。「扇出」指把一个父任务拆分成多个可以独立执行的子任务,同时分发给多个执行单元;「合并」则是在所有子任务完成后,把各自的输出汇聚成一个统一结果。文章演示的可访问性审计就是典型例子:一个总任务扇出为 12 个独立的组件审查,再由一个整合代理合并成一份去重、排序后的报告。这种模式的优势在于把「可以并行的部分」最大化并行,而把「必须串行的部分」压缩到最后的合并环节。代价是合并步骤通常需要等待最慢的子任务,因此任务粒度的均匀程度会直接影响整体效率。

实战案例:12个组件的可访问性审计

官方演示了一个真实任务:检查一个小型演示应用中每个组件的可访问性问题,并输出一份按严重程度排序的发现列表。用户只需要向 Devin 提出需求——为每个组件分配一个可访问性审查员,再加一个合并列表的步骤。

Devin 随即找到 12 个文件,规划出 12 个审查代理,外加一个整合步骤。工作流面板会展示每个阶段、参与的代理以及它们的实时状态。Devin 编写的脚本也直接可见,任何人都能读懂这次运行的具体逻辑。

The workflow panel shows each phase, its agents, and their live status.

并行与流水线:两种编排模式

Dynamic Workflows 提供了两种核心编排模式:

  • Parallel模式:等待所有并行结果返回后,再进入合并步骤。演示中的审计任务就采用了这种模式——12 个审查全部完成后,整合代理才开始运行。
  • Pipeline模式:让每个项目独立流经自己的各个阶段,适合有明确先后依赖的流水线作业。

演示中采用的是 Parallel 模式,最终的整合代理在所有 12 份审查完成后才启动。12 份审查结果被合并成一份报告,包含 10 条去重后的发现,并按严重程度排序。

This run used Parallel, so the consolidation agent only started once all 12 reviews were done.

Parallel 与 Pipeline 的本质区别

Parallel 是一种「屏障式」同步:所有并行分支必须全部完成,合并步骤才能启动,任何一条分支拖慢都会拖住整体。Pipeline 则借鉴了软件工程中的流水线思想,每个项目独立流经自己的各个阶段,第一个项目进入阶段二时,第二个项目可以同时进入阶段一,阶段之间不设全局屏障。因此 Pipeline 更适合各项目内部有明确先后依赖、但项目之间彼此独立的批量作业,能让资源利用率更高、整体吞吐更大;Parallel 则更适合「先全部产出、再统一汇总裁决」的场景,比如需要横向对齐、去重、按严重程度统一排序的审计报告。选择哪种模式,取决于合并逻辑是否必须看到全部结果。

何时该用工作流,何时用普通会话

并非所有任务都适合 Dynamic Workflows。官方给出了清晰的判断标准:

  • 适合工作流:宽扇出加合并步骤的任务、分阶段工作、机械化批量修改。
  • 适合普通会话:只需要几个会话、任务之间紧密耦合的情况。

每个代理本质上都是一个会话,所以建议先用一个切片试跑,确认工作流可行后,把它保存为技能(skill),后续复用。

Use a workflow for wide fan-out with a combine step, or staged work,

可恢复性与自动批准

Dynamic Workflows 在工程可靠性上做了针对性设计。每一次代理调用都会被记录,中断后的运行会瞬间重放已完成的代理,只重新执行未完成的工作。这意味着长时间运行的审计或迁移任务不会因为一次中断而前功尽弃。

在设置面板的偏好设置中,Auto-Approve Workflows 选项允许 Devin 在运行工作流时跳过逐次确认,进一步提升自动化程度。对于需要反复运行的迁移、研究、代码审查、代码库级审计,或者循环直到测试通过这类场景,这套机制能显著减少人工干预。

可恢复性背后的「记录—重放」机制

Dynamic Workflows 的可靠性来自把每次代理调用都当作一条可持久化的执行记录。这类设计的通用思路与工作流引擎(如 Temporal、Airflow)中的「幂等重放」一致:把已完成步骤的输出写入状态存储,重新运行时先比对该记录,命中就直接复用缓存结果并跳过真正执行,只对缺失或失败的步骤重新调度。对用户的直接好处是,一次耗时很长、跨越几十个代理的审计或迁移任务,即使因为网络中断、进程崩溃或人工暂停而中止,恢复代价也只是「未完成的那部分」而非从头再来。需要注意的是,这种机制往往要求在脚本层面把各阶段设计为相对独立、结果可序列化,才能保证重放时行为一致。

对开发工作流的影响

Dynamic Workflows 的价值不只在于并行加速。它把「描述工作」和「编排执行」解耦——用户只需要描述要做什么,Devin 负责写出编排脚本。脚本本身可读、可审查、可保存为技能,这让 AI 驱动的工作流具备了传统 CI/CD 流水线类似的透明度和可重复性。

对于需要跨文件、跨模块协调的代码库级任务,这种多会话协作模式提供了一种介于「单次对话」和「人工编写自动化脚本」之间的新选择。

背景补充

关于「技能」(skill)的复用

文中提到可以把验证过的工作流保存为技能(skill)供后续复用。这里说的技能,本质是把一段可执行、可靠的编排逻辑固化成可调用的资产:它通常包含触发条件、输入参数、脚本本体以及预期的输出结构。与普通会话不同,技能的确定性更强——同样的输入会走同样的编排路径,因此更适合需要反复执行的机械化任务,例如定期审计、依赖升级迁移、批量重构。把一次性成功的工作流沉淀为技能,相当于把「临时脚本」升级为「团队共享的自动化工具」,这也是它在透明度与可重复性上与 CI/CD 流水线相似的原因。

#Devin#Dynamic Workflows#AI编程#多会话协作#代码审计自动化#并行工作流#AI代理编排
分享:

相关推荐