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

Agent 结构(LLM + Tool + Executor)

day29:理解Agent 结构(LLM + Tool + Executor)

一、Agent定义 简单介绍

  • Agent = 能“思考 → 决策 → 调用工具 → 再思考”的 LLM 程序

公式化一点就是:

Agent = LLM + Tools + Executor

它和「问 → 答」最大的区别是:

LLM 不再只是生成文本,而是在“做事”

二、Agent 结构总览

┌─────────────────────┐ │ User │ └─────────┬───────────┘ │ ┌─────────▼───────────┐ │ Agent │ │ │ │ ┌──────────────┐ │ │ │ LLM │ │ ← 决策中枢(大脑) │ └──────┬───────┘ │ │ │ Thought │ │ ┌──────▼───────┐ │ │ │ Tools │ │ ← 外部能力 │ └──────┬───────┘ │ │ │ Action │ │ ┌──────▼───────┐ │ │ │ Executor │ │ ← 执行与控制循环 │ └──────────────┘ │ └─────────────────────┘

三、Agent 的三个核心组件(重点)

1️⃣ LLM(大脑)

在 Agent 中,LLM 不只是“回答问题”

它负责:

  • 🤔 思考(Thought)

  • 🧭 决策(是否用工具)

  • 🧠 规划(先做什么,再做什么)

典型提示词结构(你不写,LangChain 会自动帮你写):

Thought: 我需要查询时间 Action: get_current_time Action Input: {} Observation: 2025-12-13 Thought: 我可以回答了 Final Answer: 现在是 2025-12-13
  • 👉 Agent 的本质是让 LLM 输出“结构化思考过程”

2️⃣ Tool(工具)

Tool 是什么?

Tool = Agent 能调用的 Python 函数

例如:

- 搜索 - 计算 - 查数据库 - 调 API - 查文件 - 调你写的业务函数

在 LangChain 中,一个 Tool 至少包含:

name descriptioncallablefunction

LLM 通过 description 来判断“该不该用这个工具”


3️⃣ Executor(执行器)

  • Executor 是 Agent 的“循环控制器”

它负责:

  • 把 LLM 输出解析成:

    • Thought

    • Action

    • Action Input

  • 调用 Tool

  • 把结果塞回给 LLM

  • 再让 LLM 思考

  • 直到得到 Final Answer

可以理解为:

Executor = Agent 的 runtime

四、LangChain 中的 Agent 类型(认识不分)

✅ ReAct Agent(最重要)

ReAct = Reason + Act

Thought → Action → Observation → Thought → Final

👉 这是 LangChain 默认 & 最稳定 & 最好理解 的 Agent 结构
后面你学的基本都是它的变体。


五、从 0 到 1:一个最小 LangChain Agent Demo(Qwen-Plus)

Step 0:安装依赖

langchain>=0.1.0langchain-openai langchain_classic pip install-r requirements.txt
importdatetimefromlangchain_classic.agentsimportinitialize_agent,AgentTypefromlangchain_core.toolsimporttoolfromlangchain_openaiimportChatOpenAI llm=ChatOpenAI(model="qwen-plus-latest",temperature=0,api_key="sk-YOUR-API-KEY",base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",)@tooldefget_current_time(query:str)->str:"""获取当前时间"""returnstr(datetime.datetime.now())tools=[get_current_time]agent=initialize_agent(tools,llm,agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,verbose=True,handle_parsing_errors=True)defmain():res=agent.invoke({"现在是什么时间?"})print(res["output"])if__name__=="__main__":main()# (day29venv) PS E:\code\xsun_ai_study\week5\day29> python main.py# E:\code\xsun_ai_study\week5\day29\main.py:23: LangChainDeprecationWarning: LangChain agents will continue to be supported, but it is recommended for new use cases to be built with LangGraph. LangGraph offers a more flexible and full-featured framework for building agents, including support for tool-calling, persistence of state, and human-in-the-loop workflows. For details, refer to the [LangGraph documentation](https://langchain-ai.github.io/langgraph/) as well as guides for [Migrating from AgentExecutor](https://python.langchain.com/docs/how_to/migrate_agent/) and LangGraph's [Pre-built ReAct agent](https://langchain-ai.github.io/langgraph/how-tos/create-react-agent/).# agent = initialize_agent(tools,### > Entering new AgentExecutor chain...# 需要获取当前时间# Action: get_current_time# Action Input: {"query": "current time"}# Observation: 2025-12-14 14:52:24.744312# Thought:Final Answer: 现在是2025年12月14日14点52分24秒。## > Finished chain.# 现在是2025年12月14日14点52分24秒。

你会看到完整的 Agent 思考链:

Thought: 我需要知道当前时间 Action: get_current_time Action Input: {} Observation: 2025-12-13 10:32:11 Thought: 我已经知道时间了 Final Answer: 现在是 2025-12-13 10:32:11

六、这个 Demo 背后发生了什么(非常重要)

组件做了什么
LLMQwen-Plus
ToolPython 函数
AgentReAct 推理模板
Executor控制调用循环

👉 这是 90% LangChain Agent 的通用骨架

七、Agent 和你之前 RAG 的关系

RAGAgent
查资料 → 回答思考 → 决策 → 行动
单次生成多轮内部循环
被动主动
无状态或弱状态可引入 Memory

👉 Agent 可以“用 RAG 作为工具”

http://www.cnnetsun.cn/news/51892.html

相关文章:

  • 31、脚本编程进阶:Here文档、自上而下设计与流程控制
  • 信捷XDH系列PLC的追剪/飞剪/电子凸轮程序模板
  • 【大模型】-LangChain--stream流式同步异步
  • 兜兜英语每日短语:逃单篇
  • 计算机毕业设计springboot汽车智慧检修系统 基于SpringBoot的智能汽车故障预测与维修管理平台 融合IoT的SpringBoot车辆健康监测与维修决策系统
  • python3
  • 【3D图像技术分析与实现】Apple Vision Pro三维成像技术栈深度解析
  • 经典算法题详解之统计重复个数(三)
  • 移动应用开发实验室大一上考核
  • 云数据库服务(如AWS RDS)的优势和考虑因素?
  • 【设计模式|第四篇】适配器模式:让不兼容的接口协同工作
  • asgiref终极指南:高效解决Python异步通信难题
  • 医学影像深度学习知识点总结
  • 从零到一:自动化3D建模的免代码解决方案
  • Kali中生成被控端
  • 13、Linux 文本编辑与命令操作实用指南
  • 20、Linux 备份全攻略
  • 22、Debian系统管理与安全保障全解析
  • 32、Debian变体与基于Debian的其他操作系统
  • 50、无线传感器网络部署方案与加密算法研究
  • 51、无线传感器网络部署方案与LEACH协议优化研究
  • 54、垃圾邮件和即时通讯垃圾信息的分类与控制措施
  • 如何通过AutoGPT生成高质量技术博客为GPU算力引流
  • 多目标蜣螂优化算法NSDBO:微电网多目标优化调度的利器
  • 本研究基于分形纤维丛统一场论,构建了黑洞时空的几何模型,揭示了奇点消解、霍金辐射修正及信息守恒的新机制。该模型的优势在于将宏观时空的广义相对论效应与微观量子的分形特性实现了有机融合。
  • 好写作AI语言侦探:你的论文严谨性“隐形把关人”
  • 解放双手!钉钉智能打卡神器完全上手手册
  • DMXAPI全球模型API调用完全指南:从入门到精通
  • 告别“翻墙“烦恼:DMXAPI让Gemini-3-pro-thinking调用快如闪电
  • leetcode 744. Find Smallest Letter Greater Than Target 寻找比目标字母大的最小字母-耗时100%