当前位置: 首页 > news >正文

详细介绍:第14章 AI Agent——构建自主智能助理

详细介绍:第14章 AI Agent——构建自主智能助理


1. 项目概述

如果说LLM是“大脑”,那么Agent就是赋予这个大脑“身体”和“工具”的系统,使其能够感知环境、做出决策、并采取行动。Agent是当前AI领域最激动人心的前沿方向之一,它代表着从被动响应到主动执行的范式转变。本项目将带你进入Agent的世界,构建一个能够自主规划和执行任务的智能助理。

核心目标:

开发一个具备基本Agent能力的AI助理,它能够:

  1. 理解复杂指令:接收一个高层次的目标,例如“查询今天北京的天气,并计算100美元按当前汇率是多少人民币”。
  2. 自主规划 (Planning):将复杂目标分解成一系列可执行的子任务。
  3. 工具使用 (Tool Use):调用外部API(如天气查询、汇率计算)来获取信息或执行操作。
  4. 结果整合 (Synthesis):整合所有子任务的结果,形成最终的、符合用户目标的答案。

你将学习到的核心技术:

  1. Agent框架:理解主流Agent框架(如LangChain, LlamaIndex)的核心思想和组件。
  2. ReAct (Reason + Act) 思想:学习Agent如何通过“思考”和“行动”的循环来完成任务。
  3. Function Calling:掌握如何利用LLM的Function Calling能力,使其能够结构化地调用外部工具。
  4. 任务分解与执行:了解Agent如何处理依赖关系,一步步完成复杂任务。
Agent工作流程图
graph TDA[用户输入高层目标] --> B{Agent核心循环}subgraph sLoop[Agent核心循环]B1[思考 - Reasoning: 我应该做什么?] --> B2[规划 - Planning: 分解任务,选择工具]B2 --> B3[行动 - Action: 调用工具API]B3 -- 返回结果 --> B4[观察 - Observation: 分析工具结果]B4 --> B1endB -- 任务完成 --> C[整合最终答案]C --> D[返回给用户]subgraph sTools[外部工具 - APIs]T1[天气查询API]T2[汇率计算API]T3[搜索引擎API]endB3 --> T1B3 --> T2B3 --> T3

2. 核心概念:Agent = LLM + 规划 + 工具

一个基础的Agent系统可以被看作是以下三个核心组件的结合:

  • LLM (大脑):作为认知核心,负责理解、推理、规划和决策。
  • 规划 (Planning):将用户的复杂目标分解为一系列可管理的小步骤。最经典的模式是ReAct,即Reason(思考下一步该做什么)和Act(执行选择的动作)的交替循环。
  • 工具 (Tools):赋予Agent与外部世界交互的能力。工具可以是任何东西:一个函数、一个API端点、一个数据库查询等。通过Function Calling,LLM可以输出结构化的JSON来指定调用哪个工具以及传递什么参数。

3. 项目实战:构建一个LangChain Agent

LangChain是一个强大的Agent开发框架,它极大地简化了构建Agent的复杂性。我们将使用LangChain和OpenAI的Function Calling能力来构建我们的智能助理。

3.1 环境准备

!pip install -q langchain langchain_openai langchain_community duckduckgo-search

3.2 定义我们的工具 (Tools)

我们将为Agent提供两个工具:一个用于网络搜索,一个用于数学计算。

import os
from langchain_community.tools import DuckDuckGoSearchRun
from langchain_core.tools import Tool
# 设置你的OpenAI API密钥
# os.environ["OPENAI_API_KEY"] = "your_openai_api_key"
# 1. 搜索工具
search_tool = DuckDuckGoSearchRun()
# 2. 计算器工具 (使用lambda函数快速定义一个简单的工具)
# LangChain会自动推断出这个函数的输入和输出
calculator_tool = Tool(
name="Calculator",
func=lambda expression: eval(expression), # 注意:eval有安全风险,仅用于演示
description="当你需要计算数学表达式时使用。"
)
# 将所有工具放入一个列表
tools = [search_tool, calculator_tool]

3.3 初始化LLM和Agent

我们将使用支持Function Calling的OpenAI模型,并使用LangChain提供的便捷函数来创建一个Agent。

from langchain_openai import ChatOpenAI
from langchain.agents import create_openai_functions_agent, AgentExecutor
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
# 选择一个支持Function Calling的模型
llm = ChatOpenAI(model="gpt-3.5-turbo-1106", temperature=0)
# 设计Agent的Prompt
# 这个Prompt模板告诉Agent它的角色、可用的工具,以及如何与用户互动
prompt = ChatPromptTemplate.from_messages([
("system", "你是一个乐于助人的AI助理。你可以使用工具来回答问题。"),
("user", "{input}"),
# MessagesPlaceholder是Agent存储其思考和行动历史的地方
MessagesPlaceholder(variable_name="agent_scratchpad"),
])
# 创建Agent
# 这个函数将LLM、工具和Prompt绑定在一起
agent = create_openai_functions_agent(llm, tools, prompt)
# 创建Agent执行器 (Agent Executor)
# 这是Agent的运行环境,负责执行Agent的决策
agent_executor = AgentExecutor(
agent=agent,
tools=tools,
verbose=True # 设置为True可以看到Agent的完整思考过程
)

3.4 运行Agent并测试

现在,我们可以向Agent提出一个需要结合使用工具才能完成的复杂问题。

# 提出一个复杂问题
# 这个问题需要Agent先搜索百度的市值,然后用计算器进行汇率转换
question = "百度目前的市值是多少美元?如果1美元等于7.2人民币,那么换算成人民币是多少?"
# 运行Agent
response = agent_executor.invoke({"input": question})
print("\n--- Agent的最终回答 ---")
print(response["output"])

当你运行上述代码并设置verbose=True时,你将在控制台看到非常详细的输出,它会展示Agent的完整“心路历程”:

  1. Thought: 用户想知道百度的市值(美元)并换算成人民币。我需要先搜索百度的市值,然后用计算器计算。第一步是搜索。
  2. Action: DuckDuckGoSearchRun(query="百度市值")
  3. Observation: (返回搜索结果,例如“百度市值约为350亿美元”)
  4. Thought: 我已经知道市值是350亿美元了。现在我需要计算350 * 7.2
  5. Action: Calculator(expression="350 * 7.2")
  6. Observation: (返回计算结果 2520)
  7. Thought: 我已经完成了所有步骤,现在可以给出最终答案了。
  8. Final Answer: 百度目前的市值约为350亿美元,换算成人民币约为2520亿元。

4. 总结与展望

通过这个项目,你已经成功构建并运行了一个具备基本规划和工具使用能力的AI Agent。这只是Agent世界的冰山一角,但它为你打开了通往更高级AI应用的大门。

可以探索的扩展方向:

  • 更复杂的工具:尝试集成更强大的API,例如发送邮件、操作日历、查询数据库,甚至控制智能家居设备。
  • 多Agent协作:设计一个系统,其中包含多个专门的Agent(如“研究员Agent”、“程序员Agent”、“报告撰写Agent”),它们可以相互协作,共同完成一个宏大的任务。
  • 记忆与学习:为你的Agent增加长期记忆能力(通常通过向量数据库实现),使其能够记住过去的交互,并从中学习,变得越来越“懂你”。
  • 开源Agent框架:除了LangChain,还可以探索其他优秀的开源Agent框架,如AutoGen (微软)、LlamaIndex等,它们在多Agent协作等领域提供了独特的解决方案。

Agent技术的发展日新月异,它正在重新定义人与机器的协作方式。掌握Agent开发,你将站在AI应用创新的最前沿。

http://www.hskmm.com/?act=detail&tid=21633

相关文章:

  • PowerToys新工具Light Switch:让Windows自动切换明暗主题
  • java从word模板生成.doc和.wps文件
  • 炼石#8 T1
  • 详细介绍:《C++ Primer Plus》读书笔记 第二章 开始学习C++
  • 【虚拟机】“:域名解析出现暂时性错误”VMware配置DNS
  • 双抗 ADC:如何突破传统 ADC 瓶颈,成为癌症治疗的精准杀伤利器?
  • 微信聊天记录移动到外置磁盘后,如何解决无法引导聊天记录
  • AI+手搓第一个AI Agent“AI胜铭兰”
  • 基于JDK17的GC调优策略
  • 【MC】我的世界schematic方块坐标提取转为json
  • Jenkins+IIS+Bonobo.Git.Server 搭建适用dotnet开发者的小团队的devops环境
  • JDK17新特性梳理
  • 完整教程:Nginx 高级配置指南:Rewrite、If判断、浏览器分离与防盗链
  • 数据结构学习随笔 第一章
  • 函数-参数+作用域
  • 用 Nim 实现英文数字验证码识别
  • 抓紧上车,别再错过啦, Github 开源后台管理平台,Naive UI !!!
  • 深入解析:【网络编程】套接字入门:网络字节序与套接字种类剖析
  • 地产行业,居然还有这样的开发商 - 智慧园区
  • Tita项目与绩效一体化管理:重构组织效能的数字化中枢
  • 实用指南:电子电气架构 --- 智能座舱域环境感知和人机交互系统
  • 强化学习(二十二)-MADDPG
  • GLM-4.6与DeepSeek-V3.2-Exp发布
  • 2025.9.30——1黄
  • 【半导体物理 | 笔记】第二章 半导体中杂质和缺陷能级
  • 基于内容可信空间的医疗行业机遇研究报告
  • v-show会导致重绘还是重排?
  • M3-Agent:看见、听见、记住与推理:具备长期记忆的多模态智能体
  • 20250930
  • 阿里云发布《AI 原生应用架构白皮书》