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

AI前线 · 人工智能

AI前线 2026-11-07 11:19 北京 基于大模型的智能体系统,已经从线性提示词发展到基于图的工作流,近期又演进为可执行代码的 Harness。本文建议对模型输出做校验,并选用能够满足可靠性、速度和成本需求的最简单的方案。 作者 | Karthik Ramgopal 译者 | 明知山 在过去几年里,基于大语言模型构建的智能体经历了翻天覆地的变化。最初只是用粘合代码拼凑起来的临时提示词,如今已逐渐演变为我们所说的智能体 Harness 框架,也叫结构化执行框架——它们围绕概率模型搭建起脚手架,让模型变得稳定、可观测,达到生产级水准。 这一演变并非一蹴而就,而是渐进式的,由真实业务场景不断增长的需求推动。在这条变革弧线上,先后出现了三种截然不同的范式,每一种都反映出人们对如何约束非确定性智能、并将其落地为可靠软件系统更深的理解。 链式范式:提示词编排 最初的智能体系统围绕简单的线性工作流构建,我们称之为“链”。这种方法直观、落地快,能够快速上线。你把一系列提示词串起来,第一步的输出作为第二步的输入,依此类推。Harness 框架不过是工具调用、对话记忆的粘合代码,最终把 LLM 当作一个黑盒函数来对待:文本进、文本出,外加一些语法糖。 例如在 LinkedIn,我们早期的一个 生成式 AI 智能体 就是基于 LangChain 框架构建的固定三步链式流程: 图 1:带检索增强生成(RAG)的简单链式工作流(来源:作者绘制) 路由(Routing):分类步骤,用于判断查询是否在范围内,以及应由哪个专门的 AI“专家”来处理。 检索(Retrieval):以召回为导向的步骤,调用合适的工具(如必应网页搜索或 LinkedIn 内部 API)来收集特定信息,创建一份档案,为检索增强生成(RAG)提供事实依据。 生成(Generation):以精度为导向的步骤,对检索到的数据进行过滤和综合,形成通顺的最终答案。 虽然构建和部署相对较快,但这种简单结构很脆弱。该工作流(例如通过一系列工具调用、基于 LinkedIn 经济图谱回答用户问题)完全依赖前一步的文本保真度。上游的一个错误会级联传播,使整个流程偏离轨道,因为系统没有内置机制来系统性识别错误或者自动修复。 这种方法体现了这些早期智能体产品“尽力而为”的特点。构建最初 80% 的体验相对较快,但要弥合生产环境所需的最终质量,则需要通过严格的评估、提示词优化和持续的工程投入进行大量迭代。 图范式:引入结构与控制 随着智能体系统应用场景变得日益复杂,线性链式方案固有的局限性和脆弱性已无法忽视。开发者转而采用图——这是一种很自然的抽象方式,可以在工作流中加入分支、条件逻辑、并行执行和重试机制。 在这种方案中,基于图的 Harness 框架用节点表示不同的任务(如 LLM 调用、工具调用或验证),用边来控制流程。这种从线性结构到图的转变,与数据管道和传统分布式系统的演进如出一辙。 图系统的关键创新不只是增加了分支,而是让控制流变得显式且可声明。开发者不再将逻辑隐式地嵌入提示词或代码中,而是定义成方便查看、修改、梳理的执行计划。这形成了一种推理循环控制流,LLM 可以在动态环境中利用图结构来路由和执行复杂的长耗时任务。 对于许多复杂任务,单体智能体应用已不再可行。图系统催生了多智能体系统的出现,由顶层智能编排器来管理任务流和依赖关系。这种向多智能体的转变需要成熟的协议来建立智能体之间的异步通信,如 A2A 和 ACP(后者最终合并进了 A2A)。 图 2:典型的多智能体架构(来源:作者绘制) 受限于智能体本身的推理能力,“人在回路”(HITL)机制必不可少。智能体并非完全自主,相反,它们会在关键决策点向人类寻求澄清、接收反馈或请求批准,在自主性与可控性之间取得平衡。 在 LinkedIn,我们通过复用现有的 LinkedIn 消息系统来 实现编排和智能体间通信,以此来处理长耗时任务——将任务拆分为消息序列,保障严格的“先进先出”(FIFO)投递和无缝的消息历史查找。这一基础提供了: 并行能力:通过多个消息线程实现。 弹性:通过现有的持久重试和最终投递机制实现。 灵活的执行模式:智能体可以一次性返回结果、同步流式输出,或者跨多条消息异步流式输出。 基于图的工作流通过 LangGraph 实现,提供了多项关键功能,提升了系统的鲁棒性和复杂度的可管理性: 条件执行:可以基于中间结果路由、重新路由任务。 重试和回退:系统能够从故障中优雅地恢复。 状态管理:系统超越了文本,在整个流程中维护结构化的中间数据。 显式验证:包括模式检查、业务规则或辅助模型,用于避免盲目信任 LLM 的输出。 这些智能体还需要先进的记忆能力,能够从用户交互中持续学习,并随着时间推移支持日益个性化、自适应且实用的体验。基于

查看原文