2026/6/15 13:21:14
网站建设
项目流程
php网站开发框架,深圳网站设计哪家公司好,制作企业网站宣传图步骤,江苏免费建站day29#xff1a;理解Agent 结构#xff08;LLM Tool Executor#xff09;
一、Agent定义 简单介绍
Agent 能“思考 → 决策 → 调用工具 → 再思考”的 LLM 程序
公式化一点就是#xff1a;
Agent LLM Tools Executor它和「问 → 答」最大的区别是#xff1a;
LLM …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 descriptioncallablefunctionLLM 通过 description 来判断“该不该用这个工具”3️⃣ Executor执行器Executor 是 Agent 的“循环控制器”它负责把 LLM 输出解析成ThoughtActionAction Input调用 Tool把结果塞回给 LLM再让 LLM 思考直到得到 Final Answer可以理解为Executor Agent 的 runtime四、LangChain 中的 Agent 类型认识不分✅ ReAct Agent最重要ReAct Reason ActThought → Action → Observation → Thought → Final 这是 LangChain 默认 最稳定 最好理解 的 Agent 结构后面你学的基本都是它的变体。五、从 0 到 1一个最小 LangChain Agent DemoQwen-PlusStep 0安装依赖langchain0.1.0langchain-openai langchain_classic pip install-r requirements.txtimportdatetimefromlangchain_classic.agentsimportinitialize_agent,AgentTypefromlangchain_core.toolsimporttoolfromlangchain_openaiimportChatOpenAI llmChatOpenAI(modelqwen-plus-latest,temperature0,api_keysk-YOUR-API-KEY,base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1,)tooldefget_current_time(query:str)-str:获取当前时间returnstr(datetime.datetime.now())tools[get_current_time]agentinitialize_agent(tools,llm,agentAgentType.ZERO_SHOT_REACT_DESCRIPTION,verboseTrue,handle_parsing_errorsTrue)defmain():resagent.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 LangGraphs [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-PlusToolPython 函数AgentReAct 推理模板Executor控制调用循环 这是 90% LangChain Agent 的通用骨架七、Agent 和你之前 RAG 的关系RAGAgent查资料 → 回答思考 → 决策 → 行动单次生成多轮内部循环被动主动无状态或弱状态可引入 Memory Agent 可以“用 RAG 作为工具”