对agent一些概念的理解

9 阅读7分钟

前言

鄙人只是一个臭臭的想要走前端开发路线的大三在校生,看到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教程(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 的浪潮中,保持好奇,共同成长!