
网上讲AI Agent的教程,一半在堆概念,一半在卖焦虑。”自主规划””多智能体协同””认知架构”……词儿一个比一个吓人,看完你还是不会写。今天我把Agent扒个底朝天:它没那么神,本质就三样东西——一个会思考的模型、几个能干活的工具、一个来回转的循环。
跟着我,用LangChain从零手写一个会调工具的Agent。不依赖任何黑盒平台,每一行代码你都看得懂。写完你会发现:哦,原来Agent就是这么回事。
第一章 先泼盆冷水:别被”Agent”吓住,它就是”模型+工具+循环”
很多人觉得Agent高不可攀,是因为被术语劝退了。我给你翻译成人话。
模型:就是那个大模型,负责”动脑子”。它看到你的问题,决定下一步干啥。
工具:就是函数。查天气的函数、算数学的函数、搜网页的函数、读数据库的函数。Agent强不强,一半看它手里有几个好用的工具。
循环:模型不是一次答完就完。它先”想”(Thought),再”决定调哪个工具”(Action),工具返回结果(Observation),它再看结果决定下一步,直到觉得能答了,才输出最终答案(Final Answer)。
就这么简单。LangChain干的事,就是把”模型+工具+循环”这三样,用统一的接口串起来,让你不用自己写那套复杂的调度逻辑。理解了这个,Agent在你眼里就从”黑魔法”变成”乐高”。
第二章 5分钟跑通环境:只装4个包,绕开新手依赖地狱
LangChain新手最大的坑,不是写不出代码,是装不对环境——pydantic版本冲突、包拆得七零八落,光”Hello World”就能劝退一半人。
听我的,只装这几个,别多装:pip install langchain langchain-openai langchain-community python-dotenv。模型我建议用兼容OpenAI格式的(DeepSeek、通义千问都行),免费额度够练手,国内直连。
建个.env文件存密钥,别硬编码:API_KEY=xxx、BASE_URL=https://api.deepseek.com、MODEL=deepseek-chat。代码里 load_dotenv() 一读就行。Python 3.9+ 即可,不用最新版,稳定最重要。
第三章 第一个工具:写个查天气的函数,让Agent自己决定调不调
Agent的灵魂是Tool。我们写个最朴素的:读一个本地weather.json,按城市返回天气。关键在于——你要写清楚”这个描述”,因为模型是靠描述来决定要不要调它的。
用LangChain的 @tool 装饰器包一下,函数的docstring就是给模型看的说明书。比如:”根据城市名查询当前天气,输入必须是中文城市名”。描述写得越清楚,模型调得越准。
然后把工具和模型绑定:llm_with_tools = llm.bind_tools([get_weather])。你问”东京天气咋样”,模型看到工具描述,自己判断”这事儿得调get_weather”,返回结构化调用请求。你执行这个函数,把结果喂回去,它再基于结果说话。整个过程,模型自己拿主意,你只负责”执行工具+回传结果”。

第四章 拆开ReAct循环:Thought→Action→Observation怎么转
这是整篇文章最值钱的一节。Agent的”智能感”来自ReAct框架,拆开就是三个动作反复转。
你问”Task Decomposition的标准方法是啥?查到后顺便看看它的常见扩展”。模型先 Thought:我得先查标准方法。于是 Action:调用检索工具。工具返回 Observation:标准方法是X。模型再 Thought:知道了,接着查扩展。又一轮 Action→Observation。直到信息够了,才给 Final Answer。
文章里这张循环图,把一次完整推理画出来了:左边是用户问题,中间模型不断”想-调-看”,右边是工具返回,最终汇聚成答案。看懂这张图,你就看懂了所有Agent——不管是Manus还是Claude,内核都是这个循环,只是工具更多、模型更猛。
第五章 接上记忆:让Agent记住前文,多轮对话不翻车
光会调工具还不够。你问完”北京天气”,接着问”那上海呢”——如果Agent不记得上一句在聊天气,它就懵了。所以得给它装”记忆”。
LangChain里用 MessagesPlaceholder(variable_name="chat_history") 在提示词里留个位置,再用 RunnableWithMessageHistory 维护历史。每一轮对话,历史自动塞回提示词,模型就知道前文聊了啥。
但记忆不是越多越好。塞太多轮,模型容易跑偏、还费token。实战心法:只保留相关的近几轮,或者把长对话压缩成摘要再存。别让”记性太好”拖垮了回答质量。

第六章 进阶:把本地文档变成它的”长期记忆”
想让Agent真正懂你的业务?把你的文档喂给它,做成RAG(检索增强生成),它就有了”长期记忆”。
链路:文档加载 → 切小块(300~500字) → 向量化存Chroma → 用户提问时,先检索最相关的几块,连同问题一起丢给模型。这样它答的每句话,都有你的文档撑腰,不瞎编。
文章里这张架构图,就是”RAG+Agent”组合拳:最底层是你的私有文档和向量库,中间是检索器和大模型,上层Agent负责拆解问题、决定要不要检索、再组织答案。配合上一章的本地Ollama,你甚至能搭一个完全断网、数据不出本机的企业知识库助手。这才是Agent落地的真价值。
第七章 总结:手写Agent之后,你真正懂了什么
写完整套代码,你收获的不只是一个能跑的Agent,而是”看穿AI”的能力。以后再看到任何Agent产品,你脑子里自动拆成:它用了什么模型?接了哪些工具?循环怎么编排的?有没有记忆?
这种”拆解视角”,比会用十个平台都值钱。因为工具会过时,框架会迭代,但”模型+工具+循环”这个内核十年不会变。
下一步建议你:把手写版跑通后,再去碰LangGraph——它用状态机把多步任务编排得更稳,是生产级Agent的下一站。但根基,就在今天这几行代码里。关注圈圈,下篇带你用LangGraph把Agent编排到生产级。
暂无评论内容