7.3 工具类型与能力框架《AI智能体应用开发》
AI智能体应用开发 鲍亮崔江涛李倩范涛 清华大学出版社【行情 报价 价格 评测】-京东《AI智能体应用开发》1~6章试读-CSDN博客在7.1节和7.2节中我们系统地阐述了智能体工具能力的概念、核心机制与重要性为其勾勒了一幅宏观的理论蓝图。然而要真正驾驭这项能力我们需要从抽象走向具体从理论走向实践。本章将带领读者深入智能体的“工具箱”通过具体的、可运行的实例拆解不同类型的工具如何被集成与调用从而构建起一个直观的能力框架。本节假设读者拥有大模型调用的基础知识。为了方便且专业地演示这些实例我们将选用LangChain[2]这一广泛使用的开源框架。LangChain并非唯一选择但它为智能体与工具的集成提供了层次清晰、模块化的优秀抽象极大地简化了将大语言模型与外部能力组合在一起的过程。在本章中我们使用LangChain的目的在于快速、规范地构建一个具备工具调用能力的智能体原型并以其为标准范例阐释工具集成的通用模式和内在原理。我们将重点分析两类基础但至关重要的工具信息获取类以数据库为例和推理与计算类数值计算与代码执行。7.3.1 数据库在许多实际应用场景中智能体需要与组织的核心数据资产—数据库进行交互。例如一个客户服务智能体可能需要查询订单状态一个数据分析智能体可能需要汇总销售报表一个内部管理智能体可能需要检索员工信息。让智能体直接、安全地查询数据库可以使其回答基于真实、最新的业务数据价值巨大。为了演示我们假设一个简化的电商业务数据库test.db使用SQLite3作为数据库包含如图7-1所示的表结构。图7-1 数据库ER图代码清单7.1展示了如何使用LangChain构建一个能够理解自然语言问题并生成正确SQL查询的数据库查询智能体。为了缩小代码占用的篇章7.3.2节及之后的代码依赖引入部分略去详细的代码可以参考本书之后提供的代码仓库。代码清单7.1数据库工具调用实例from langchain_community.utilities.sql_database import SQLDatabasefrom langchain_openai import ChatOpenAIfrom langchain_community.agent_toolkits.sql.toolkit import SQLDatabaseToolkitfrom langchain.agents import create_agentfrom dotenv import load_dotenvfrom langchain_core.prompts import SystemMessagePromptTemplatefrom prompt import PROMPT_TEMPLATEload_dotenv(../.env)db SQLDatabase.from_uri(sqlite:///test.db)llm ChatOpenAI(modelqwen-plus, temperature0)toolkit SQLDatabaseToolkit(dbdb, llmllm)system_message SystemMessagePromptTemplate.from_template(PROMPT_TEMPLATE).format(dialectSQLite, top_k5) # PROMPT_TEMPLATE见代码仓库agent create_agent(llm, toolkit.get_tools(), system_promptsystem_message)example_query Alice购买了哪些商品events agent.stream({messages: [(user, example_query)]},stream_modevalues,)for event in events:event[messages][-1].pretty_print()代码首先进行了工具封装SQLDatabaseToolkit是关键组件它将数据库操作封装成智能体可理解和调用的工具。根据LangChain的SQLDatabaseToolkit文档[3]说明它提供了InfoSQLDatabaseTool、ListSQLDatabaseTool、QuerySQLCheckerTool、QuerySQLDatabaseTool分别用于获取数据库元信息、列出数据库包含的表格、检查SQL的正确性、查询数据库。执行流程如表7-1所示。上述流程稍微有些复杂从上述智能体执行流程可以看出智能体在面对用户查询时展现了一套完整、结构化的问题解决路径。整个过程体现了其自主决策、分步验证与高效执行的特点。1. 问题理解与目标拆解智能体首先明确用户查询意图—“Alice购买了哪些商品”并将其转化为从数据库中检索的具体任务而非直接尝试猜测或简单回应。2. 环境探查与信息获取智能体没有立即编写查询而是先通过工具理清数据库结构。3. 方案生成与安全验证在理解表结构后智能体主动构建SQL查询语句并进行语法和逻辑检查。这一步体现了其在执行前的谨慎态度避免无效或危险查询提升系统安全性与可靠性。4. 执行查询与结果整合确认查询无误后智能体执行查询获取原始结果[(Laptop,), (Phone,)]并将其转化为用户友好的表述形式清晰列出商品名称。5. 闭环输出与任务完成最终智能体以清晰条目形式总结答案响应用户初始问题完成交互闭环。最后请注意数据库是核心业务系统其访问必须受到最严格的限制对于可能更改数据库内容的权限强烈建议不要配置到工具中否则可能会导致数据库内容发生不预期的变更仅授予查询的权限即可。7.3.2 数值计算大语言模型处理数学问题依赖于其在训练数据中见过的数字模式和计算“印象”本质上是一种基于统计的“估算”而非精确计算。对于简单算术可能有效但对于复杂表达式、金融计算或科学计算其出错概率极高。因此一个可靠的数值计算工具是必不可少的。代码清单7.2展示了如何创建一个最简单的自定义计算工具并将其赋予智能体。和7.3.1节不同这里使用tool装饰器自定义了一个calculate工具并且简单地使用了eval作为求值的逻辑。需要说明的是本例中直接使用eval()是极其危险的因为它会执行输入字符串中的任何有效Python代码。恶意用户可能输入“__import__(os).system(rm-rf/)”这样的指令。这只是一个为演示工具集成原理的最小化示例。一个安全的数值计算工具应该使用安全的数学表达式解析库如ast.literal_eval或专门的库如numexpr、sympy严格限制可用的运算符和函数白名单并且在沙箱环境中执行计算。一个较为详细的数值计算工具定义可以参考strands-agents的工具集[4]。由于逻辑较为简单本例不进行智能体的流程演示读者可以运行代码并观察智能体的行为。7.3.3 代码执行代码执行工具为智能体赋予了前所未有的强大能力。它允许智能体通过编写代码来解决其内部模型无法直接处理的复杂问题例如数据处理、文件操作、调用特定库函数、实现复杂算法等。这极大地扩展了智能体的行动边界使其从顾问升级为执行者。我们可以使用LangChain提供的PythonREPL工具简单地进行测试可以参考本书的代码仓库tool-example/numeric_example/repl.py。注意代码执行工具风险等级更高这允许智能体执行未经审查的代码必须配备极其严密的防护措施。我们必须在完全隔离的沙箱如Docker容器、轻量级虚拟机、或基于操作系统级别的沙箱技术中运行PythonREPL。这个环境应该无网络访问权限且与主机文件系统隔离并且也应该进行文件系统访问控制、资源限制等风险控制。代码清单7.2数值计算工具调用实例load_dotenv(../.env)tooldef calculate(expression):calculate an expressionreturn eval(expression)llm ChatOpenAI(modelqwen-plus, temperature0)agent create_agent(model llm,tools [calculate])example_query 帮我计算(1234 * 56) % 11events agent.stream({messages: [(user, example_query)]},stream_modevalues,)for event in events:event[messages][-1].pretty_print()

相关新闻

esxi不识别硬盘_ESXI安装OpenWRT amp; LEDE软路由部署指南(附镜像下载)

esxi不识别硬盘_ESXI安装OpenWRT amp; LEDE软路由部署指南(附镜像下载)

OpenWrt 是嵌入式的 Linux 路由器固件,OpenWrt在稳定运行的同时提供了强大的扩展能力,用户可以完全的定制属于自己的路由系统,满足不一样的个性化需求,本文讲解如何使用ESXI安装OpenWRT,打造属于自己的软路由。一、ESX…

2026/7/23 17:38:16 阅读更多 →
TM4C129 CAN寄存器深度解析:从位时序到消息对象配置实战

TM4C129 CAN寄存器深度解析:从位时序到消息对象配置实战

1. 项目概述与CAN总线核心价值 在汽车电子、工业自动化这些对通信可靠性要求极高的领域,控制器局域网(CAN)总线几乎是工程师们的“默认选择”。它不像我们日常用的USB或者以太网那样,需要复杂的握手协议和主从结构。CAN总线更像一…

2026/7/23 17:38:16 阅读更多 →
避开行业乱象!麦通MSX告诉你选择海外服务平tai的核心标准

避开行业乱象!麦通MSX告诉你选择海外服务平tai的核心标准

随着全球化数字化服务的普及,越来越多普通人开始主动了解、接触正规海外市场服务。但伴随行业快速发展,各类服务平tai层出不穷,服务质量参差不齐、模式优劣难以分辨,很多人在选择时容易陷入迷茫,要么跟风盲从&#xff…

2026/7/23 17:38:16 阅读更多 →

最新新闻

提质信创•协同发展——麒麟信安云+操作系统交流会顺利召开

提质信创•协同发展——麒麟信安云+操作系统交流会顺利召开

3月11日,由麒麟信安和神州数码共同举办的麒麟信安云操作系统交流会在杭州举行。本次交流会以“提质信创•协同发展”为主题,旨在探讨麒麟信安云操作系统信创产业稳定落地新模式,助力信息技术自主创新优质升级。麒麟信安高级副总裁任启、神州数…

2026/7/23 17:53:22 阅读更多 →
Django毕设选题推荐:基于 Django 的中小型电子商务网站开发与安全策略研究 Django 电商系统的功能设计与安全风险防范研究【附源码、mysql、文档、调试+代码讲解+全bao等】

Django毕设选题推荐:基于 Django 的中小型电子商务网站开发与安全策略研究 Django 电商系统的功能设计与安全风险防范研究【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/23 17:53:22 阅读更多 →
openwrt 软路由 查看IP地址命令 ifconfig / ip -4 addr

openwrt 软路由 查看IP地址命令 ifconfig / ip -4 addr

openwrt 软路由 查看IP地址命令 ifconfig / ip -4 addr

2026/7/23 17:53:21 阅读更多 →
MacBook不借助显示器通过u盘将openwrt安装到软路由硬盘

MacBook不借助显示器通过u盘将openwrt安装到软路由硬盘

1、推荐先将u盘格式化,一开始我的u盘默认格式是ntfs就写入失败了,所以这里推荐先格式化等进度条走完之后点击确认就行2、打开终端,输入diskutil list 可以看到我的u盘在 /dev/disk4 (external, physical)这里需要先卸载u盘,然后再…

2026/7/23 17:53:21 阅读更多 →
AI配音不自然?剪映语音合成底层逻辑大起底,资深剪辑师私藏的4层声学校准流程

AI配音不自然?剪映语音合成底层逻辑大起底,资深剪辑师私藏的4层声学校准流程

更多请点击: https://intelliparadigm.com 第一章:AI配音不自然?剪映语音合成底层逻辑大起底,资深剪辑师私藏的4层声学校准流程 剪映的语音合成并非简单调用TTS API,而是融合了端侧轻量化模型(如自研的“J…

2026/7/23 17:53:21 阅读更多 →
Github项目分享——免费的编程中文书籍索引

Github项目分享——免费的编程中文书籍索引

免费的编程中文书籍索引 祝大家除夕快乐,今天给大家推荐一个编程电子书的项目,因为计算机专业的书普遍量大且贵,所以这个项目可以让大家节约一定的费用,更好的学习编程。 项目地址 https://github.com/justjavac/free-programmi…

2026/7/23 17:52:21 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻