当 Agent 进入遗留系统:多语言运行时下的智能体框架选型与信任边界

作者:渣渣辉2026.11.04 08:00浏览量:0

简介:智能体框架大多默认从 Python 或 TypeScript 起步,但在银行、制造、科研等大型组织中,COBOL、Fortran、Perl、Lua、Erlang 等长尾运行时才是核心业务的真正载体。本文围绕“智能体应如何进入多语言遗留系统”这一核心问题,对比分析“桥接封装”与“智能体下沉”两类架构方案的技术差异、适用场景与信任构建方式,帮助架构师和技术负责人在不触发大规模重写的前提下,判断哪些能力应原生嵌入运行时,哪些应留在桥接之后。

agent-">当 Agent 进入遗留系统:多语言运行时下的智能体框架选型与信任边界

一、问题背景:智能体框架的默认假设,为何在遗留系统中失效

当前主流的智能体开发框架,其设计起点通常是一个干净、同构的应用环境:开发者新建项目、安装 SDK、接入模型、定义工具,然后通过流式输出完成一次对话或任务执行。这套模式在创业公司、原型验证和全新项目中运转良好,因为从第一天起,所有代码都可以围绕智能体的调用方式、状态管理和工具权限来设计。

但大型组织的真实技术底座远非如此。一家银行的夜间批处理可能已经运行了二十年,由 COBOL 编写,串联起作业调度、对账、总账和报表整条链路。每一环都有负责人,每一次变更都受审计约束,每一个异常都有既定处理流程。风险模型可能由 Fortran 编写,系统间的胶水脚本可能是 Perl,嵌入式控制面可能是 Lua,消息服务可能是 Erlang,研究团队则可能使用 Julia 或 R。这些系统不是为了“接入智能体”而设计的,很多也无法重写——因为重写的代价不只是代码改写,还包括监管审查、审计追踪、迁移验证和长期的变更控制。

由此产生了一个根本性的问题:智能体能否进入这些多语言、长生命周期的运行时,同时不绕过它们已有的治理边界?这个问题的核心不是“某种语言流不流行”,而是“智能体循环应该落在哪里才值得信任”。

二、对比对象定义:两种截然不同的架构取向

围绕上述问题,业界逐渐分化出两种有代表性的解决方案。为了便于分析,本文将二者分别定义为“桥接封装方案”与“智能体下沉方案”。

桥接封装方案的核心思路是:在遗留系统外部构建一个具备完整智能体能力的独立进程或服务,通过 API、消息队列、文件交换或屏幕操作等方式,与 COBOL、Fortran 等运行时通信。智能体本身仍然运行在 Python 或 TypeScript 环境中,所有模型调用、工具执行、策略判断、检查点管理和审计事件生成都发生在外部层。遗留系统只负责暴露有限的接口,响应外部指令。

智能体下沉方案的核心思路则是:将受限的、受治理的智能体循环直接嵌入目标运行时内部,让核心业务系统自身具备调用模型、执行策略和发出审计事件的能力。例如,在一个 COBOL 批处理任务中,当出现一笔异常交易时,本地循环可以直接读取上下文、调用工具、请求人工审批、写入检查点,而无需将控制权反复交还给外部的 Python 进程。

这两种方案并非非此即彼的替代关系,而是代表了集成深度、治理边界和技术复杂度之间的不同取舍。理解它们之间的差异,有助于架构师在具体场景中做出条件化判断,而不是盲目跟随某一种“最佳实践”。

三、相同点分析:两种方案都在回答同一个治理问题

尽管架构取向不同,两种方案在目标层面存在若干共通之处。

其一,尊重遗留系统的核心地位。 无论是桥接封装还是智能体下沉,都不主张将 COBOL、Fortran 等系统“迁移”到新语言,也不将“重写”作为接入智能体的前置条件。二者都承认,这些系统承载着不可替代的业务价值和监管责任。

其二,都强调审计与可追踪性。 对于银行批处理这类场景,任何智能体行为都必须可追踪、可回放、可审批。两种方案都需要在系统中建立清晰的检查点和审计事件链,确保每一步决策都有记录、有责任归属。

其三,都面临“跨语言状态一致性”的难题。 无论智能体循环位于运行时内部还是外部,一旦涉及人工审批、长时等待或多步骤任务,就需要在跨进程、跨语言的边界上保持一致的状态语义。这并非某一种方案独有的挑战,而是所有多语言智能体系统都要面对的基础问题。

其四,都需要对模型调用实施策略约束。 在核心业务系统中,模型不能自由地做任何事。哪些工具可以调用、哪些操作需要人工确认、哪些输出可以进入生产数据流,都必须在系统设计阶段明确。两种方案都需要提供相应的策略执行机制,区别只在于策略执行的位置。

四、核心差异分析:从架构、治理到运维的全面拆解

4.1 技术架构:边界在哪,信任就在哪

桥接封装方案的架构边界非常清晰:遗留系统在一侧,智能体平台在另一侧,中间通过明确的接口契约连接。这种清晰性带来了较低的侵入性——遗留系统本身几乎不需要改造,只需暴露一些只读接口或受控写入口。但代价是,策略、工具授权、检查点、事件关联和人工审批机制都需要在桥接层重新建立。你可以在 Python 环境中获得完整的智能体能力,但这些能力与 COBOL 批处理内部的实际执行状态之间,始终隔着一层语义转换。

智能体下沉方案则打破了这种清晰边界。它主张将精简的智能体循环嵌入运行时内部,使模型调用和策略判断发生在离数据最近的地方。这意味着 COBOL 进程不必把每一笔异常交易的完整上下文都序列化后发给外部服务,再由外部服务返回指令;它可以在本地完成判断,只在需要人工介入时发出请求。但这也意味着,策略执行、审计轨迹和模型调用行为必须由 COBOL 侧(或其他原运行时侧)承担一部分责任。这对语言生态和团队能力提出了更高的要求。

4.2 功能能力:完整性与原生性的权衡

桥接封装方案在功能完整性上拥有天然优势。因为智能体循环位于 Python 或 TypeScript 环境,所有主流的模型客户端、工具调用协议、向量检索库、结构化输出解析器都可以直接使用。开发效率高,生态支持完善。但这些能力中,有很大一部分在核心业务场景下并不需要,甚至可能成为治理负担。一个夜间批处理中的异常处理循环,并不需要全量的插件市场和动态提示词能力,它需要的是受控的、可审计的、确定性优先的任务执行路径。

智能体下沉方案则要求功能被大幅裁剪和本地化。下沉到 COBOL 或 Fortran 中的“智能体循环”,更准确地说是一种“受治理的任务执行器”:接收预定义类型的事件,根据策略选择动作,调用本地工具,生成审计记录,必要时挂起等待人工审批。它不是通用智能体,而是特定业务路径上的可控决策节点。这种裁剪不是缺憾,而是治理的要求。

4.3 接入方式与开发改造量

桥接封装方案的接入方式相对温和。团队可以在不修改 COBOL 批次主流程的情况下,通过旁路模式读取日志、监控输出文件或订阅消息队列,在外部发现异常后进行干预。对于探索性项目和试点场景,这种方式周期短、风险低。但要将干预结果写回生产流程,就必须在遗留系统侧开放受控写入口,这在合规审核中往往需要额外论证。

智能体下沉方案的接入改造量则显著更大。它要求在 COBOL 批处理的特定节点嵌入调用逻辑,在 Fortran 仿真程序中加入策略判断分支,在 Erlang 消息服务中增加检查点语义。这些改造不仅涉及代码,还涉及作业调度、变更窗口和回归测试。但从长期来看,如果智能体需要参与关键决策路径,这种原生性可以减少跨进程转换带来的复杂度。

4.4 安全与合规:审计链路的位置决定治理强度

在桥接封装方案中,智能体的审计事件在外部平台中生成,与遗留系统自身的作业日志往往分离。虽然可以通过关联 ID 将两套日志合并,但当故障发生时,追溯一条决策的完整生命周期需要跨系统拼接。这种拼接本身就有误差风险。

在智能体下沉方案中,审计事件可以在运行时内部直接生成,并与批次作业日志自然关联。一个检查点的写入、一次人工审批的请求、一次工具调用的结果,都能嵌入原有的作业上下文。对于受严格监管的场景,这种原生审计能力具有显著优势。但它要求运行时本身具备足够的日志与事件基础设施,否则下沉的优势无法体现。

4.5 运维成本与故障恢复

桥接封装方案将智能体相关的运维工作集中在外部平台,这与现有 DevOps 体系更容易整合。模型升级、策略调整、工具配置都可以独立于遗留系统进行,对生产批处理的影响面较小。但反过来,多了一个需要监控、告警和容量规划的独立组件,也增加了系统间依赖关系的复杂度。一旦外部智能体服务不可用,遗留系统的主流程不应因此中断,这就要求设计降级路径——这在实践中并不容易做到位。

智能体下沉方案的运维边界与遗留系统本身重合。模型调用逻辑、策略配置和工具授权都纳入既有运维流程。对于已经维护了几十年批处理系统的团队来说,这意味着不需要额外养活一套新的平台。但模型客户端、依赖库和安全更新也进入了原本封闭的运行环境中,带来供应链风险。这需要更严格的版本管理和安全评审流程。

4.6 成本结构

桥接封装方案的初期成本较低,因为不需要对遗留系统做深入改造,探索和验证速度较快。但长期成本中,跨系统集成维护、事件关联治理、双轨审计以及额外基础设施的运维开销会持续存在。

智能体下沉方案的初期成本较高,主要集中在运行时内部的改造、回归测试和治理机制建设。一旦完成,日常运行不需要频繁的跨进程交互,集成成本会逐步降低。但它对团队的多语言能力要求更高——你需要既理解 COBOL 批处理的作业语义,又理解智能体循环的治理要求。

五、对比表格:关键维度一览

对比维度 桥接封装方案 智能体下沉方案
侵入性 低,遗留系统改动少 高,需在运行时内嵌入逻辑
功能完整性 高,可复用完整智能体生态 低,需裁剪为受治理的执行器
审计能力 外部审计,需跨系统关联 原生审计,与作业日志同源
接入周期 短,适合试点 长,需变更窗口和回归测试
运维边界 独立于遗留系统 与遗留系统重合
状态一致性 跨进程语义转换复杂 本地上下文完整,一致性较好
长期成本 集成维护开销持续存在 前期投入高,后期集成成本低
团队要求 偏重新语言与智能体框架 偏重多语言与治理机制
适用场景 探索、旁路监控、非关键路径 核心决策路径、强审计场景

六、典型场景选择:条件化判断而非绝对优劣

优先考虑桥接封装方案的场景:

  • 智能体只承担观察、建议和报告职责,不直接写入生产数据;
  • 遗留系统无法在短期内进行代码变更,或变更窗口极为有限;
  • 团队尚处于探索阶段,需要快速验证智能体在业务场景中的价值;
  • 智能体行为可以被安全地隔离在外部,失败时只需降级为人工处理。

优先考虑智能体下沉方案的场景:

  • 智能体需要参与核心交易或批处理的关键决策分支;
  • 审计要求决策轨迹必须与作业日志在同一治理链条中;
  • 数据敏感性高,不希望将完整上下文反复序列化到外部进程;
  • 遗留系统本身具备良好的模块化边界,可以在局部嵌入受控循环;
  • 长期目标是将智能体作为运行时的原生能力,而非外部附属组件。

需要特别指出的是,现实中的很多场景并不会完全落在某一端。更常见的模式是混合架构:在非关键路径上使用桥接封装快速获得智能体能力,在关键路径上逐步下沉受治理的循环,两者共享统一的审计事件模型和身份体系。

七、迁移与使用注意事项

无论选择哪种方案,以下问题都应在设计阶段加以评估:

第一,工具授权的边界。 智能体在遗留系统中能调用哪些程序、读取哪些文件、写入哪些队列,必须通过明确的策略声明。授权模型应尽量与遗留系统已有的用户和角色体系对齐,避免另立一套独立权限。

第二,人工审批节点的位置。 在批处理链路中,人工审批不是外挂的 Web 页面,而是嵌入作业流的状态节点。智能体请求审批后,批处理应能挂起等待,审批通过后从检查点继续,而不是从头重跑。这要求作业调度系统支持长时等待和状态恢复。

第三,检查点语义的跨语言一致性。 检查点不仅要记录“执行到哪一步”,还要记录上下文数据版本、外部依赖状态和可回滚范围。在桥接方案中,这类信息需要在两个进程间反复同步;在下沉方案中,则必须融入运行时原有的数据结构。

第四,降级策略。 一旦模型服务不可用、工具调用超时或策略引擎故障,批量作业不能中断整体链路。应提前定义降级路径:是跳过该智能体节点转为人工笔录,还是终止任务并报警,需要在设计阶段明确。

第五,测试与回归。 智能体的引入会改变原有作业的非确定性。即使模型输出被严格约束,其执行路径也可能因版本升级或策略调整而变化。因此需要建立可重复的测试集,覆盖典型异常场景和边界输入,并纳入已有的变更管理流程。

八、总结:真正的问题不是“能不能”,而是“哪里值得信任”

“当智能体遇见 COBOL”这个命题,真正拷问的不是某一种语言的存废,也不是智能体技术能否在老旧系统中运行。它拷问的是:在一个由审计、变更控制和长时间运行构成的世界里,什么样的智能体循环才值得信任?

桥接封装方案给出了一个快速、低侵入的答案,但它将信任建立在外部平台上,跨进程的治理缺口需要持续投入来弥补。智能体下沉方案给出了一个更原生、更内聚的答案,但它要求团队具备同时理解遗留运行时和智能体治理的双重能力,且前期改造成本不可忽视。

最终的选择不取决于哪一方在技术上“更先进”,而取决于智能体在业务链路中的位置、审计要求、团队能力和变更窗口。对于观察性场景,桥接封装足以胜任;对于决策性场景,下沉的受控循环更可能通过治理审查。而在大多数大型组织中,二者共存的混合架构,才是逐步建立信任的现实路径。