AI智能体开发课件第13章_第1页
AI智能体开发课件第13章_第2页
AI智能体开发课件第13章_第3页
AI智能体开发课件第13章_第4页
AI智能体开发课件第13章_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AI智能体开发新手必修课第13章:工具与MCP应用(ADK)讲师:资深AI工程师|日期:2026年3月课程简介学习目标理解MCP协议:掌握模型与工具的协作方式与核心概念。掌握ADK开发:能够定义、注册和调用自定义工具。实战能力提升:完成工具封装实战任务,提升开发技能。内容概览1.MCP协议概述与核心原理2.ADK工具开发基础与环境搭建3.工具封装实战(本地文件系统、数据库查询)4.工具调用流程解析与优化5.互动实操任务与常见问题排查目录MCP协议概述概念与核心思想,了解协议基础架构ADK工具开发基础核心组件与开发流程,掌握开发规范工具封装实战案例本地文件系统工具、数据库查询工具实战工具调用流程深入解析智能体如何调用封装好的工具互动实操实战演练:使用ADK封装一个API调用工具常见问题排查与总结开发中的常见问题排查及本章重点回顾MCP协议概述协议定义MCP(ModelContextProtocol)即模型上下文协议,是一种标准化协议,用于实现大语言模型与外部工具的无缝协作。它定义了模型如何理解、调用工具及处理返回结果。核心作用打破模型与工具间的壁垒,让模型像人类一样使用工具完成复杂任务,从而扩展模型的能力边界。图:MCP协议架构示意图(模型-工具-上下文交互)MCP协议核心思想标准化工具接口定义统一的工具描述格式,让模型能够理解工具的功能、参数和返回值,消除沟通障碍。统一上下文管理提供统一的上下文管理机制,确保模型在调用工具时能够准确传递和获取必要的上下文信息。无缝协作实现通过标准化的协议,实现模型与工具之间的高效、可靠的协作,最大化智能体的能力边界。核心价值:MCP协议通过打破模型与工具间的壁垒,建立了一套通用的交互标准,使得AI应用能够像乐高积木一样灵活组合与扩展。ADK工具开发基础ADK(AgentDevelopmentKit)定义:智能体开发工具包,是一套用于开发智能体工具的框架和工具集。提供丰富API和工具,帮助开发者快速定义、注册和调用自定义工具。ADK工具开发核心流程工具定义明确功能与技术栈工具实现架构设计与编码工具注册发布与平台注册工具调用集成测试与优化ADK核心组件介绍Tool(工具)表示一个具体的工具,包含工具的名称、描述、参数和实现逻辑,是功能执行的基础单元。Decorator(装饰器)用于修饰工具函数,提供额外的功能,如参数校验、日志记录、异常处理等,增强工具的健壮性。Context(上下文)用于传递和管理工具调用过程中的上下文信息,确保数据在不同组件间的顺畅流转。Agent(智能体)作为核心调度者,负责调用工具并实现与用户的交互,是连接用户需求与工具能力的桥梁。工具封装实战:本地文件系统工具任务目标使用ADK封装一个本地文件系统工具,实现文件的读取、写入和删除功能。实现思路定义工具函数,实现文件的读取、写入和删除功能。使用装饰器注册工具函数,指定工具的名称、描述和参数。在智能体中调用该工具,测试功能是否正常。通过标准化的封装流程,实现工具与智能体的高效集成本地文件系统工具代码示例(1)fromadkimporttool,context@tool(name="file_read",description="读取文件内容")deffile_read(file_path:str,ctx:context.Context)->str:"""读取文件内容:paramfile_path:文件路径:paramctx:上下文对象:return:文件内容"""withopen(file_path,'r',encoding='utf-8')asfile:content=file.read()returncontent代码解析这段代码定义了一个名为file_read的工具函数,用于读取文件内容。核心要点:使用@tool装饰器注册工具指定工具名称和描述信息接收文件路径和上下文对象返回读取到的文件内容字符串本地文件系统工具集/基础操作模块本地文件系统工具代码示例(2)fromadkimportagent#创建智能体agent=agent.Agent()#注册工具agent.register_tool(file_read)agent.register_tool(file_write)agent.register_tool(file_delete)#调用工具result=agent.call_tool("file_read",{"file_path":"test.txt"})print(result)代码逻辑解析这段代码首先创建了一个智能体实例,然后通过`register_tool`方法注册了文件读写删三个核心工具。最后演示了如何调用`file_read`工具来读取指定路径的文件内容。工具封装实战案例(2):数据库查询工具任务目标使用ADK封装一个数据库查询工具,实现数据的查询和插入功能。实现思路01.定义工具函数,实现数据的查询和插入功能。02.使用装饰器注册工具函数,指定工具的名称、描述和参数。03.在智能体中调用该工具,测试功能是否正常。图:数据库查询工具封装流程示意图数据库查询工具代码示例(1)fromadkimporttool,contextimportsqlite3@tool(name="db_query",description="查询数据库数据")defdb_query(query:str,ctx:context.Context)->list:"""查询数据库数据,返回查询结果"""conn=sqlite3.connect('test.db')cursor=conn.cursor()cursor.execute(query)result=cursor.fetchall()conn.close()returnresult代码解析这段代码定义了一个名为db_query的工具函数。它使用@tool装饰器进行注册,指定了工具名称和描述。函数内部通过sqlite3连接数据库,执行传入的SQL查询语句并返回结果。数据库查询工具代码示例(2)agent_tools.pyfromadkimportagent#创建智能体agent=agent.Agent()#注册工具agent.register_tool(db_query)agent.register_tool(db_insert)#调用工具查询数据result=agent.call_tool("db_query",{"query":"SELECT*FROMusers"})print(result)代码逻辑解析初始化智能体实例首先导入adk库并创建Agent对象,这是工具调用的基础载体。注册数据库工具通过register_tool方法将db_query和db_insert工具注册到智能体中。执行查询操作调用call_tool方法执行SQL查询,获取并打印数据库返回结果。通过上述步骤,我们实现了智能体对外部数据库的操作能力,这是构建数据驱动型AI应用的关键环节。工具调用流程智能体识别用户意图智能体通过分析用户的输入,精准识别用户的核心意图。智能体选择合适的工具基于识别出的意图,智能体从工具库中匹配并选择最合适的工具。智能体调用工具并获取结果执行工具调用指令,与外部工具交互并获取返回的原始结果。智能体处理结果并返回给用户对工具返回的结果进行整理和自然语言处理,将最终答案反馈给用户。核心逻辑:智能体作为“大脑”,通过意图识别、工具匹配、执行调用、结果处理四个闭环步骤,实现复杂任务的自动化解决。互动环节:实操任务介绍任务目标选择一个公开的API(如天气API),使用ADK封装一个工具,并在智能体中调用该工具。1.选择API选择一个公开的API,如天气API作为数据源。2.定义工具使用ADK定义一个工具函数,实现调用该API的逻辑。3.注册工具使用装饰器将定义好的函数注册为智能体可用的工具。4.调用工具在智能体中调用该工具,测试是否能正常获取数据。实操任务步骤详解1.选择API选择一个公开的API,如天气API,获取API的调用地址和参数说明。2.定义工具使用ADK定义一个工具函数,调用该API,处理返回的结果。3.注册工具使用@tool装饰器注册该工具,指定工具的名称、描述和参数。4.调用工具创建智能体,注册工具,调用工具并打印结果,测试是否能正常获取数据。实操任务评判标准总分100成功使用ADK封装工具25分能够正确使用ADK定义和注册工具,确保工具基础功能正常可用。工具调用API并获取数据25分工具能够成功调用API接口,并返回正确的数据格式,无报错信息。代码结构清晰,注释完整25分代码逻辑合理,结构清晰,包含必要的注释,便于他人理解和维护。智能体中成功调用工具25分能够在智能体环境中成功调用封装好的工具,并正确打印或展示结果。请严格按照以上标准进行实操自查,确保任务顺利完成常见问题排查Q1:工具注册失败?检查装饰器使用是否正确,工具名称是否唯一,参数是否正确。Q2:工具调用失败?检查API接口是否可用,参数是否正确,网络连接是否正常。Q3:智能体无法识别工具?检查工具描述是否清晰,智能体是否具备调用工具的能力,是否已经注册工具。本章总结MCP协议理解理解了MCP协议的概念

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论