





AI Agent区别于普通聊天机器人的关键,在于它能围绕目标自主规划、调用工具、根据观察修正行动,而不是一问一答。本文面向上海开发者,讲解ReAct推理框架、工具调用机制与记忆设计三件套,帮助理解多轮对话Agent的底层架构与工程落地要点。
一个完整的Agent通常包含四个部件:大脑(大模型)、规划模块、工具集、记忆。用户给出目标后,Agent不是一次生成答案,而是循环执行「思考—行动—观察—再思考」直到目标达成。上海业务中典型场景包括自动查单、填写报表、调用内部API完成审批流转,每一步都可审计、可干预。
单轮问答输入即输出;多轮Agent要维护跨轮次状态、记住用户偏好与已执行动作、处理工具返回的异常。架构上必须引入上下文管理与状态机,否则对话几轮后就会遗忘前提或重复调用。多轮系统还要处理打断、澄清、中断恢复等交互细节。
复杂目标先由规划模块拆成子任务清单,再逐个执行。子任务之间有依赖时按拓扑顺序跑,可并行的并行。规划结果对用户可见、可修改,避免Agent闷头执行半小时才发现方向错了。
ReAct(Reasoning加Acting)让模型交替输出思考与行动。每轮结构为:Thought分析当前状态与下一步计划,Action选择一个工具并填入参数,Observation记录工具返回结果。上海技术团队可在prompt中用固定模板约束该格式,使输出可被程序稳定解析,循环直到模型给出最终答案。
Function Calling是模型原生支持的工具调用格式,相当于把ReAct的行动阶段结构化。相比自由文本解析,Function Calling直接返回JSON参数,省去正则提取,工程稳定性更高。ReAct是思想,Function Calling是落地接口,二者常结合使用:先用ReAct规划,再用Function Calling精确调用。
复杂任务可拆成多个专职Agent:一个做检索、一个做计算、一个做审核,由主管Agent调度。但多Agent会放大成本与延迟,上海团队应在单Agent确实搞不定时再上多Agent,不要为了炫技而拆。

工具以JSON Schema描述名称、用途、参数与返回说明。描述越清晰,模型选对工具、填对参数的概率越高。建议每个工具附带1~2个调用示例,参数枚举值写全。对上海企业内部API,还要在描述中说明鉴权方式、限流约束与错误码含义,让模型在失败时知道如何自救。
工具返回错误时,不能直接崩溃,而要把错误信息作为Observation喂回模型,让它自我修正参数。例如查询订单返回「订单号格式错误」,模型应自动重试或向用户追问。这一环决定了Agent在上海生产环境的容错能力,是演示Demo与可用产品的分水岭。
ReAct循环如果不加限制,模型可能陷入反复思考不收敛的死循环。要设置最大步数(如5步)、每步超时、连续两次相同动作即中断。实践中还要对思考链做截断,只保留最近几轮Thought与Observation,否则上下文会被思考过程占满,真正的业务信息反而被挤出窗口。对上海生产Agent,这些护栏决定它是稳定工具还是定时炸弹。
短期记忆指当前对话窗口内的历史消息。受上下文窗口限制,需要做滑动窗口截断与摘要压缩:早期对话压缩成几条要点,保留最近几轮原文,避免窗口爆炸。工程上可把系统提示、工具定义、记忆摘要、最近消息分层拼接,控制总token。
跨会话记忆用向量库存放用户画像、历史偏好、常用业务规则。新对话开始时,先检索相关记忆注入prompt。上海企业场景中,长期记忆可沉淀客户行业、常用报表口径、历史工单结论,让Agent越用越贴合业务,而不是每次从零开始。
把工具错误分为可重试(网络抖动、限流)、不可重试(参数错误、权限不足)、需人工介入(余额不足、风控拦截)三类。前两类自动重试或换参数,第三类立刻停下通知用户,不要盲目重试把问题放大。
复杂任务应显式建模状态机:待澄清、工具执行中、等待用户确认、已完成。每步状态落库,支持断点续跑与人工接管。同时要控制注入prompt的token总量,把系统指令、工具定义、记忆、历史分层管理,避免无关内容挤占窗口。
上线前按清单检查:工具白名单与权限隔离、调用超时与重试上限、敏感操作二次确认、全链路日志可追溯、成本与token预算监控。对上海生产Agent,安全护栏和审计日志与功能本身同等重要,缺一不可。
上线后重点观测三件事:任务完成率(Agent是否真把事办完)、人工接管率(多少步需要人介入)、单会话成本。完成率低说明工具或prompt有问题,接管率高说明容错不够,成本高说明要加缓存与裁剪。上海团队用这三个指标持续迭代,把Agent从能用到好用。
每个工具只授予完成任务所需的最小权限,写操作必须经过用户确认。敏感工具(退款、删数据、发消息)单独走人工审批。Agent拿到的工具列表按角色裁剪,客服账号不能调财务接口,从源头限制误操作半径。
外部文档、邮件、网页内容里可能藏有恶意指令,诱导Agent执行非预期动作。要把外部内容标注为不可信数据,与系统指令隔离;工具调用前做二次确认。上海企业对接公网数据时,这一层防护不可省略。
统计每轮对话的token消耗、工具调用次数、失败重试率。为每个会话设上限,超出则降级或人工接管。异常循环调用(同一个工具刷十几次)要自动熔断,避免一次故障烧光一个月的API费用。
ReAct提供推理骨架,工具调用提供手脚,记忆机制提供连续性,三者共同构成AI Agent的多轮对话架构。上海开发者可从单一工具的闭环场景切入,逐步扩展工具集与记忆能力。