

代码开源Github ↗
🤖 什么是 Agent(智能体)?#
Agent 是一个能“自己思考并行动”的 AI 程序。
它不只是被动地回答问题,而是:
- 听懂你的目标(比如“查上个月销量”)
- 自己规划怎么做(比如:先写 SQL → 查数据库 → 整理结果)
- 调用工具完成任务(如访问数据库、搜索网页、运行代码)
- 把结果告诉你(用自然语言总结)
💡 简单说:Agent = 能自动做事的 AI 助手,不是只能聊天的“问答机”。
基于您提供的图片内容,以下是关于 LangChain 中 Agent 及其组成的简单介绍:
Agent 是一个能够通过循环调用工具来完成复杂目标的智能系统。它不像传统程序那样按固定流程执行,而是更像一位智能项目经理,能够自主规划、决策和执行任务。
Agent 的工作流程
- 输入:接收用户请求
- 模型推理:LLM 作为”大脑”分析任务,决定下一步行动
- 循环执行:
- 行动:选择并调用合适的工具
- 观察:获取工具执行结果
- 输出:满足停止条件后,生成最终结果
Agent 的四大核心组件
| 组件 | 角色 | 功能描述 |
|---|---|---|
| 模型(Model) | 大脑 | 负责推理和决策,支持多种LLM提供商,基于思维链模式分解复杂问题 |
| 工具(Tools) | 手脚 | Agent的能力扩展接口,提供300+预置功能(搜索、计算、数据库操作等) |
| 记忆(Memory) | 记忆库 | 维护短期对话上下文和长期知识存储,支持跨轮次协作 |
| AgentExecutor | 协调器 | 控制执行流程,处理循环、异常,确保任务顺利完成 |
Agent 的三大核心能力#
- 动态任务路由:根据输入内容智能规划执行路径
- 生态化工具集成:访问丰富的工具接口覆盖多领域需求
- 全周期记忆管理:同时维护短期上下文和长期知识存储
这种架构使 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 特别适合构建需要长期运行、状态持久化、行为复杂且可控的自主智能体,例如模拟角色、复杂的决策支持系统或自动化工作流引擎。
对比总结#
| 特性 | LangChain | LangGraph |
|---|---|---|
| 核心定位 | 快速构建功能完善的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 运行都会自动记录到 LangSmithpython二、典型使用场景#
| 场景 | 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 密钥,请按以下步骤操作:
-
获取 API 密钥
登录或注册 LangSmith 平台:https://smith.langchain.com ↗。
进入后,点击右上角头像 → 选择 “Settings”(设置) → 在 “API Keys” 页面中创建或复制您的 API 密钥(格式通常以lsv2_开头)。 -
创建
.env文件
在您项目的根目录下新建一个名为.env的文件(注意前面有一个点)。 -
填写环境变量
在.env文件中添加如下内容,将<your-api-key>替换为您从 LangSmith 复制的实际密钥:
plaintextLANGSMITH_API_KEY=lsv2_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -
启用追踪功能(可选但推荐)
确保在代码或环境变量中开启 LangSmith 追踪:
pythonimport os os.environ["LANGCHAIN_TRACING_V2"] = "true"或在
.env文件中一并添加:
plaintextLANGCHAIN_TRACING_V2=true
完成以上配置后,只要您的应用使用了 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. 编写智能体项目代码#
@tool
def send_email(to: str, subject: str, body: str):
"""发送邮件"""
email = {
"to": to,
"subject": subject,
"body": body
}
# ...邮件发送逻辑
return f"邮件已发送至 {to}"
# 创建 React Agent
agent_executor = create_agent(
model=llm,
tools=[send_email],
system_prompt="你是一个邮件助手。当用户需要发送邮件时,请使用 send_email 工具。"
)python5. 安装依赖项#
在新建的 LangGraph 应用项目的根目录中,需要安装项目依赖项。执行以下命令:
pip install -e .bash该命令的作用是:
-e表示“editable”(可编辑模式),即以开发模式安装当前目录下的 Python 包。.表示当前目录,意味着会读取项目根目录中的setup.py或pyproject.toml文件来识别并安装所需的依赖库。
使用这种方式安装后,你可以在不重新安装的情况下直接修改源代码,改动会立即生效,非常适合本地开发和调试。此步骤通常在创建 LangGraph 项目并准备运行或测试时执行。
6. 在Studio中查看代理#
在完成前面的配置和安装步骤后,您可以在 Studio 中查看并调试您的智能体(Agent)应用。具体操作如下:
启动本地的 Agent 服务器,只需在终端中运行以下命令:
langgraph devbash该命令会启动一个本地开发服务器,并自动将您的 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/activatebash激活后,你会看到命令行前缀出现 (.venv),表示已进入虚拟环境。
✅ 安装项目依赖#
pyproject.toml 是来自官方的,虽然 pyproject.toml 不会自动创建虚拟环境,但它定义了项目依赖。你可以用以下命令安装:
# 安装项目本身及其依赖(以可编辑模式)
pip install -e .bash💡
-e .表示“editable install”,即从当前目录安装,并读取pyproject.toml中[project]和[project.optional-dependencies]的配置。
这样就能确保你的 LangGraph + LangChain 项目在一个干净、可复现的环境中运行。
最后展示一下LangSmith Studio运行起来的界面:
