写点什么

智能体 Harness 的演进:从链、图到代码化

作者:Karthik Ramgopal
  • 2026-11-06
    北京
  • 本文字数:4596 字

    阅读完需:约 15 分钟

AI摘要

大语言模型智能体正从简单提示词链式编排,演进为具备可观测性与稳定性的结构化执行框架(Harness)。该演进由业务需求驱动,呈现链式、工具增强、结构化控制三阶段范式跃迁。LinkedIn 早期实践以 LangChain 实现路由—检索—生成三步链,将 LLM 视为黑盒文本函数。

链式范式本质是线性提示编排,落地快但缺乏可控性;路由与检索分离体现任务解耦设计思想;Harness 框架核心价值在于为概率模型构建确定性执行脚手架。

适合AI工程化负责人、LLM 应用架构师、智能体平台开发者阅读。

在过去几年里,基于大语言模型构建的智能体经历了翻天覆地的变化。最初只是用粘合代码拼凑起来的临时提示词,如今已逐渐演变为我们所说的智能体 Harness 框架,也叫结构化执行框架——它们围绕概率模型搭建起脚手架,让模型变得稳定、可观测,达到生产级水准。

这一演变并非一蹴而就,而是渐进式的,由真实业务场景不断增长的需求推动。在这条变革弧线上,先后出现了三种截然不同的范式,每一种都反映出人们对如何约束非确定性智能、并将其落地为可靠软件系统更深的理解。

链式范式:提示词编排

最初的智能体系统围绕简单的线性工作流构建,我们称之为“链”。这种方法直观、落地快,能够快速上线。你把一系列提示词串起来,第一步的输出作为第二步的输入,依此类推。Harness 框架不过是工具调用、对话记忆的粘合代码,最终把 LLM 当作一个黑盒函数来对待:文本进、文本出,外加一些语法糖。

例如在 LinkedIn,我们早期的一个生成式 AI 智能体就是基于 LangChain 框架构建的固定三步链式流程:

  1. 路由(Routing):分类步骤,用于判断查询是否在范围内,以及应由哪个专门的 AI“专家”来处理。

  2. 检索(Retrieval):以召回为导向的步骤,调用合适的工具(如必应网页搜索或 LinkedIn 内部 API)来收集特定信息,创建一份档案,为检索增强生成(RAG)提供事实依据。

  3. 生成(Generation):以精度为导向的步骤,对检索到的数据进行过滤和综合,形成通顺的最终答案。

虽然构建和部署相对较快,但这种简单结构很脆弱。该工作流(例如通过一系列工具调用、基于 LinkedIn 经济图谱回答用户问题)完全依赖前一步的文本保真度。上游的一个错误会级联传播,使整个流程偏离轨道,因为系统没有内置机制来系统性识别错误或者自动修复。

这种方法体现了这些早期智能体产品“尽力而为”的特点。构建最初 80% 的体验相对较快,但要弥合生产环境所需的最终质量,则需要通过严格的评估、提示词优化和持续的工程投入进行大量迭代。

图范式:引入结构与控制

随着智能体系统应用场景变得日益复杂,线性链式方案固有的局限性和脆弱性已无法忽视。开发者转而采用图——这是一种很自然的抽象方式,可以在工作流中加入分支、条件逻辑、并行执行和重试机制。

在这种方案中,基于图的 Harness 框架用节点表示不同的任务(如 LLM 调用、工具调用或验证),用边来控制流程。这种从线性结构到图的转变,与数据管道和传统分布式系统的演进如出一辙。

图系统的关键创新不只是增加了分支,而是让控制流变得显式且可声明。开发者不再将逻辑隐式地嵌入提示词或代码中,而是定义成方便查看、修改、梳理的执行计划。这形成了一种推理循环控制流,LLM 可以在动态环境中利用图结构来路由和执行复杂的长耗时任务。

对于许多复杂任务,单体智能体应用已不再可行。图系统催生了多智能体系统的出现,由顶层智能编排器来管理任务流和依赖关系。这种向多智能体的转变需要成熟的协议来建立智能体之间的异步通信,如 A2A 和 ACP(后者最终合并进了 A2A)。

受限于智能体本身的推理能力,“人在回路”(HITL)机制必不可少。智能体并非完全自主,相反,它们会在关键决策点向人类寻求澄清、接收反馈或请求批准,在自主性与可控性之间取得平衡。

在 LinkedIn,我们通过复用现有的 LinkedIn 消息系统来实现编排和智能体间通信,以此来处理长耗时任务——将任务拆分为消息序列,保障严格的“先进先出”(FIFO)投递和无缝的消息历史查找。这一基础提供了:

  • 并行能力:通过多个消息线程实现。

  • 弹性:通过现有的持久重试和最终投递机制实现。

  • 灵活的执行模式:智能体可以一次性返回结果、同步流式输出,或者跨多条消息异步流式输出。

基于图的工作流通过 LangGraph 实现,提供了多项关键功能,提升了系统的鲁棒性和复杂度的可管理性:

  • 条件执行:可以基于中间结果路由、重新路由任务。

  • 重试和回退:系统能够从故障中优雅地恢复。

  • 状态管理:系统超越了文本,在整个流程中维护结构化的中间数据。

  • 显式验证:包括模式检查、业务规则或辅助模型,用于避免盲目信任 LLM 的输出。

这些智能体还需要先进的记忆能力,能够从用户交互中持续学习,并随着时间推移支持日益个性化、自适应且实用的体验。基于分布式多智能体架构,我们把认知记忆本身设计成一个独立智能体,供应用智能体集成。

这些创新推动了 Hiring Assistant 的发布和后续的迭代——这是 LinkedIn 首个为招聘人员设计的 AI 智能体。招聘人员可以选择将耗时的任务委托给 Hiring Assistant,包括寻找候选人和协助筛选申请人,从而把精力放在更具策略性、与人相关的核心工作上。

随着时间的推移,我们意识到,要提供真正出色的智能体体验,需要的不仅仅是一个能力强大的模型。我们的智能体需要深厚的领域知识,以丰富的组织上下文为基础,并具备持续迭代优化的能力。这就需要记忆能力,从交互中学习,并为招聘人员提供日益个性化、自适应且实用的体验。

尽管与链相比,图显著扩展了智能体可处理任务的复杂度,但本质上依然是由人预先定义好工作流的自动化程序。随着这些工作流和状态空间变得越来越复杂,开发者面临着越来越大的压力,需要手动编写大量故障恢复逻辑、校验规则、边界异常处理逻辑。最终的流程定义、评测框架容易变得脆弱、繁琐、难以维护。这种僵化性也导致基于图的方法不适合那些无法被清晰表达为确定性工作流的任务。

代码范式:将执行作为一等原语

智能体系统最近的一次重大突破,来自于将代码(而不是提示词)作为推理的主要媒介。不再简单地要求模型用自然语言“思考”一个复杂问题,而是让编码 Harness 在沙箱环境中生成、执行并优化代码。

这打破了一个根本的局限,开发者不再需要预先设计复杂的工作流,而是让智能体通过生成具备可验证输出的代码自行“寻找”解决方案。这类 Harness 一般自带规划、任务委派、记忆访问、Token 管理与压缩等工具。

大模型的自然语言输出具有概率性,在后续验证步骤之前,本质上是不可靠的。但代码是确定性的。它要么通过了编译、运行并输出正确结果,要么运行失败。这种通过与失败的确定性提供了紧密的反馈回路,对于大幅提升系统的可靠性来说至关重要。

为保障安全和正确性,该架构包含四个核心组件:

  • 执行沙箱:一个受控的隔离环境,生成的代码可以在其中安全运行。

  • 埋点与日志:捕获代码执行期间所有输出、错误和中间状态,方便后续排查问题。

  • 验证 Harness:单元测试、断言或检查规则,自动验证生成代码的输出是否符合预期。

  • 迭代优化循环:智能体识别到失败,系统地修改生成的代码,并自动重试执行,直到满足正确性要求。

在 LinkedIn,我们用这种方法构建了一个内部工具,能够让开发者、产品经理、数据科学家甚至业务运营人员向智能体提出自然语言分析性问题,智能体基于平台聚合数据和业务洞察给出答案。该智能体在我们现有的隐私、权限、安全框架内运行,遵循基于角色和用途的数据访问规则,在输出内容中叠加自动化的合规审查,并通过获批的合规基础设施路由模型交互。

该智能体将用户查询转换为声明式 SQL 和命令式 Python 代码的组合,在样本数据上执行,根据严格约束(包括隐私、可见性和合规检查)验证输出,并循环迭代,直到满足所有正确性要求。

采用基于代码的方案缩短了上线时间,因为我们不用费力定制提示词、工具、工作流图和评估调优。最终的系统不仅更可靠,而且可审计性和可复现性也显著提升。

健壮的智能体 AI 架构最佳实践

无论你的智能体系统处于哪个阶段——从简单的链式到复杂的编码 Harness——一些基本的原则决定了系统是健壮的还是脆弱的。

  • 将 LLM 输出视为不可信输入:由于大语言模型的输出具有概率性,必须在它们影响下游逻辑之前进行严格验证,绝不在未经验证的情况下信任文本输出。在继续流程之前应用 Schema 检查、业务和合规规则或辅助模型。

  • 将规划与执行解耦:让大模型提出计划,但在严格受控的软件框架内执行计划。这种分离至关重要,因为它能显著提升透明度度和系统控制力。

  • 提升可观测性:如果你看不到一个复杂且高度非确定性的系统的内部行为,就无法调试它。强大的可观测性必须捕获详细信息,包括智能体每一步的执行状态、执行轨迹和验证结果,同时对敏感信息进行适当脱敏。

  • 构建持续改进能力:智能体系统本质上是动态演进的,而非静态的。构建强大的反馈回路来捕获和分析失败,支持提示词、策略和程序记忆的演进,并在评估和仿真环境上进行投入,持续提升系统性能。

选择合适的抽象范式

并非每个问题都值得引入图或编码 Harness 所带来的运维复杂性。选择正确的抽象,本质上是在任务复杂度、可靠性要求、可解释性、延迟和成本之间做出权衡。基本原则很简单:使用能够可靠解决问题的最简单的系统。

对于范围明确的线性任务,链式方案通常就足够了——单次或有限的提示词序列即可产生可接受的结果。例如撰写客服回复、总结文档、内容审核,或从可预测的输入中提取结构化数据。这些系统通常延迟最低,计算开销也小,因为它们最小化了模型调用、编排开销和状态管理。对于许多生产工作负载,链式方案仍然是最经济且高效的选项,尤其是在需要快速迭代或大规模部署时。

当工作流需要条件分支、重试、工具调用或显式状态转换时,适合选择图方案。现实世界的例子包括多步骤客服问题处理、企业 IT 自动化、合规流水线,或根据中间输出触发不同动作的入职系统。虽然图提升了弹性和运维控制力,但也引入了额外的延迟,通常需要多次 LLM 调用,从而增加了服务成本和系统复杂性。它处于中间地带:比链式更可靠,但设计和运维成本更高。

编码 Harness 最适合那些对准确性、可验证性、故障恢复能力要求极高的场景。例如软件工程智能体、金融分析系统、法律文件验证、科学工作流和基础设施自动化——在这些场景中,生成的输出可以被测试、编译、仿真或验证。由于存在迭代推理循环、外部工具的执行和验证周期,这些系统通常会带来更高的计算和延迟开销。但在正确性远比速度或成本重要的场景中,它们提供了最强的保障。

随着模型不断进步、成本不断下降,过度工程的倾向依然是一种常见的失败诱因。更复杂的抽象往往会更快地增加计算开销、延迟和运维复杂性,而不是更快地改善业务成果。

真正的优势来自严谨的抽象层选择:部署能够满足可靠性、速度和成本要求的最简单的系统。强大的工程组织不是靠最大化架构复杂度取胜,而是靠优化每一分成本带来的能力收益。

结语

智能体系统的快速演进引发了开发者角色的根本性转变。我们正在见证从“提示词设计师”到“系统架构师”的职业转型。在早期基于链式的 LLM 阶段,成功往往取决于构建完美提示词的技巧。然而,随着系统演进为复杂的图和代码 Harness,重点已转移到严谨的软件工程上:设计执行流程、管理状态和依赖,以及构建强大的验证和恢复机制。

这一转变的背后是一个更宏大的目标:从“尽力而为”的心态转向“工程化可靠性”。早期系统将不可预测性视为固有的约束,并容忍之。但现代智能体 Harness 要求更高,在一切可能的情况下追求确定性,只在必要时使用可控的非确定性,并且定义清晰的故障模式与恢复路径。

这个过程标志着 AI 智能体从尖端边缘实验演变为一流的生产级系统。其新颖之处不在于组件本身,而在于它们如何将概率模型集成到确定性框架中。

我们面临的挑战与机遇在于:不要把这些系统当作神奇的黑盒,而要把它们当作软件系统来对待——它们与其他关键基础设施一样,需要同等严格的规范、精心的设计、一流的工程质量。

查看英文原文:https://www.infoq.com/articles/agentic-ai-architecture-harness-evolution/