【Azure 架构师学习笔记 】- Azure AI(18)-搭建基于Azure的入门级Agent
本文属于【Azure 架构师学习笔记】系列。
本文属于【Azure AI】系列。
接上文 【Azure 架构师学习笔记 】- Azure AI(17)-入门铺垫—基于Azure的Agent核心认知与环境准备
前言
上一篇我们完成了Azure国际版环境准备和Agent核心认知,明确了Agent的四大模块、三层生态,以及Azure国际版对Agent的核心支撑,同时确认了已有的GPT-4模型可作为Agent的核心决策驱动。
这一篇将进入实操核心:搭建第一个可运行的极简Agent。作为入门,我们不追求复杂功能,先实现“指令解析→任务执行→结果反馈”的闭环,核心依托Azure OpenAI的GPT-4模型实现任务规划,复用你之前掌握的Python代码和Azure配置逻辑,降低学习成本。
二、极简Agent的核心模块拆解
我们将搭建的第一个极简Agent,核心包含3个模块(对应代码的3个核心函数),这也是所有Agent的基础框架:
配置模块:加载Azure OpenAI的配置(Endpoint、API Key 、Deployment Name),确保能正常调用GPT-4模型,复用上一篇的配置逻辑,无需重复编写;
指令解析与任务规划模块:接收用户指令(如“总结一段文本”),通过Azure GPT-4模型解析指令、规划执行步骤(版暂不拆解复杂步骤,重点实现“指令→执行”的直接映射);
工具执行模块:根据规划的步骤,调用对应的工具(本篇先实现“文本总结”工具,后续逐步扩展文件处理、导出等工具),工具的核心逻辑复用Azure OpenAI的调用能力。
补充说明:此版Agent暂不加入复杂的多轮记忆和批量处理,重点验证“Azure GPT-4模型调用→任务执行”的流程,确保核心功能可运行,后续逐步迭代完善。
三、实操:编写极简Agent完整代码
建议保存为agent_basic.py
fromopenaiimportAzureOpenAIimportjsonimportos# ===================== 1. Azure OpenAI配置模块(复用+适配Agent) =====================# 配置文件路径(和上一篇一致,保存Azure信息,避免每次输入)CONFIG_FILE="azure_config.json"defload_azure_config():"""加载Azure OpenAI配置,新增配置校验"""ifos.path.exists(CONFIG_FILE):withopen(CONFIG_FILE,"r",encoding="utf-8")asf:config=json.load(f)# 验证配置是否完整(Azure必备3个参数,适配GPT-4调用)required_keys=["azure_endpoint","api_key","deployment_name"]ifall(keyinconfigforkeyinrequired_keys):returnconfigelse:raiseValueError("Azure配置不完整,需包含azure_endpoint、api_key、deployment_name")else:# 若没有配置文件,引导用户填写(首次运行,和上一篇操作一致)config={"azure_endpoint":input("请输入AzureEndpoint:"),"api_key":input("请输入Azure OpenAI API Key:"),"deployment_name":input("请输入Azure OpenAI部署名称(需为GPT-4):")}withopen(CONFIG_FILE,"w",encoding="utf-8")asf:json.dump(config,f,ensure_ascii=False,indent=4)returnconfig# 初始化Azure OpenAI客户端(指定稳定API版本)config=load_azure_config()client=AzureOpenAI(azure_endpoint=config["azure_endpoint"],api_key=config["api_key"],api_version="2025-01-01-preview"#)# ===================== 2. 工具模块(极简版:文本总结工具,GPT-4驱动) =====================deftext_summary_tool(text:str)->str:"""文本总结工具(Agent可调用的第一个工具),复用Azure OpenAI调用逻辑,适配GPT-4"""try:response=client.chat.completions.create(model=config["deployment_name"],# 关联你部署的GPT-4模型messages=[{"role":"system","content":"你是专业的文本总结助手,总结需简洁、准确,控制在100字内,无冗余内容,贴合职场场景。"},{"role":"user","content":f"请总结以下文本:\n{text}"}],temperature=0.2# 降低随机性,确保总结结果稳定)returnresponse.choices[0].message.content.strip()exceptExceptionase:returnf"文本总结失败(GPT-4调用异常):{str(e)}"# ===================== 3. Agent核心模块(指令解析+任务规划+工具调用) =====================classSimpleAzureAgent:def__init__(self):# 初始化Agent,加载工具(后续可添加更多工具,如文件处理)self.tools={"文本总结":text_summary_tool# 工具名称→工具函数的映射,方便Agent快速调用}defparse_instruction(self,instruction:str)->dict:"""解析用户指令,判断需要调用的工具(极简版:直接匹配工具名称,降低复杂度)"""# 这里用简单的关键词匹配,后续将升级为GPT-4智能解析,适配复杂指令fortool_nameinself.tools.keys():iftool_nameininstruction:return{"tool_name":tool_name,"content":instruction.replace(tool_name,"").strip(),# 提取需要处理的文本内容"status":"success"}# 若未匹配到工具,返回明确提示,引导用户输入正确指令return{"status":"fail","message":"未识别到可处理的任务,请输入包含「文本总结」的指令(如:文本总结 今天的会议内容是...)"}defrun(self,instruction:str)->str:"""Agent运行入口:串联「解析指令→调用工具→返回结果」全流程"""print(f"Agent接收指令:{instruction}")# 1. 解析用户指令,判断需要调用的工具parse_result=self.parse_instruction(instruction)ifparse_result["status"]=="fail":returnparse_result["message"]# 2. 调用对应的工具,执行具体任务tool_name=parse_result["tool_name"]content=parse_result["content"]ifnotcontent:returnf"请输入需要{tool_name}的内容(如:{tool_name}具体文本)"tool_func=self.tools[tool_name]result=tool_func(content)# 3. 返回处理结果,格式清晰,方便用户查看returnf"Agent处理结果({tool_name}):\n{result}"# ===================== 4. 测试Agent(直接运行,验证功能) =====================if__name__=="__main__":# 初始化Agent,加载GPT-4模型和工具agent=SimpleAzureAgent()print("✅ Azure极简Agent已启动(基于GPT-4驱动)")print("示例指令:文本总结 今天召开了项目会议,讨论了下一版本的功能迭代计划,确定了需求优先级,预计下周三完成开发任务。")print("输入「退出」即可结束运行")# 交互测试,模拟用户使用场景whileTrue:user_input=input("\n请输入指令:")ifuser_input=="退出":print("❌ Agent已停止运行")break# 运行Agent并输出结果,验证GPT-4调用和工具执行result=agent.run(user_input)print(result)四、代码运行与测试
代码运行步骤简单,附测试成功示意图,方便你对照验证:
保存代码:将上述代码保存为agent_basic.py,放在本地文件夹(建议和上一篇的azure_config.json文件放在同一目录,避免配置读取失败);
运行代码:打开CMD,进入代码所在目录,执行命令 python agent_basic.py;
首次运行验证:若没有azure_config.json文件,会提示输入Azure的Endpoint、API Key、Deployment Name(可从Azure门户复制,和上一篇准备的一致,确保Deployment Name是GPT-4的部署名称);
功能测试(输入以下指令,验证Agent是否正常运行,对照示意图查看结果):
测试指令1(基础功能):文本总结 今天召开了项目会议,参会人员有产品、开发、测试,会议核心讨论了下一版本的功能迭代计划,确定了需求优先级,预计下周三完成开发任务。
预期结果:Agent调用文本总结工具(GPT-4驱动),返回简洁的总结(100字内),无冗余内容;
- 测试指令2(异常验证):输入“整理文件”(未包含“文本总结”关键词),Agent会提示“未识别到可处理的任务”,验证指令解析功能;
- 测试指令3(空内容验证):输入“文本总结”(未输入具体文本),Agent会提示“请输入需要总结的内容”,验证参数校验功能。
五、核心知识点讲解
- Agent核心逻辑讲解(理解底层原理)
Agent的运行流程:用户输入指令 → Agent解析指令(匹配工具) → 调用对应工具(文本总结,GPT-4驱动) → 返回结果,其中3个核心关键点需重点掌握:
tools字典:实现“工具名称→工具函数”的映射,后续添加新工具(如文件处理),只需在字典中添加对应映射即可,扩展性强;
parse_instruction函数:极简版用关键词匹配,降低理解和开发难度,后续将升级为“通过Azure GPT-4模型解析指令”,实现更智能的任务识别(如识别复杂指令);
run函数:Agent的入口,串联“解析→调用→返回”的全流程,是Agent的核心控制逻辑,后续所有功能升级(如多轮记忆、批量处理),都会围绕这个入口扩展。
- 常见问题排查
运行代码时,若出现报错,可对照以下常见问题排查:
报错“配置不完整”:检查azure_config.json文件,确保3个核心参数都填写正确,无拼写错误;如果还有错误,可以删除这个json文件重新运行。
报错“模型调用失败”:检查Deployment Name是否为GPT-4的部署名称,同时确认Azure订阅处于活跃状态,API Key未过期;
代码运行无响应:检查网络是否能正常访问Azure国际版,若网络异常,需确保Azure国际版的访问权限正常。
六、本篇总结与下一篇预告
本篇我们成功搭建了第一个基于Azure的入门级Agent,依托GPT-4模型实现了“文本总结”功能,掌握了Agent的核心框架(配置→解析→工具调用),同时验证了Azure模型调用的稳定性,也解决了新手常见的调用和运行问题。
下一篇,我们将升级Agent:添加多轮记忆功能(让Agent记住上下文,比如追问上一次的总结内容)、扩展文件处理工具(复用你之前的多格式文件处理代码),让Agent能处理“总结Word文档”“提取Excel内容”等更贴近职场的任务,逐步向实用型Agent升级,同时继续补充对应的示意图,方便解升级逻辑。
