几十年来,金融和政府部门一直依赖于一种被称为 COBOL 的复杂庞大计算机程序。这些系统运行着全球的银行交易和社会保障支付,然而构建这些系统的专家正在退休,且代码本身往往已有数十年历史,缺乏文档记录且难以更改。为了维持这些至关重要的服务运行,组织必须将这些古老的代码翻译成 Python 等现代语言,这一过程需要极高的精确度,因为哪怕是一个微小的错误都可能导致系统崩溃。最近,一种被称为大语言模型的全新人工智能技术脱颖而出,成为了完成这项任务的潜在工具。这些模型能够阅读代码并编写新代码,但它们通常通过像“自主智能体”一样运作:它们会自行决定采取哪些步骤、何时重试任务以及如何随着进程修复错误。这向工程师提出了一个关键问题:是让人工智能全程驾驶、实时决定每一步动作更好,还是让过程遵循一条严格的、预定义的轨道、由计算机执行一套固定的规则更为有效?
巴克内尔大学(Bucknell University)与 Astrio 的一个研究小组致力于回答这个问题,他们通过进行一项受控实验,观察这两种不同的方法在处理将 COBOL 代码转换为 Python 这一艰巨任务时的表现。他们构建了一个名为 ATLAS 的系统来充当翻译器,但他们设计实验时,唯一的变量是“谁在驾驶座上”。在其中一个版本中,人工智能拥有完全的控制权,被允许选择自己的路径、选择自己的工具,并决定何时停止或重新开始。在另一个版本中,使用了相同的 AI 来编写代码,但一套僵化且不变的规则严格规定了具体要采取哪些步骤、按什么顺序执行,以及如果出错时尝试多少次。通过在两种场景中保持系统的“大脑”——即语言模型——完全一致,研究人员可以隔离出控制方法本身的影响,剔除所有其他变量,从而观察哪种策略真正更有效。
这项研究的结果揭示了灵活性与可靠性之间明显的权衡。当人工智能被允许控制整个过程时,它经常能够成功生成一个可运行的程序,通常能产生一个不会崩溃的结果。然而,这种成功伴随着隐藏的代价:结果是不一致的。由于模型在自行决定如何进行,同样的初始代码在不同的尝试中可能会导致截然不同的结果,有时能产生完美的翻译,有时则会以不可预测的方式失败。此外,这种“智能体式”的方法成本极高。模型经常会在冗长的推理路径中徘徊,不断向自己提问并尝试多种并非必要的策略,消耗了大量的计算资源。在某些情况下,这种灵活的方法所使用的 Token(模型处理信息的最小单位)数量是固定路径方法的三倍以上,才达到了类似的结果。
相比之下,遵循固定、确定性路径的系统产生的结果则更加稳定且可预测。虽然其翻译代码的整体能力与灵活版本不相上下,但这个僵化的系统极少出现最坏的情况。它不会迷失在不必要的思考循环中,也不会在每次运行之间改变其行为。最重要的是,它的运行成本显著降低。通过遵循严格的步骤计划,并仅将人工智能用于编写代码而非规划旅程,该系统将翻译成本降低了三到三点五倍。研究人员发现,对于像现代化遗留软件这样步骤明确且结果可以根据严格规则进行校验的任务,让人工智能去“开车”不仅更昂ей,而且比由人类设计的“地图”引导路径的方式更不可靠。
这项研究表明,未来在复杂的工程任务中使用人工智能,其核心可能并不在于给予机器决策如何工作的完全自由。相反,最有效的方法似乎是将这些强大的模型嵌入到一个结构化的框架中,使参与规则固定且路径清晰。人工智能仍然是那位能够理解复杂指令并生成新代码的专家级作者,但工作的编排——包括规划、时机把控和安全检查——仍需处于严格的、确定性的控制之下。这确保了过程不仅能够产生高质量的结果,而且对于维持现代世界运转的大规模、关键性系统而言,依然保持着稳健、可预测且经济可行。
技术摘要:用于 COBOL 到 Python 现代化进程中的确定性编排与 LLM 控制编排对比
问题陈述
由于专业知识匮乏、代码库庞大以及对正确性要求极严,将遗留 COBOL 系统进行现代化转型是一项关键挑战。虽然大语言模型(LLM)在代码翻译方面已展现出潜力,但近期的系统越来越多地依赖于智能体工作流(agentic workflows),即由 LLM 动态控制多步工具执行,包括工具选择、顺序及重试逻辑。然而,目前尚不清楚在结构化软件工程工作流(如遗留系统现代化)中,将执行控制权委托给 LLM 是否比使用固定的、确定性的执行策略能提高正确性、鲁棒性或效率。现有文献往往将编排策略与模型能力或提示词设计混为一谈,导致难以隔离出执行控制机制的具体影响。
方法论
作者提出了一个受控实证研究,利用 ATLAS(面向遗留应用系统的自主转译)框架来比较两种编排策略:**确定性编排(Deterministic Orchestration)**与 LLM 控制编排(LLM-Controlled Orchestration)。
实验设计
为了将编排作为唯一的实验变量,研究在所有运行中保持以下内容不变:
- 语言模型: 相同的模型、版本和解码参数(温度、种子)。
- 提示词: 相同的系统提示词、任务指令和格式约束。
- 工具: 相同的工具集(例如
read_file、write_file、run_command、git),具有相同的接口和权限。
- 输入: 相同的源 COBOL 程序和测试输入。
- 配置: 相同的超时限制和配置标志。
编排策略
- 确定性编排: 工具调用、验证阶段和重试行为的序列是固定且预定义的。LLM 仅负责特定阶段内的代码生成。执行流不依赖于中间 LLM 输出;条件分支由基于系统状态(例如文件修改状态)的确定性谓词进行控制。
- LLM 控制编排: LLM 作为核心编排器,动态选择工具、决定执行顺序、在失败时选择修复策略并决定何时终止。执行流从模型的生成过程中产生,并受随机采样影响。
数据集与评估
- 数据集: NIST COBOL85 测试套件,包含数百个具有可执行测试套件和明确预期结果的自包含 COBOL 程序。
- 指标:
- 计算准确度 (CA): 生成的 Python 程序与参考 COBOL 实现针对测试输入的功能等效性。
- 成功率 (SR): 在多次随机运行(N 次独立执行)中,翻译流水线生成可运行且通过测试的程序的频率。
- 最差情况鲁棒性: 通过 CA 的第 5 百分位数(P5-CA)和条件风险价值(CVaR)来衡量,以捕捉尾部风险失败。
- 效率: 每次成功翻译消耗的 Token 量以及预估的运营成本。
核心贡献
- 受控框架: 作者引入了一个统一的实验框架,该框架将执行控制作为唯一的变量,从而实现了确定性编排与智能体编排之间的直接比较,且不存在混淆因素。
- 鲁棒性与频率的权衡: 研究表明,虽然两种策略都能实现相当的整体翻译能力,但确定性编排显著提高了最差情况下的鲁棒性(减少了尾部风险失败和性能波动),而 LLM 控制编排在多次尝试中产生可运行代码的成功率更高。
- 效率分析: 本文提供了定量分析,显示确定性编排可减少高达 3.5 倍 的 Token 消耗,从而与自适应智能体工作流相比,大幅降低了运营成本。
结果
- 正确性: 在多个模型(包括 Claude-Sonnet-4-5、GPT-5.1-Codex-Max 和 Grok-Code-Fast-1)中,确定性编排始终实现了更高的平均计算准确度(CA)和更强的最差情况鲁棒性(更高的 P5-CA 和 CVaR)。
- 成功率: LLM 控制编排实现了更高的成功率(SR),表明在单次运行中,自适应执行更频繁地产生了可编译且通过测试的程序。然而,这以更重的性能尾部为代价(即在最坏情况下会出现更严重的失败)。
- 成本与效率: LLM 控制编排需要显著更多的 Token(例如,复杂模块需要 1.75M–2.25M 个 Token,而确定性编排仅需 400k–700k 个)。这导致智能体工作流的运营成本高出多达 3.5 倍(例如,对于顺序 I/O 任务,每次成功翻译的成本约为 140,而确定性编排约为 40)。
- 测试套件一致性: 综合测试统计显示,两种策略都可以翻译相同的程序集,但确定性编排在最终输出中提供了更一致的正确性保证。
意义与主张
本文认为,对于具有明确验证阶段和确定性依赖关系的结构化现代化工作流,固定的执行策略提供了一种比完全智能体编排更稳定且更具成本效益的替代方案,且不会牺牲翻译质量。
- 设计启示: 执行控制应被视为一等公民的系统设计决策,而非 LLM 推理的隐含结果。在具有清晰转换流程和强验证信号的任务中,将执行控制与生成式推理分离可以限制误差累积并提高可预测性。
- 适用范围: 研究结果表明,虽然智能体编排可能在开放式、探索性任务(如需求发现)中仍具价值,但结构化遗留系统现代化更受益于确定性默认设置。
- 局限性说明: 作者承认了局限性,指出结果是针对 COBOL 到 Python 现代化以及 NIST COBOL85 套件的,这可能无法完全涵盖具有外部依赖(如 JCL、CICS、VSAM)的生产环境的复杂性。他们还指出,本研究是在受控条件下隔离了编排策略进行的,结果可能会随不同的提示策略或模型架构而变化。
总之,本研究认为,在企业级规模的现代化进程中,将 LLM 嵌入确定性执行框架内,对于维持经济可行性和成本可预测性至关重要,这挑战了“将所有控制权交给智能体必然更优”的假设。
每周获取最佳 computer science 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。