推理 → 行动 → 观察:用 LangChain + Python 实现一个智能体循环

推理 → 行动 → 观察:用 LangChain + Python 实现一个智能体循环
如果你用过 ChatGPT 或 Claude的话对标准聊天机器人的工作方式应该不陌生提问然后得到一个回答。但如果交给它一个多步骤任务呢比如“帮我找到最便宜航班查询我的常旅客积分并预订最佳选项”。这时标准聊天机器人就会卡住因为它没有在单次响应之后继续推进的机制。智能体循环架构agentic loop architecture就是为了解决这一局限而出现的。下面这篇介绍会说明它是什么、如何工作以及如何把它实现出来。简单聊天机器人与 AI 智能体的区别聊天机器人以单次通过single pass的方式运行他的交互流程是用户发送消息LLM 生成响应流程结束。一次输入对应一次输出没有任何记忆或状态被带入下一步。智能体则是被设计用来行动act而不只是响应。两者之间的差异可以归结为一个非常基础的编程概念while循环。智能体循环是一种迭代循环LLM 在其中使用工具、根据反馈做出调整并反复执行这一过程直到任务彻底完成。智能体循环的 5 个阶段智能体循环一般跨越五个阶段。感知Perceive智能体接收输入可能是用户的 Prompt、某个 API 的响应或是一条错误消息。推理ReasonLLM 处理这段上下文决定下一步该做什么。规划Plan面对复杂目标时智能体会把目标拆解为更小的子任务。行动Act智能体执行具体动作——运行代码、查询数据库或调用 API。观察Observe智能体查看动作的结果判断它是否生效或者计划是否需要调整。在多数任务中核心执行循环可以进一步简化为持续迭代的三步推理 → 行动 → 观察。智能体循环的核心迭代架构 / 流程图下面是这一架构的简单可视化示意详细的智能体循环架构循环实际是怎么跑起来的一个简单示例设想给一个智能体下达这样的指令“找出 2026 年发表的、关于智能体记忆的被引用次数最多的论文并对其进行总结。”循环的执行过程大致如下第 1 次迭代推理 → 行动 → 观察智能体推理出需要搜索 2026 年的论文通过调用搜索 API 进行行动观察到一份包含 15 篇论文的列表。第 2 次迭代智能体推理出需要拿到被引用次数最多那篇结果的正文通过文档检索工具进行行动观察到完整的摘要。第 3 次迭代智能体推理出信息已经足够生成总结结束循环。在底层整个架构归结为几行逻辑的Python 伪代码while not done: response call_llm(messages) if response has tool_calls: results execute_tools(response.tool_calls) messages.append(results) else: done True return response用 Python 实现一个基础版本LangChain下面是用 Python、LangChain 和一个 Oracle 数据库连接来实现智能体循环的基础示例其中 Oracle 数据库连接被用于工具执行。from langchain.agents import create_agent from langchain_core.tools import tool from langchain_core.messages import AIMessage, ToolMessage # 1. 定义智能体可以执行ACT的工具 tool def calculate(expression: str) - str: 对一个数学表达式求值。 pass # 此处实现 tool def timezone_convert(time_str: str, from_city: str, to_city: str) - str: 在城市之间转换本地时间。 pass # 此处实现 # 2. 创建带工具的智能体这会编译出 StateGraph 循环 agent create_agent( modelllm, tools[calculate, timezone_convert], system_promptYou are a precise assistant. Use tools to find answers. ) # 3. 运行迭代循环 QUESTION If I fly from London at 14:00 for 6 hours, what time do I land in New York? for chunk in agent.stream({messages: [(human, QUESTION)]}, stream_modevalues): last_msg chunk[messages][-1] if isinstance(last_msg, AIMessage) and last_msg.tool_calls: for call in last_msg.tool_calls: print(f[ACT] → Executing {call[name]}) elif isinstance(last_msg, ToolMessage): print(f[OBSERVE] ← Result received) elif isinstance(last_msg, AIMessage) and last_msg.content: print(f\\nFinal Answer: {last_msg.content})什么时候该用智能体循环什么时候不该用适合使用的场景完成一个任务所需的步骤数无法事先确定。系统需要根据中间步骤的结果调整自身策略——例如某次搜索失败时要换不同的关键词再试。任务完成度比原始速度更重要。不适合使用的场景固定序列的工作流如果整个流程都是高度可预测、步骤固定的更合适的做法是写一个确定性的代码 Pipeline。简单任务只需要一次 LLM 调用加一次工具调用就能解决的事情没必要套上迭代循环的开销。严格的延迟约束循环的每一次迭代都要做一次 LLM 调用处理时间和 Token 成本都会累加。如果速度是首要优先级智能体循环可能会偏慢。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】