前言
鄙人只是一个臭臭的想要走前端开发路线的大三在校生,看到agent最近的爆火因而想要进行一些文章的写、经验的总结。
最近看了一些关于ai agent的文档文章,学习总结了一些概念,特此分享。说实话这是我第一次写文章,我也不知道文章内容对大家帮助有多少,观感如何。所以,在此感谢各位的观看,也欢迎大家提出建议,鄙人会虚心聆听,只为更好的自己!
一些思考
Q:为什么在使用LLM回答时提示词那么重要,为什么总是提到了准确的提示词往往对应准确的回答?
A:在Function calling层面上来讲,例如我定义了一个tool工具:
@tool
def search_weather(city: str) -> str:
"""查询天气""" # <--- 重点在这里!
return ...
那么在触发的时候往往需要根据这个查询天气来触发工具,而什么提示词会触发所谓的查询天气,这里基于LLM的数据学习,这是各个厂家在训练自身模型时所做的事情(模型预训练),我们不需要管。
因此如果我向他提问 "北京的天气如何?" 他会因为关键字等精准的触发这个tool,而我向它询问 "我在北京中午可以吃点啥" 时它就无法定位,导致回答混乱。
Q:LangGraph是什么?
A:在LangChain中,主要用LCEL也就是|来做链式处理:
from langchain.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
prompt = PromptTemplate.from_template( "Describe a perfect day in {city}.")
model = ChatOpenAI(model="gpt-4o-mini")
chain = prompt | model
chain.invoke({"city": "Paris"})
但是这样有一个弊端,也就是AI无法处理复杂情况,链式只适合单一工作流。为了解决这个问题引入了LangGraph概念。
LangGraph核心在于:
- 图结构,它把工作流看作一张图,由节点(具体的动作,如:调用大模型、执行搜索工具)和边(流程,失败如何、成功如何)组成。
- 状态管理,整个工作流会共享一个状态,节点执行完毕后会更新状态,然后再根据新状态决定下一步工作。
- 支持ReAct(思考-行动-观察)循环。
- 持久化
Q:MiddleWare是什么?
A:这里的MiddleWare为中间件,主要是在Agent生命周期的特定时刻,也就是各个Hook钩子触发的时候做出一些控制。
-
before_model:在模型说话之前。- 用途:检查提示词里有没有敏感词(PII 脱敏),或者把太长的历史记录压缩成摘要(上下文工程)。
-
after_model:在模型说话之后。- 用途:检查模型输出的内容是否合规,或者记录日志。
-
wrap_tool_call:在工具调用周围。- 用途:在执行危险操作(如发邮件、转账)前暂停,请求人工介入 (Human-in-the-loop) 审批。
- 当你使用 LangChain 1.0 的高级 API
create_agent时,你其实是在使用一个基于 LangGraph 构建的、预装了 Middleware 支持的 Agent。 -
# 这是一个基于 LangGraph 构建的 Agent agent = create_agent( model="gpt-4o", tools=[search], # 在这里插入 Middleware,控制 Agent 的行为 middleware=[ SummarizationMiddleware(), # 自动压缩历史 HumanInTheLoopMiddleware() # 关键操作需人工确认 ] )
如果你想构建复杂的、能循环思考的 AI 工作流,你需要 LangGraph;如果你想让这个工作流更安全、更节省 Token、更可控,你需要 Middleware。
举个栗子:记录模型调用日志
from langchain.agents.middleware import before_model
from langchain.agents.middleware import AgentState
from langgraph.runtime import Runtime
@before_model
def log_before_model(state: AgentState, runtime: Runtime) -> dict | None:
print(f"即将调用模型,当前消息数: {len(state['messages'])}")
return None # 返回None表示继续正常流程
agent = create_agent(
model="openai:gpt-4o",
tools=[...],
middleware=[log_before_model],
)
AI Agent 学习路线图
学习 AI Agent 是一个循序渐进的系统工程。你可以按照以下四个阶段,一步一个脚印地前进。
1️⃣ 第一阶段:核心基础与第一个Agent(约1-2周)
学习目标:理解大模型基本原理,搭建开发环境,并创建第一个能调用工具的简单Agent。
-
内容:
- 基础理论:了解 LLM、Token、嵌入(Embedding)等概念,并理解 Agent 的核心工作模式——ReAct(Reasoning + Acting) 模式,即“思考-行动-观察”的循环。
- LangChain入门:这是目前最主流的开发框架。建议直接学习其官方 Quickstart 教程,了解其核心组件:模型(Models)、提示模板(Prompts)、输出解析器(Output Parsers)和 LCEL(LangChain 表达式语言)。
- 实践:创建一个简单的 Agent,并给它配备一个工具(比如一个查询天气的函数)。
-
推荐资料:
-
官方文档:
- LangChain 官方快速入门(JS/TS版):Quickstart - Docs by LangChain
- LangChain 中文网快速入门:Quickstart | LangChain中文网
-
视频教程:
- 尚硅谷LangChain教程(B站):内容从入门到实战,涵盖智能对话助手、知识库问答等,非常适合快速上手。
-
系统学习:
- 可以阅读清华大学出版社的《LangChain:大模型应用开发指南》,书中循序渐进地介绍了LangChain的核心概念和使用方法。
-
2️⃣ 第二阶段:RAG与记忆(约2-3周)
学习目标:让Agent具备“查阅资料”和“记住对话”的能力,使其更智能、更实用。
-
内容:
- RAG技术:即检索增强生成。学习如何通过 向量数据库(如 Milvus, Pinecone)从外部知识库中检索相关信息,让 Agent 的回答更准确、更有时效性。
- 对话记忆:学习如何为 Agent 添加短期或长期记忆,使其能够理解对话上下文,实现更自然的交互。
-
推荐资料:
-
实战教程:
- 百度开发者中心的《LangChain实战:从零搭建智能文档问答系统全指南》,手把手教你实现一个RAG应用。
- 腾讯云的《大模型开发实战:(二)使用 LangChain 构建本地知识库应用》。
-
视频教程:
- freeCodeCamp 关于 n8n 的教程,其中包含使用 Pinecone 构建 RAG 客服 Agent 的实战项目。
-
3️⃣ 第三阶段:掌握复杂流程与状态(约3-4周)
学习目标:掌握 LangGraph,用于构建更复杂、可控的多步骤和多Agent协作系统。
-
内容:
- LangGraph核心:学习其核心概念——节点(Nodes)、边(Edges) 和状态(State)。理解它如何通过图结构优化AI Agent构建流程。
- 设计模式:深入理解 ReAct、Plan-and-Execute(计划-执行)等经典 Agent 架构模式。
- 实践:使用 LangGraph 实现一个需要多轮思考、工具调用的复杂 Agent。
-
推荐资料:
-
官方与社区教程:
- Notion 上的《LangGraph终极入门指南》:这是一份非常全面且广受好评的教程,涵盖了从核心概念到多智能体协作的所有内容。
- 《LangGraph:LangChain进阶指南——构建更智能的AI Agent助手》:深入探讨了LangGraph的核心优势与流程。
-
视频课程:
- 《Modern AI Agents》(InformIT):这是一个付费视频课程,全面介绍如何设计和构建单Agent与多Agent系统。
-
4️⃣ 第四阶段:迈向生产(约2周)
学习目标:学习如何监控、评估和部署你的Agent,并接触高级的 Deep Agents 实现。
-
内容:
- LangSmith:学习使用 LangSmith 这一平台,对 Agent 的调用过程进行 调试、追踪和评估,这对于构建生产级应用至关重要。
- Deep Agents:了解 LangChain 官方基于 LangGraph 构建的“开箱即用”高级 Agent 实现。它内置了任务规划、文件系统和子Agent生成等强大能力。
- 实践:将一个调试好的 Agent 部署到云端,并提供服务。
-
推荐资料:
-
官方文档:
- LangSmith 中文文档的 《LangSmith 入门》 章节。
- LangChain 官方文档的 Deep Agents 概述 页面。
-
深度解读:
- 阿里云开发者社区的《LangSmith大模型应用开发从调试到监控的全链路实践指南》。
- DataCamp 的《LangChain's Deep Agents: A Guide With Demo Project》教程,通过一个求职助手项目进行讲解。
-
结语
那么分享到此。写文章的其实很大一部分是想让让自己能够对概念有自己的理解。以上就是我在学习 AI Agent 过程中的一些浅见,难免存在理解不到位甚至错误的地方。毕竟我也只是一个还在摸爬滚打的大三学生,代码还没写秃头,头发还很茂密(笑)。
写这篇文章既是分享,更是为了倒逼自己输入。如果文中有任何不准确或过时的观点,恳请各位大佬不吝赐教,在评论区或通过其他方式指出。你的每一次指正,都是我进步的阶梯。让我们一起在 AI 的浪潮中,保持好奇,共同成长!