面向业务落地的大模型Agent架构设计与工程实践指南
·
1. 概述
大模型Agent凭借感知、规划、工具调用、记忆执行的能力,解决传统大模型只能做单次问答的局限,可自主拆解复杂业务目标,调用外部工具完成完整业务流程。本文聚焦业务场景下Agent落地,阐述核心架构模块,提供可运行简易代码示例,规避原型可用、生产不可用的常见问题,帮助开发者快速搭建最小可用Agent原型。
2. Agent核心架构
业务型Agent分为四大核心模块:
- 记忆模块:分为短期上下文记忆与长期持久记忆,保存对话历史、中间推理结果、业务实体数据,防止上下文溢出。
- 规划模块:接收用户目标,进行任务拆解、子任务排序,处理任务失败回退与重试逻辑,是Agent的大脑。
- 工具调度模块:管理工具注册、参数校验、接口调用,负责把大模型输出转换成可执行函数,过滤非法调用参数。
- 执行与输出模块:汇总子任务结果,整合生成面向用户的最终业务应答。
整体流转流程:用户输入 → 记忆加载 → 任务规划 → 工具选择调用 → 结果回写记忆 → 结果聚合输出。
3. 环境依赖
# 依赖安装
# pip install openai python-dotenv
from openai import OpenAI
import json
from typing import Dict, List
4. 简易业务Agent代码实现
client = OpenAI(base_url="your_model_endpoint", api_key="your_api_key")
class BusinessAgent:
def __init__(self):
self.short_memory: List[Dict] = []
# 注册可用业务工具
self.tools = {
"query_order": self.query_order_info,
"calculate_discount": self.calc_discount
}
def query_order_info(self, order_id: str) -> str:
"""模拟查询订单业务工具"""
return f"订单[{order_id}]:已发货,预计2个工作日送达"
def calc_discount(self, total_amount: float) -> str:
"""模拟计算优惠工具"""
discount = total_amount * 0.9 if total_amount > 100 else total_amount
return f"原价{total_amount},优惠后金额{discount:.2f}"
def call_llm_plan(self, user_query: str) -> dict:
prompt = f"""
你是业务Agent规划器,根据用户需求判断需要调用哪个工具,返回JSON格式。
可用工具:
query_order(order_id): 查询订单信息
calculate_discount(total_amount): 计算订单优惠
无工具则返回{{"tool":null,"params":{{}}}}
用户问题:{user_query}
历史上下文:{json.dumps(self.short_memory, ensure_ascii=False)}
只输出JSON,不要额外内容。
"""
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role":"user","content":prompt}],
temperature=0
)
return json.loads(resp.choices[0].message.content.strip())
def run(self, user_input: str) -> str:
self.short_memory.append({"role":"user","content":user_input})
plan_result = self.call_llm_plan(user_input)
tool_name = plan_result.get("tool")
params = plan_result.get("params", {})
if tool_name and tool_name in self.tools:
tool_out = self.tools[tool_name](**params)
self.short_memory.append({"role":"tool","content":tool_out})
final_prompt = f"结合工具输出{tool_out},简洁回答用户:{user_input}"
final_resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role":"user","content":final_prompt}],
temperature=0
)
answer = final_resp.choices[0].message.content.strip()
else:
answer = "无需调用工具,大模型直接应答:" + user_input
self.short_memory.append({"role":"assistant","content":answer})
return answer
# Agent调用示例
if __name__ == "__main__":
agent = BusinessAgent()
res = agent.run("帮我查询订单OD2026001")
print(res)
5. 业务落地关键注意事项
- 工具参数校验:生产环境必须增加参数类型、范围校验,防止大模型输出异常参数引发接口报错。示例代码仅为原型,缺少完整异常捕获。
- 记忆裁剪策略:短期记忆不能无限累加,超过token阈值后做摘要压缩,避免上下文超限。
- 规划容错:大模型会输出错误工具名、错误参数,增加重试次数上限,防止死循环调用工具。
- 权限隔离:业务Agent对接内部接口时,增加权限控制,禁止Agent随意执行高危写操作,优先使用只读工具。
6. 总结
本文实现了具备记忆、规划、工具调用能力的最小业务Agent原型。生产环境中还需要扩展长期向量记忆库、多步复杂任务规划、日志埋点、调用鉴权等模块。Agent落地不在于模型能力有多强,而在于约束、容错、安全机制的完善,才能把Demo能力转化为稳定可用的业务系统。
最后说一句,技术成长不只是写代码,职业规划和自我包装同样重要。我整理了一份简历、面试和职业规划的学习资料,适合想在职场上走得更远的朋友看看。
资料展示
下面是我整理的AI大模型学习资料和工具包预览,适合收藏后按主题逐步学习。



如果你想看完整资料目录,可以在评论区留言「资料」;也欢迎告诉我你更关注AI大模型里的哪类内容。

更多推荐


所有评论(0)