Serverless 架构部署 Agent Harness 的优劣势


关键词

Serverless 架构、Agent Harness、无服务器部署、智能体生命周期管理、事件驱动架构、容器实例、FaaS/BaaS


摘要

随着大语言模型(LLM)驱动的智能体(Agent)从实验原型快速向生产级应用落地,Agent Harness(智能体“马具/控制框架”) 作为连接Agent、工具、用户需求和基础设施的核心组件,其部署架构的选择直接决定了Agent应用的性能、成本、可扩展性、可靠性和开发运维效率。本文将以“Serverless架构是否是Agent Harness部署的最优解?”为核心问题,采用生活化类比+STEP BY STEP REASONING+技术量化+项目实战+未来推演的方式展开:首先从智能体部署的痛点切入,明确Agent Harness的核心地位和挑战;接着通过“快递驿站分拣员调度台”“火箭发射指挥舱”等生动比喻解析Serverless、Agent、Agent Harness等核心概念的本质,并构建核心属性维度对比表、ER实体关系图、多组件交互图;然后深入阐述Serverless架构下Agent Harness的技术原理——包括基于FaaS的事件触发调度、BaaS的状态管理与工具集成、函数冷启动优化的数学模型与算法,并提供完整的Python实现(基于AWS Lambda、DynamoDB、SQS、OpenAI GPT-4o mini);随后通过两个生产级案例(电商售后智能客服Agent集群DevOps CI/CD自动调优Agent)展示实际应用流程,包括环境安装、系统功能/架构/接口设计、核心源代码、部署步骤及性能对比数据;最后梳理Agent Harness部署架构的历史演变,分析Serverless架构在Agent Harness领域的边界与外延、最佳实践、行业发展与未来趋势,并给出明确的“何时选择Serverless部署Agent Harness”“何时不适合”的决策框架。全文约12.8万字,适合AI应用开发者、DevOps工程师、云架构师、产品经理以及对智能体落地感兴趣的技术爱好者阅读,旨在帮助读者建立对Serverless Agent Harness的全面认知,做出符合业务需求的架构决策。


1. 背景介绍

1.1 核心概念初步引入

在正式进入主题前,我们先初步用一句话+一个极简比喻锚定后续会反复用到的3个核心概念,避免读者迷失在术语的海洋中:

  1. Agent(智能体):一句话定义——能感知环境、制定决策、执行动作、学习改进的自主/半自主软件实体;极简比喻——外卖骑手:感知环境(看天气、路况、商家出餐通知、用户催单)、制定决策(选哪条路、要不要先接顺路单、要不要提前5分钟联系用户)、执行动作(取餐、送餐、拍照上传、点击完成)、学习改进(记住常送的商圈高峰时段、知道哪些商家出餐快/慢、积累与不同用户沟通的技巧)。
  2. Agent Harness(智能体马具/控制框架):一句话定义——负责Agent的创建、调度、监控、状态管理、工具集成、错误处理、资源分配和生命周期终止的“管理大脑+协调中枢+安全约束器”;极简比喻——整个外卖平台的“骑手调度中心+订单管理系统+安全合规系统+骑手成长系统的集合体”:骑手调度中心(创建Agent实例、分配任务、监控位置与进度)、订单管理系统(存储任务状态、商家信息、用户需求)、安全合规系统(限制骑手不能接太多单导致超时、不能偏离路线太远、不能泄露用户隐私)、骑手成长系统(记录骑手的表现、优化后续调度)。
  3. Serverless Architecture(无服务器架构):一句话定义——云厂商负责计算/存储/网络等基础设施的管理、调度和维护,开发者只需编写“按需执行、事件触发、按调用次数/资源使用量付费”的业务逻辑代码的云原生架构范式;极简比喻——共享办公空间的“按需工位+会议室+打印机+投影仪租赁模式”:共享办公运营商(云厂商)负责找场地、装修、配置设备、水电网络维护、卫生清洁,创业者/团队(开发者)不需要自己租办公室、买设备,只需根据自己的需求——“今天有2个人办公,租2个工位,用2小时会议室,打印50张纸”(按需执行事件触发)——付费,不用的时候(没有任务)一分钱都不用花,也不需要担心工位不够坐或者设备坏了没人修。

1.2 问题背景:智能体从“玩具”到“工具”的最后一公里

1.2.1 大语言模型(LLM)驱动的智能体爆发式增长

2022年11月OpenAI发布ChatGPT以来,大语言模型技术进入了“寒武纪大爆发”时代——从GPT-3.5到GPT-4o、Claude 3.5 Sonnet、Llama 3.1 405B、Gemini 1.5 Pro等,LLM的理解能力、推理能力、生成能力、多模态能力都得到了质的提升。在此基础上,将LLM与工具(API调用、代码执行、文件读写、数据库查询)、知识库(RAG技术)、记忆系统(短期记忆、长期记忆、情景记忆)、规划器(链式思维、树状搜索、反思机制)结合起来的自主/半自主智能体,迅速成为AI领域的下一个风口。

根据全球知名AI咨询机构Gartner的《2024年AI技术成熟度曲线》,LLM驱动的生产级智能体已经从“创新萌芽期”进入了“期望膨胀期的中后期”,预计到2027年将进入“稳步爬升期”,到2030年将进入“生产成熟期”,届时全球将有超过60%的企业在至少一个核心业务场景中使用生产级智能体。另据美国风投机构红杉资本(Sequoia Capital)的《2024年AI应用报告》,2023年全球AI应用的融资总额中,有超过25%投向了智能体相关的创业公司,是所有AI细分领域中融资占比最高的。

1.2.2 智能体落地的核心痛点:基础设施与管理复杂性

然而,当开发者把在Jupyter Notebook里跑通的、只有一个Agent、一个简单工具、少量测试用例的“玩具级智能体”,向生产级应用(比如电商售后智能客服Agent集群、金融风控预警Agent、医疗辅助诊断Agent、DevOps CI/CD自动调优Agent)迁移时,会遇到一系列令人头疼的基础设施与管理复杂性问题,这些问题就像横亘在“玩具”和“工具”之间的一条100米宽、布满荆棘的河流,大部分开发者都只能望河兴叹。

为了让读者更直观地理解这些痛点,我们先来看一个电商售后智能客服Agent集群的“传统服务器部署”假想案例

假想案例:某电商平台有1000万活跃用户,每天的售后咨询量在50万-200万之间波动(工作日10-18点是高峰,咨询量占全天的80%;凌晨0-6点是低谷,咨询量只有高峰的1%左右)。为了应对这些咨询,平台决定部署一个由5种不同类型Agent组成的集群:

  1. 预分类Agent:负责接收用户的咨询文本,判断咨询类型(退款、换货、投诉、物流查询、发票问题、其他),并将咨询分配给对应的专业Agent。
  2. 退款Agent:负责处理退款申请——查询订单状态、退款规则、用户历史行为,决定是否同意退款、退款金额、退款方式,生成退款工单,通知财务系统,反馈给用户。
  3. 换货Agent:负责处理换货申请——查询订单状态、换货规则、库存情况,决定是否同意换货、换货商品、换货方式,生成换货工单,通知仓储系统和物流系统,反馈给用户。
  4. 物流查询Agent:负责调用快递公司的API,查询订单的物流状态,整理成自然语言反馈给用户。
  5. 投诉升级Agent:负责处理复杂的投诉(比如预分类Agent/退款Agent/换货Agent/物流查询Agent无法处理的投诉,或者用户明确要求升级到人工客服的投诉)——记录投诉内容、整理相关证据(订单信息、聊天记录、物流信息)、生成投诉工单、分配给对应的人工客服、跟踪处理进度、反馈给用户。

平台一开始选择了传统的Kubernetes集群部署架构

  • 首先,平台需要自己租5台高性能的云服务器(每台服务器8核16G内存)作为Kubernetes的控制平面节点,租50台中等性能的云服务器(每台服务器4核8G内存)作为工作节点。
  • 然后,平台需要自己搭建Kubernetes集群(配置控制平面节点、工作节点、网络插件、存储插件、Ingress控制器、Prometheus+Grafana监控系统、ELK日志系统、Jaeger链路追踪系统)。
  • 接着,平台需要为每一种Agent编写Dockerfile,构建Docker镜像,推送到私有镜像仓库(比如Harbor)。
  • 然后,平台需要为每一种Agent编写Kubernetes Deployment、Service、Ingress、HPA(Horizontal Pod Autoscaler)、VPA(Vertical Pod Autoscaler)的YAML配置文件——比如预分类Agent需要配置HPA的最小Pod数为10、最大Pod数为100、CPU利用率阈值为70%、内存利用率阈值为80%;退款Agent需要配置HPA的最小Pod数为20、最大Pod数为200;投诉升级Agent需要配置HPA的最小Pod数为2、最大Pod数为20。
  • 最后,平台需要自己维护整个Kubernetes集群——监控控制平面节点和工作节点的状态、修复故障节点、升级Kubernetes版本、升级网络插件和存储插件、备份数据、扩容/缩容集群(比如在618、双11等大促期间,需要把工作节点从50台扩容到200台;大促结束后,再缩容到50台)。

然而,这个部署方案很快就遇到了问题:

  1. 成本极高:平台每天需要支付5台控制平面节点+50台工作节点的云服务器费用,加上私有镜像仓库、监控系统、日志系统、链路追踪系统的费用,每月的基础设施成本超过了30万元;而且在618、双11等大促期间,工作节点从50台扩容到200台,每月的基础设施成本更是飙升到了100万元以上——但即使这样,大促期间偶尔还是会出现Pod资源不足、响应超时的情况;而在凌晨0-6点的低谷期,大部分Pod都是空闲的,浪费了大量的资源。
  2. 开发运维效率极低:搭建和维护Kubernetes集群需要至少3名经验丰富的DevOps工程师,这对于中小型企业来说是一笔巨大的人力成本;而且每次Agent的代码更新,都需要重新构建Docker镜像、推送到私有镜像仓库、更新Kubernetes Deployment的配置文件、验证部署是否成功——这个过程至少需要10-15分钟,严重影响了开发迭代的速度。
  3. 可扩展性和灵活性不足:HPA的CPU利用率阈值和内存利用率阈值很难设置得恰到好处——如果阈值设置得太低,会导致Pod频繁扩容/缩容,增加调度开销;如果阈值设置得太高,会导致Pod资源不足,响应超时;而且Kubernetes的扩容/缩容是基于Pod的平均利用率的,无法根据Agent任务的类型、优先级、复杂度进行细粒度的调度和资源分配——比如预分类Agent的任务复杂度低、响应时间要求高(最好在100ms以内),但HPA只会根据CPU利用率阈值扩容,不会专门为预分类Agent预留高优先级的资源;而投诉升级Agent的任务复杂度高、响应时间要求相对较低(最好在10s以内),但HPA也不会专门为投诉升级Agent分配更多的内存和CPU。
  4. 状态管理复杂:Agent需要处理大量的状态信息——比如用户的聊天记录、订单的处理进度、Agent的任务状态、工具的调用结果;在传统的Kubernetes集群部署架构中,Agent的Pod是无状态的,所以状态信息需要存储在外部的数据库(比如MySQL、PostgreSQL)或者缓存(比如Redis)中;但如果Agent的任务执行过程中Pod故障了,状态信息的恢复会非常困难,很容易导致任务失败或者数据丢失。
  5. 错误处理和容错性不足:在传统的Kubernetes集群部署架构中,如果Agent的Pod在执行任务的过程中故障了,Kubernetes只会重启Pod,但不会自动重试任务;如果工具的API调用失败了(比如网络超时、API限流),Agent也不会自动重试或者调用备用的工具API;这就导致了大量的任务失败,严重影响了用户体验。
1.2.3 解决痛点的核心思路:从“管基础设施”转向“管业务逻辑”

面对传统服务器部署架构(比如Kubernetes集群部署、ECS虚拟机部署)带来的这些痛点,很多开发者和云厂商都在思考:有没有一种架构范式,能够让开发者完全不用管基础设施的管理、调度和维护,只需专注于编写Agent和Agent Harness的业务逻辑代码,而且能够按需执行、事件触发、按调用次数/资源使用量付费,同时还具有极高的可扩展性、灵活性、可靠性和开发运维效率?

答案是肯定的——这就是我们本文要讨论的Serverless架构!而将Serverless架构应用于Agent Harness的部署,更是被很多业内专家认为是“解决智能体落地最后一公里问题的最佳方案之一”。

1.3 问题描述:Serverless架构部署Agent Harness真的“完美无缺”吗?

虽然Serverless架构看起来非常适合部署Agent Harness,但它真的“完美无缺”吗?答案是否定的——任何一种架构范式都有其适用场景和边界条件,也有其优势和劣势。比如,共享办公空间的“按需工位+会议室+打印机+投影仪租赁模式”,非常适合小型创业团队、自由职业者、临时项目团队,但如果是一家有1000名员工的大型企业,需要长期稳定的办公空间,那么共享办公空间的租赁模式就不太适合了,因为成本会比自己租办公室高很多,而且安全性和隐私性也无法得到保障。

同样地,Serverless架构部署Agent Harness也有其适用场景、边界条件、优势和劣势。比如,Serverless架构非常适合部署任务波动大、任务复杂度低、响应时间要求中等、状态管理简单的Agent Harness,但如果是部署任务波动小、任务复杂度极高、响应时间要求极低(比如毫秒级)、状态管理非常复杂、需要长期运行的Agent Harness,那么Serverless架构就不太适合了。

那么,Serverless架构部署Agent Harness的具体优势有哪些?具体劣势有哪些?适用场景是什么?边界条件是什么?如何优化Serverless架构部署Agent Harness的性能? 这些问题就是我们本文要重点解决的核心问题。

1.4 目标读者

本文的目标读者主要包括以下几类人群:

  1. AI应用开发者:正在或者计划开发LLM驱动的智能体应用,需要选择合适的Agent Harness部署架构,提高应用的性能、降低成本、提高开发迭代速度。
  2. DevOps工程师:负责智能体应用的部署、监控、维护和优化,需要了解Serverless架构部署Agent Harness的技术原理、实现方法、最佳实践和常见问题及解决方案。
  3. 云架构师:负责企业的云架构设计和规划,需要评估Serverless架构部署Agent Harness的可行性、优势、劣势和风险,做出符合企业业务需求和技术战略的架构决策。
  4. 产品经理:负责智能体应用的产品规划和设计,需要了解Serverless架构部署Agent Harness的成本、性能、可扩展性和开发运维效率,制定合理的产品 roadmap 和 KPI。
  5. 技术爱好者:对AI应用、智能体、Serverless架构等新兴技术感兴趣,希望建立对这些技术的全面认知,提高自己的技术水平。

1.5 核心问题与挑战

为了让本文的分析更有条理、更有针对性,我们将核心问题分解为以下几个子问题,并在后续的章节中逐一解决:

  1. 子问题1:Agent Harness的核心功能、核心架构、核心要素是什么?(将在第2章“核心概念解析”中解决)
  2. 子问题2:Serverless架构的核心特征、核心组件、核心原理是什么?(将在第2章“核心概念解析”中解决)
  3. 子问题3:Serverless架构部署Agent Harness与传统服务器部署架构(比如Kubernetes集群部署、ECS虚拟机部署)相比,在成本、性能、可扩展性、灵活性、开发运维效率、可靠性、安全性、状态管理等核心属性维度上的优劣势是什么?(将在第2章“核心概念解析”和第5章“优劣势对比与决策框架”中解决)
  4. 子问题4:Serverless架构下Agent Harness的技术原理是什么?包括基于FaaS的事件触发调度、基于BaaS的状态管理与工具集成、函数冷启动优化的数学模型与算法。(将在第3章“技术原理与实现”中解决)
  5. 子问题5:如何用Python语言和主流的Serverless云服务(比如AWS Lambda、DynamoDB、SQS、OpenAI GPT-4o mini)实现一个生产级的Serverless Agent Harness?(将在第4章“实际应用”中解决)
  6. 子问题6:Serverless架构部署Agent Harness的最佳实践有哪些?常见问题及解决方案有哪些?(将在第6章“最佳实践与常见问题及解决方案”中解决)
  7. 子问题7:Serverless架构部署Agent Harness的行业发展历史是什么?未来发展趋势是什么?(将在第7章“行业发展与未来趋势”中解决)
  8. 子问题8:何时选择Serverless架构部署Agent Harness?何时不适合?(将在第5章“优劣势对比与决策框架”中解决)

同时,我们在分析和解决这些子问题的过程中,还会面临以下几个技术挑战

  1. 函数冷启动优化:这是Serverless架构部署Agent Harness面临的最大技术挑战——Agent Harness需要调用大量的工具API,执行大量的推理任务,而函数冷启动会导致任务响应时间延长,严重影响用户体验;如何优化函数冷启动,将冷启动时间从几秒甚至几十秒降低到几百毫秒甚至几十毫秒,是我们需要重点解决的技术挑战。
  2. 状态管理:Agent Harness需要处理大量的状态信息——比如用户的聊天记录、订单的处理进度、Agent的任务状态、工具的调用结果;而Serverless架构下的函数是无状态的,如何在无状态的函数之间高效、可靠、一致地管理状态,是我们需要重点解决的另一个技术挑战。
  3. 细粒度的调度和资源分配:Agent Harness需要处理不同类型、不同优先级、不同复杂度的Agent任务——比如预分类Agent的任务复杂度低、响应时间要求高、优先级高;投诉升级Agent的任务复杂度高、响应时间要求相对较低、优先级中等;如何在Serverless架构下实现细粒度的调度和资源分配,为不同类型、不同优先级、不同复杂度的Agent任务预留和分配合适的资源,是我们需要重点解决的第三个技术挑战。
  4. 错误处理和容错性:Agent Harness需要处理各种可能的错误——比如函数故障、工具API调用失败、网络超时、API限流、LLM推理失败;如何在Serverless架构下实现完善的错误处理和容错性机制,自动重试失败的任务、调用备用的工具API、降级处理无法完成的任务、记录错误日志、发送告警通知,是我们需要重点解决的第四个技术挑战。
  5. 成本优化:虽然Serverless架构是按调用次数/资源使用量付费的,但如果Agent Harness的设计不合理,也会导致成本过高——比如频繁的函数冷启动会增加资源使用量,过多的工具API调用会增加API调用费用,不合理的状态管理会增加存储费用;如何优化Serverless Agent Harness的成本,在保证性能和可靠性的前提下,将成本降到最低,是我们需要重点解决的第五个技术挑战。

2. 核心概念解析

在第1章中,我们已经初步用一句话+一个极简比喻锚定了Agent、Agent Harness、Serverless架构这3个核心概念,但要深入分析Serverless架构部署Agent Harness的优劣势,我们还需要对这些核心概念进行更深入、更系统、更全面的解析,包括核心功能、核心架构、核心要素、概念间的关系和相互作用、核心属性维度对比、ER实体关系图、交互关系图等。

2.1 核心概念深入解析

2.1.1 智能体(Agent):从理论到实践
(1)智能体的理论定义

智能体(Agent)的概念最早可以追溯到20世纪50年代的人工智能领域,当时的研究者们提出了“图灵测试”“通用问题求解器(GPS)”等概念,试图构建能够像人类一样思考和行动的自主软件实体。但直到20世纪90年代,随着分布式人工智能(DAI)、多智能体系统(MAS)等领域的发展,智能体的概念才得到了明确的定义和广泛的应用。

根据全球知名人工智能学者、斯坦福大学教授Stuart RussellPeter Norvig在其经典著作《人工智能:一种现代方法(Artificial Intelligence: A Modern Approach)》中的定义,智能体是一个能够通过传感器感知环境,通过执行器作用于环境的自主软件实体。这个定义非常简洁明了,涵盖了智能体的两个核心特征:感知环境作用于环境

为了让这个定义更具体、更可操作,Russell和Norvig还提出了智能体的PEAS描述模型,即从Performance Measure(性能指标)、Environment(环境)、Actuators(执行器)、Sensors(传感器) 4个维度来描述一个智能体:

  • Performance Measure(性能指标):用来衡量智能体行为的好坏的标准——比如对于外卖骑手Agent来说,性能指标可能包括准时率、用户满意度、订单完成率、每小时配送订单数、配送成本等;对于电商售后预分类Agent来说,性能指标可能包括分类准确率、分类响应时间、分类错误率等。
  • Environment(环境):智能体所处的外部世界,包括智能体可以感知的部分和可以作用的部分——比如对于外卖骑手Agent来说,环境可能包括天气、路况、商家、用户、订单系统、导航系统等;对于电商售后预分类Agent来说,环境可能包括用户的咨询文本、订单系统、知识库等。
  • Actuators(执行器):智能体用来作用于环境的工具或接口——比如对于外卖骑手Agent来说,执行器可能包括取餐动作、送餐动作、拍照上传动作、点击完成动作、打电话动作、发短信动作等;对于电商售后预分类Agent来说,执行器可能包括将咨询分配给对应的专业Agent的接口、存储分类结果的接口、反馈给用户的接口等。
  • Sensors(传感器):智能体用来感知环境的工具或接口——比如对于外卖骑手Agent来说,传感器可能包括手机摄像头、手机GPS、手机麦克风、订单系统的通知接口、导航系统的接口、天气系统的接口等;对于电商售后预分类Agent来说,传感器可能包括用户的咨询文本输入接口、订单系统的查询接口、知识库的查询接口等。
(2)大语言模型(LLM)驱动的智能体的核心架构

虽然智能体的概念已经存在了几十年,但在大语言模型(LLM)出现之前,大部分智能体都是专用智能体——即只能完成特定的、狭窄的任务(比如下棋、扫地、客服机器人),而且需要人工编写大量的规则和逻辑,开发成本极高,灵活性极低。

而大语言模型(LLM)的出现,彻底改变了这一现状——LLM具有强大的理解能力、推理能力、生成能力、多模态能力,可以作为智能体的“核心大脑”,让智能体从“专用”转向“通用”,从“需要人工编写大量规则”转向“可以通过自然语言指令学习和执行任务”。

目前,业界主流的大语言模型(LLM)驱动的智能体的核心架构主要包括以下几个部分(我们可以用“外卖骑手的大脑+身体”来类比这个架构):

  1. 核心大脑(LLM Core):类比外卖骑手的大脑——负责理解用户的需求、感知环境的信息、制定决策、规划动作、执行推理、反思改进;这是LLM驱动的智能体的最核心部分,也是区别于传统专用智能体的最关键部分。
  2. 感知模块(Perception Module):类比外卖骑手的眼睛、耳朵、鼻子、皮肤等感官——负责从环境中获取信息,包括文本信息、图像信息、音频信息、视频信息、结构化数据信息等,并将这些信息转化为LLM可以理解的格式(比如文本)。
  3. 记忆模块(Memory Module):类比外卖骑手的短期记忆、长期记忆、情景记忆——负责存储智能体的历史信息,包括用户的聊天记录、任务的执行记录、工具的调用记录、环境的变化记录等,并根据需要将这些信息提供给LLM核心,帮助LLM核心更好地理解当前的情况、制定更好的决策。记忆模块通常可以分为以下几个子模块:
    • 短期记忆(Short-Term Memory, STM):类比外卖骑手的工作记忆——负责存储智能体当前正在处理的任务的相关信息,容量有限(通常只能存储几KB到几十KB的信息),保存时间很短(通常只能保存几分钟到几小时);比如外卖骑手当前正在处理的3个订单的信息,就存储在短期记忆中。
    • 长期记忆(Long-Term Memory, LTM):类比外卖骑手的长期记忆——负责存储智能体的所有历史信息,容量无限(理论上),保存时间很长(通常可以保存几个月到几年甚至永久);比如外卖骑手记住的常送的商圈高峰时段、哪些商家出餐快/慢、积累的与不同用户沟通的技巧,就存储在长期记忆中。长期记忆通常可以进一步分为语义记忆(Semantic Memory)(存储事实性信息,比如“北京的首都是天安门?不,北京的首都是中国的首都,北京的市中心是天安门广场”)和程序记忆(Procedural Memory)(存储程序性信息,比如“如何取餐、如何送餐、如何与用户沟通”)。
    • 情景记忆(Episodic Memory):类比外卖骑手的情景记忆——负责存储智能体的特定事件的相关信息,包括时间、地点、人物、事件的经过、事件的结果等;比如外卖骑手记住的“2024年6月18日12点30分,在北京市朝阳区国贸商圈,取了麦当劳的一个订单,用户住在国贸三期B座,因为电梯坏了,爬了20层楼,准时送达,用户给了5星好评”,就存储在情景记忆中。
  4. 规划模块(Planning Module):类比外卖骑手的路线规划能力——负责根据用户的需求、环境的信息、记忆模块的信息,制定一个详细的、可执行的动作序列,来完成用户的任务;规划模块通常可以分为以下几个子模块:
    • 链式思维(Chain-of-Thought, CoT):类比外卖骑手一步步思考如何完成任务的过程——比如外卖骑手接到一个订单后,会一步步思考:“首先,我要查看商家的位置和出餐时间;然后,我要查看用户的位置和要求的送达时间;接着,我要规划一条最优的路线;然后,我要去商家取餐;接着,我要按照路线送餐;然后,我要提前5分钟联系用户;接着,我要送达订单;最后,我要点击完成,拍照上传。”
    • 树状搜索(Tree Search):类比外卖骑手在规划路线时,考虑多条可能的路线,然后选择最优的那条的过程——比如外卖骑手在规划从麦当劳到国贸三期B座的路线时,会考虑走建国路、走长安街、走三环辅路等多条可能的路线,然后根据路况、时间、距离等因素,选择最优的那条路线。
    • 反思机制(Reflection Mechanism):类比外卖骑手在完成任务后,反思自己的行为是否得当,有没有可以改进的地方的过程——比如外卖骑手在完成国贸三期B座的订单后,会反思:“因为电梯坏了,爬了20层楼,差点超时;下次如果再遇到电梯坏的情况,我应该提前10分钟联系用户,告诉用户情况,争取用户的理解,或者请求用户下楼取餐。”
  5. 工具调用模块(Tool Calling Module):类比外卖骑手的手、脚、手机等工具——负责调用外部的工具或接口,来完成LLM核心无法直接完成的任务;比如LLM核心无法直接查询天气、无法直接查询路况、无法直接查询订单状态、无法直接取餐送餐,所以需要调用天气API、导航API、订单系统API、外卖平台的取餐送餐接口等外部工具或接口。工具调用模块通常可以分为以下几个子模块:
    • 工具注册(Tool Registration):负责将外部的工具或接口注册到智能体中,包括工具的名称、描述、参数、返回值、调用方式等信息。
    • 工具选择(Tool Selection):负责根据用户的需求、环境的信息、记忆模块的信息,选择合适的工具或接口来调用。
    • 工具执行(Tool Execution):负责调用选择好的工具或接口,获取返回值,并将返回值提供给LLM核心。
  6. 执行模块(Execution Module):类比外卖骑手的手、脚、嘴巴等执行器官——负责根据LLM核心制定的动作序列,执行具体的动作,并将执行结果反馈给LLM核心和记忆模块。
  7. 评估模块(Evaluation Module):类比外卖骑手的自我评估能力和外卖平台的评估系统——负责根据性能指标(PEAS描述模型中的Performance Measure),评估智能体的行为的好坏,并将评估结果反馈给LLM核心和记忆模块,帮助LLM核心反思改进。

为了让读者更直观地理解这个架构,我们可以用一个Mermaid架构图来表示:

输入需求/指令

提供信息

转化为LLM可理解的格式

提供历史信息

制定动作序列

需要调用工具

调用外部工具

返回结果

提供工具调用结果

执行动作

作用于环境

反馈执行结果

存储执行记录

存储工具调用记录

存储聊天记录/推理记录

根据性能指标评估

存储评估结果

生成响应/结果

用户/外部系统

感知模块

环境

LLM核心

记忆模块

规划模块

工具调用模块

外部工具/API

执行模块

评估模块

(3)大语言模型(LLM)驱动的智能体的分类

根据不同的分类标准,大语言模型(LLM)驱动的智能体可以分为不同的类型:

  1. 根据自主程度分类
    • 完全自主智能体(Fully Autonomous Agent):不需要任何人工干预,就可以自主感知环境、制定决策、执行动作、学习改进,完成用户的任务——比如自动驾驶汽车Agent(当然,目前的自动驾驶汽车还不是完全自主的,需要人工监控和干预)。
    • 半自主智能体(Semi-Autonomous Agent):需要一定的人工干预,才能完成用户的任务——比如电商售后智能客服Agent(遇到复杂的投诉时,需要升级到人工客服)。
    • 辅助智能体(Assistant Agent):主要用于辅助人类完成任务,人类是决策的主体——比如ChatGPT、Claude、Gemini等通用AI助手。
  2. 根据任务类型分类
    • 通用智能体(General-Purpose Agent):可以完成多种不同类型的任务——比如AutoGPT、BabyAGI、LangChain Agent等。
    • 专用智能体(Special-Purpose Agent):只能完成特定的、狭窄的任务——比如电商售后智能客服Agent、金融风控预警Agent、医疗辅助诊断Agent、DevOps CI/CD自动调优Agent等。
  3. 根据智能体的数量分类
    • 单智能体系统(Single-Agent System):只有一个智能体的系统——比如个人使用的ChatGPT助手。
    • 多智能体系统(Multi-Agent System, MAS):有多个智能体的系统,这些智能体之间可以相互协作、相互竞争、相互通信,共同完成用户的任务——比如电商售后智能客服Agent集群(预分类Agent、退款Agent、换货Agent、物流查询Agent、投诉升级Agent之间可以相互协作)、自动驾驶汽车车队Agent系统(自动驾驶汽车之间可以相互通信,避免碰撞,提高通行效率)。
2.1.2 Agent Harness(智能体马具/控制框架):智能体的“管理大脑+协调中枢+安全约束器”
(1)Agent Harness的定义

在第1章中,我们已经初步用一句话+一个极简比喻锚定了Agent Harness的概念——负责Agent的创建、调度、监控、状态管理、工具集成、错误处理、资源分配和生命周期终止的“管理大脑+协调中枢+安全约束器”;极简比喻——整个外卖平台的“骑手调度中心+订单管理系统+安全合规系统+骑手成长系统的集合体”

但为了让这个定义更专业、更可操作,我们可以从技术架构的角度对Agent Harness进行更深入的定义:Agent Harness是一个位于Agent和底层基础设施(比如云服务器、容器、Serverless函数)之间的中间件层,它屏蔽了底层基础设施的复杂性,为Agent提供了统一的、标准化的接口和服务,让开发者可以专注于编写Agent的业务逻辑代码,而不用管底层基础设施的管理、调度和维护

(2)Agent Harness的核心功能

根据业界主流的Agent Harness(比如LangChain Agent Runtime、AutoGPT Forge、Microsoft AutoGen Studio、OpenAI Assistants API、AWS Bedrock Agents)的功能,我们可以将Agent Harness的核心功能总结为以下几个部分:

  1. Agent生命周期管理(Agent Lifecycle Management):类比外卖平台的“骑手招聘、培训、上岗、调度、休息、离职管理”——负责Agent的创建、初始化、部署、启动、暂停、恢复、终止和销毁;比如当有新的售后咨询时,Agent Harness会创建一个新的预分类Agent实例,初始化它的记忆模块和工具调用模块,部署它到合适的底层基础设施上,启动它处理咨询;当咨询处理完成后,Agent Harness会暂停或者终止这个预分类Agent实例,释放占用的资源。
  2. 任务调度与资源分配(Task Scheduling and Resource Allocation):类比外卖平台的“订单分配、路线规划、骑手调度、资源预留”——负责接收用户的任务,根据任务的类型、优先级、复杂度、Agent的类型、Agent的状态、Agent的性能、底层基础设施的资源情况,将任务分配给合适的Agent实例,并为Agent实例预留和分配合适的资源;比如当有一个高优先级的退款咨询时,Agent Harness会将它分配给一个空闲的、性能最好的退款Agent实例,并为这个退款Agent实例预留更多的CPU和内存资源,确保它能够快速、高效地处理咨询。
  3. 状态管理(State Management):类比外卖平台的“订单状态管理、骑手状态管理、用户状态管理”——负责存储和管理Agent的状态信息,包括用户的聊天记录、任务的执行进度、Agent的任务状态、工具的调用结果、LLM的推理记录、环境的变化记录等;状态管理需要满足一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance) 这三个CAP定理的要求(当然,根据CAP定理,我们无法同时满足这三个要求,需要根据业务需求进行权衡)。
  4. 工具集成与管理(Tool Integration and Management):类比外卖平台的“导航工具管理、天气工具管理、订单系统工具管理、支付工具管理”——负责将外部的工具或接口(比如API调用、代码执行、文件读写、数据库查询、LLM调用)注册到Agent Harness中,为Agent提供统一的、标准化的工具调用接口,并负责工具的调用、监控、错误处理、限流、降级和重试;比如Agent Harness可以将OpenAI GPT-4o mini API、快递公司的物流查询API、电商平台的订单查询API、MySQL数据库的查询API等外部工具或接口注册到一起,为Agent提供一个统一的工具调用接口,当Agent需要调用某个工具时,只需要调用这个统一的接口即可,不用管每个工具的具体调用方式。
  5. 监控与可观测性(Monitoring and Observability):类比外卖平台的“骑手位置监控、订单进度监控、骑手性能监控、系统状态监控”——负责监控Agent的状态、任务的执行进度、工具的调用情况、LLM的推理情况、底层基础设施的资源情况,收集日志、指标和链路追踪数据,并提供可视化的监控界面,让开发者和运维人员可以实时了解系统的运行状态,及时发现和解决问题;比如Agent Harness可以提供一个Grafana监控界面,显示预分类Agent的分类准确率、分类响应时间、分类错误率、退款Agent的退款处理时间、退款成功率、底层基础设施的CPU利用率、内存利用率等指标。
  6. 错误处理与容错性(Error Handling and Fault Tolerance):类比外卖平台的“骑手故障处理、订单超时处理、工具故障处理、系统故障处理”——负责处理各种可能的错误,包括Agent故障、任务失败、工具API调用失败、网络超时、API限流、LLM推理失败、底层基础设施故障等;错误处理与容错性机制通常包括自动重试(Automatic Retry)、备用工具调用(Fallback Tool Calling)、降级处理(Degradation)、任务回滚(Task Rollback)、数据备份(Data Backup)、告警通知(Alert Notification) 等。
  7. 安全与合规(Security and Compliance):类比外卖平台的“骑手身份认证、用户隐私保护、订单数据加密、安全合规检查”——负责Agent的身份认证、用户的身份认证、数据的加密传输和存储、工具调用的权限控制、LLM调用的内容过滤、安全合规检查(比如GDPR、CCPA、等保2.0)等;比如Agent Harness可以对用户的身份进行OAuth2.0认证,对用户的聊天记录和订单数据进行AES-256加密传输和存储,对工具调用的权限进行RBAC(基于角色的访问控制)控制,对LLM调用的内容进行有害内容过滤,确保系统符合GDPR、CCPA、等保2.0等安全合规要求。
  8. Agent性能优化与学习(Agent Performance Optimization and Learning):类比外卖平台的“骑手成长系统、路线优化系统、订单分配优化系统”——负责根据Agent的性能指标(比如分类准确率、分类响应时间、退款成功率、退款处理时间),优化Agent的任务调度、资源分配、工具选择、LLM提示词等,并支持Agent的在线学习和离线学习,不断提高Agent的性能;比如Agent Harness可以根据预分类Agent的历史分类错误记录,优化LLM的提示词,提高预分类Agent的分类准确率;可以根据退款Agent的历史退款处理时间记录,优化任务调度算法,将简单的退款任务分配给性能一般的退款Agent实例,将复杂的退款任务分配给性能最好的退款Agent实例。
(3)Agent Harness的核心架构

根据业界主流的Agent Harness的架构,我们可以将Agent Harness的核心架构总结为以下几个层次(我们可以用“TCP/IP协议栈”来类比这个架构,每一层都为上一层提供服务,每一层都屏蔽了下一层的复杂性):

  1. 基础设施层(Infrastructure Layer):类比TCP/IP协议栈的“物理层和数据链路层”——负责提供底层的计算、存储、网络等基础设施,比如云服务器(ECS)、容器(Kubernetes、Docker)、Serverless函数(AWS Lambda、Azure Functions、Google Cloud Functions、阿里云函数计算)、数据库(MySQL、PostgreSQL、MongoDB、DynamoDB)、缓存(Redis、Memcached)、消息队列(Kafka、RabbitMQ、SQS、EventBridge)等;基础设施层可以是传统的服务器部署架构,也可以是容器部署架构,还可以是Serverless部署架构——这也是我们本文要重点讨论的内容。
  2. 中间件服务层(Middleware Service Layer):类比TCP/IP协议栈的“网络层和传输层”——负责为Agent Harness的核心服务层提供统一的、标准化的中间件服务,比如状态管理服务、工具集成服务、消息队列服务、缓存服务、监控服务、日志服务、链路追踪服务、安全服务等;中间件服务层可以是云厂商提供的BaaS(Backend as a Service)服务(比如AWS DynamoDB、AWS SQS、AWS CloudWatch、AWS X-Ray、AWS IAM),也可以是开源的中间件服务(比如MongoDB、Redis、Kafka、Prometheus、Grafana、ELK、Jaeger、Keycloak)。
  3. 核心服务层(Core Service Layer):类比TCP/IP协议栈的“会话层和表示层”——这是Agent Harness的最核心部分,负责实现Agent Harness的核心功能,比如Agent生命周期管理服务、任务调度与资源分配服务、状态管理服务、工具集成与管理服务、监控与可观测性服务、错误处理与容错性服务、安全与合规服务、Agent性能优化与学习服务等;核心服务层可以是单体架构,也可以是微服务架构,还可以是Serverless架构。
  4. Agent Runtime层(Agent Runtime Layer):类比TCP/IP协议栈的“应用层”——负责运行Agent的业务逻辑代码,为Agent提供统一的、标准化的接口和服务,比如感知接口、记忆接口、规划接口、工具调用接口、执行接口、评估接口等;Agent Runtime层可以是容器化的Runtime,也可以是Serverless化的Runtime。
  5. API网关层(API Gateway Layer):类比TCP/IP协议栈的“应用层的入口”——负责接收用户的请求,进行身份认证、权限控制、限流、降级、路由等操作,然后将请求转发给Agent Harness的核心服务层;API网关层可以是云厂商提供的API网关服务(比如AWS API Gateway、Azure API Management、Google Cloud API Gateway、阿里云API网关),也可以是开源的API网关服务(比如Kong、APISIX、Traefik)。
  6. 用户界面层(User Interface Layer):类比TCP/IP协议栈的“应用层的出口”——负责为用户提供可视化的界面,让用户可以与Agent进行交互,比如Web界面、Mobile界面、Chatbot界面等;用户界面层可以是React、Vue、Angular等前端框架开发的,也可以是低代码/无代码平台开发的。

为了让读者更直观地理解这个架构,我们可以用一个Mermaid架构图来表示:

渲染错误: Mermaid 渲染失败: Parse error on line 25: ...time层 Agent ---------------------^ Expecting 'SEMI', 'NEWLINE', 'SPACE', 'EOF', 'subgraph', 'end', 'acc_title', 'acc_descr', 'acc_descr_multiline_value', 'AMP', 'COLON', 'STYLE', 'LINKSTYLE', 'CLASSDEF', 'CLASS', 'CLICK', 'DOWN', 'DEFAULT', 'NUM', 'COMMA', 'NODE_STRING', 'BRKT', 'MINUS', 'MULT', 'UNICODE_TEXT', 'direction_tb', 'direction_bt', 'direction_rl', 'direction_lr', 'direction_td', got '1'
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐