Soup's Blog

Back

Agent实战(一)Agent、LangChain、LangGraph和LangSmithBlur image

代码开源Github

🤖 什么是 Agent(智能体)?#

Agent 是一个能“自己思考并行动”的 AI 程序。

它不只是被动地回答问题,而是:

  • 听懂你的目标(比如“查上个月销量”)
  • 自己规划怎么做(比如:先写 SQL → 查数据库 → 整理结果)
  • 调用工具完成任务(如访问数据库、搜索网页、运行代码)
  • 把结果告诉你(用自然语言总结)

💡 简单说:Agent = 能自动做事的 AI 助手,不是只能聊天的“问答机”。

基于您提供的图片内容,以下是关于 LangChain 中 Agent 及其组成的简单介绍:

Agent 是一个能够通过循环调用工具来完成复杂目标的智能系统。它不像传统程序那样按固定流程执行,而是更像一位智能项目经理,能够自主规划、决策和执行任务。

Agent 的工作流程

  1. 输入:接收用户请求
  2. 模型推理:LLM 作为”大脑”分析任务,决定下一步行动
  3. 循环执行
    • 行动:选择并调用合适的工具
    • 观察:获取工具执行结果
  4. 输出:满足停止条件后,生成最终结果

Agent 的四大核心组件

组件角色功能描述
模型(Model)大脑负责推理和决策,支持多种LLM提供商,基于思维链模式分解复杂问题
工具(Tools)手脚Agent的能力扩展接口,提供300+预置功能(搜索、计算、数据库操作等)
记忆(Memory)记忆库维护短期对话上下文和长期知识存储,支持跨轮次协作
AgentExecutor协调器控制执行流程,处理循环、异常,确保任务顺利完成

Agent 的三大核心能力#

  1. 动态任务路由:根据输入内容智能规划执行路径
  2. 生态化工具集成:访问丰富的工具接口覆盖多领域需求
  3. 全周期记忆管理:同时维护短期上下文和长期知识存储

这种架构使 Agent 能够像人类一样思考-行动-观察-再思考,直到完美解决复杂问题。


AIGC 与 AI Agent 特性对比#

特性AIGC(如 ChatGPT)AI Agent(如 Manus, Operator)
核心能力内容生成任务规划与自主执行
交互模式被动响应,依赖提示词主动规划,自主决策
输出结果建议、方案、内容(需人工后续处理)可交付的最终成果(如已发送的邮件、整理好的报表)
与外界交互有限,主要通过文本强大,可通过工具调用操作现实世界系统

LangChain与LangGraph#

LangChain#

LangChain 是一个用于构建大语言模型(LLM)应用程序的框架。它的核心目标是简化AI应用的开发流程,通过提供一系列标准化的模块(如模型调用、记忆管理、数据检索和工具调用),让开发者能够像搭积木一样,快速组合出功能丰富的智能体(Agent)。使用 LangChain,您可以轻松地为LLM添加长期记忆、连接外部知识库、以及赋予其执行代码或操作API的能力,从而快速构建出问答系统、摘要工具或内容生成器等通用AI应用。它主要解决了LLM应用的“最后一公里”问题,极大地提升了开发效率。

LangGraph#

LangGraph 是建立在 LangChain 之上的一个库,专注于为智能体提供复杂、可定制的控制流。如果说 LangChain 负责组装智能体的“零部件”,那么 LangGraph 则负责设计其“大脑”的决策流程。它允许开发者以图(Graph)的形式来定义智能体的工作流,例如实现多步骤规划、循环执行、条件分支以及让多个“工作者”智能体协同完成任务。这使得 LangGraph 特别适合构建需要长期运行、状态持久化、行为复杂且可控的自主智能体,例如模拟角色、复杂的决策支持系统或自动化工作流引擎。

对比总结#

特性LangChainLangGraph
核心定位快速构建功能完善的LLM应用框架为智能体设计复杂控制流的运行时
主要目标开发效率标准化,提供开箱即用的组件精细控制灵活性,支持定制化工作流
擅长场景通用AI应用(如聊天机器人、文档问答)复杂、有状态的自主智能体(如模拟、多步推理)
类比提供了一套完整的乐高积木和搭建手册提供了设计和连接复杂齿轮与传动系统的工具
关系提供了智能体的核心组件(工具、记忆等)基于 LangChain 的组件,为其增添复杂逻辑和流程控制

LangSmith#

LangSmith 是由 LangChain 团队开发的一站式 LLM(大语言模型)应用开发、调试、测试与监控平台。它的目标是帮助开发者更高效地构建、评估和优化基于 LLM 的应用程序,尤其适用于使用 LangChain 或 LangGraph 构建的复杂智能体(Agent)系统。

一、核心功能概览#

1. Trace 可视化(执行追踪)#

  • 自动记录每一次 LLM 调用、工具调用、链(Chain)执行、状态变更等。
  • 时间线 + 树状结构展示完整执行流程,清晰看到:
    • Prompt 输入
    • LLM 输出
    • 工具调用参数与结果
    • 内部状态变化(尤其在 LangGraph 中)
  • 支持查看 token 使用量、延迟、模型名称等元数据。

✅ 类似于“Chrome DevTools for LLM apps”。

2. 数据集管理(Datasets)#

  • 创建和管理测试/评估数据集(输入 + 期望输出)。
  • 支持从真实用户交互中采样生成数据集(通过“Feedback”或手动标注)。
  • 可用于回归测试,确保新版本不会降低性能。

3. 自动评估(Evaluators)#

  • 提供内置评估器(如:准确性、相关性、有害性、忠实度等)。
  • 支持自定义 Python 评估函数(可调用 LLM 进行评判)。
  • 批量运行评估:将整个数据集在你的应用上跑一遍,生成量化指标(如准确率 85%)。

📊 示例:评估客服机器人回答是否“有帮助”且“无幻觉”。

4. 人工反馈与标注(Human Feedback)#

  • 允许人工对模型输出打分(👍/👎)或添加评论。
  • 反馈数据可回流到训练或微调 pipeline(结合外部工具)。
  • 支持 A/B 测试不同 prompt 或模型版本的效果。

5. 监控与告警(Monitoring)#

  • 实时监控生产环境中的 LLM 应用表现。
  • 跟踪错误率、延迟、token 消耗、成本等关键指标。
  • 可设置告警规则(如“当幻觉率 > 10% 时通知 Slack”)。

6. 无缝集成 LangChain / LangGraph#

  • 只需设置一个 API key,LangChain 应用自动上报 trace 到 LangSmith。
  • 对 LangGraph 的状态图(StateGraph)支持极佳,能清晰展示每一步的状态变迁。
import os
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = "your-api-key"
# 之后所有 LangChain/LangGraph 运行都会自动记录到 LangSmith
python

二、典型使用场景#

场景LangSmith 如何帮助
调试复杂 Agent查看哪一步工具调用失败,LLM 是否误解了指令
优化 Prompt对比不同 prompt 版本在相同数据集上的表现
上线前测试用历史对话数据做回归测试,确保不退化
生产监控发现某天用户满意度骤降,追溯是模型还是数据问题
团队协作共享 trace 和数据集,产品/算法/工程师对齐问题

三、一句话总结#

LangSmith 是 LLM 应用的“全生命周期管理平台”——从开发调试、自动化测试到生产监控,一站式搞定。

如果你正在用 LangChain 或 LangGraph 构建智能体、RAG 系统或多轮对话机器人,强烈建议接入 LangSmith,它能极大提升迭代效率和系统可靠性。


创建Agent项目本地测试环境#

LangChain 为我们提供了一个集成了 Studio 和 LangSmith 的测试环境,使得开发者可以在本地对 Agent 进行可视化、交互式调试和优化。其中,Studio 是一个专门面向 Agent 的集成开发环境(IDE),支持对基于智能体服务器 API 协议的代理系统进行可视化操作、实时交互和调试。它还集成了跟踪(追踪执行流程)、评估(自动或人工评价输出质量)以及提示工程(Prompt Engineering)等功能,帮助用户更高效地构建和改进智能体应用。同时,通过与 LangSmith 的深度集成,可以实现完整的应用监控、性能分析和持续优化。

1. 安装LangGraph CLI#

要安装 LangGraph 的命令行工具(CLI),首先需要确保 Python 版本不低于 3.11。然后,通过 pip 命令执行 pip install --upgrade "langgraph-cli[inmem]" 来安装或升级 LangGraph CLI,并启用其内存存储后端(in-memory backend),以便在本地快速测试和运行基于 LangGraph 构建的有状态工作流应用。

2. 配置LangSmith的环境变量#

要在项目中配置 LangSmith 的 API 密钥,请按以下步骤操作:

  1. 获取 API 密钥
    登录或注册 LangSmith 平台:https://smith.langchain.com
    进入后,点击右上角头像 → 选择 “Settings”(设置) → 在 “API Keys” 页面中创建或复制您的 API 密钥(格式通常以 lsv2_ 开头)。

  2. 创建 .env 文件
    在您项目的根目录下新建一个名为 .env 的文件(注意前面有一个点)。

  3. 填写环境变量
    .env 文件中添加如下内容,将 <your-api-key> 替换为您从 LangSmith 复制的实际密钥:

    LANGSMITH_API_KEY=lsv2_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    plaintext
  4. 启用追踪功能(可选但推荐)
    确保在代码或环境变量中开启 LangSmith 追踪:

    import os
    os.environ["LANGCHAIN_TRACING_V2"] = "true"
    python

    或在 .env 文件中一并添加:

    LANGCHAIN_TRACING_V2=true
    plaintext

完成以上配置后,只要您的应用使用了 LangChain 或 LangGraph,所有运行过程(如 Chain 调用、Agent 步骤、状态变更等)都会自动上报到 LangSmith 平台,您可以在 https://smith.langchain.com 上实时查看执行轨迹、调试问题并进行评估优化。

3. 创建LangGraph配置文件#

在应用程序的根目录中,创建一个名为 langgraph.json 的配置文件,用于定义 LangGraph 项目的结构和依赖关系。该文件以 JSON 格式编写,包含以下关键字段:

  • "dependencies":指定项目依赖的模块或路径,此处设置为 ["."],表示当前目录下的所有内容。
  • "graphs":定义要运行的图(Graph)及其对应的实现路径。示例中配置了一个名为 "agent" 的图,其代码位于 ./src/agent.py 文件中的 agent 对象。
  • "env":指定环境变量文件的路径,此处指向 .env 文件,用于加载 API 密钥等配置信息。

完整的配置文件内容如下:

{
  "dependencies": ["."],
  "graphs": {
    "agent": "./src/agent.py:agent"
  },
  "env": ".env"
}
json

此配置文件是使用 LangGraph CLI 进行本地开发、调试和运行 Agent 的必要组成部分,它让工具能够正确加载应用逻辑、环境变量并执行状态图流程。

创建好的项目结构如下:

在这里插入图片描述

4. 编写智能体项目代码#

5. 安装依赖项#

在新建的 LangGraph 应用项目的根目录中,需要安装项目依赖项。执行以下命令:

pip install -e .
bash

该命令的作用是:

  • -e 表示“editable”(可编辑模式),即以开发模式安装当前目录下的 Python 包。
  • . 表示当前目录,意味着会读取项目根目录中的 setup.pypyproject.toml 文件来识别并安装所需的依赖库。

使用这种方式安装后,你可以在不重新安装的情况下直接修改源代码,改动会立即生效,非常适合本地开发和调试。此步骤通常在创建 LangGraph 项目并准备运行或测试时执行。

6. 在Studio中查看代理#

在完成前面的配置和安装步骤后,您可以在 Studio 中查看并调试您的智能体(Agent)应用。具体操作如下:

启动本地的 Agent 服务器,只需在终端中运行以下命令:

langgraph dev
bash

该命令会启动一个本地开发服务器,并自动将您的 LangGraph 应用暴露给 LangChain Studio。

随后,您的智能体程序将通过 Studio 的用户界面进行访问,访问地址为:

👉 http://127.0.0.1:2024

通过这个链接,您可以进入 Studio UI,实现对 Agent 的可视化交互、实时调试、状态追踪和流程监控等功能,从而更高效地开发和优化您的 LLM 应用。

Tips:推荐使用隔离环境,或者自己创建虚拟环境都可以。Python 内置的 venv 模块可以用来创建隔离的虚拟环境。下面是创建隔离环境的教程:

✅ 步骤如下:

# 1. 进入你的项目根目录
cd /path/to/your/agent-project

# 2. 创建虚拟环境(建议命名为 .venv 或 venv)
python -m venv .venv

# 3. 激活虚拟环境
source .venv/bin/activate
bash

激活后,你会看到命令行前缀出现 (.venv),表示已进入虚拟环境。

✅ 安装项目依赖#

pyproject.toml 是来自官方的,虽然 pyproject.toml 不会自动创建虚拟环境,但它定义了项目依赖。你可以用以下命令安装:

# 安装项目本身及其依赖(以可编辑模式)
pip install -e .
bash

💡 -e . 表示“editable install”,即从当前目录安装,并读取 pyproject.toml[project][project.optional-dependencies] 的配置。

这样就能确保你的 LangGraph + LangChain 项目在一个干净、可复现的环境中运行。

最后展示一下LangSmith Studio运行起来的界面:

在这里插入图片描述

Agent实战(一)Agent、LangChain、LangGraph和LangSmith
http://www.soupcola.top/blog/agent_blogs/agent_blogs-1
Author Soup Cola
Published at 2026年2月12日