LangChain 中文课
返回体系图 文章库
第 01 课,共 7 课:第一个 Agent

第 01 课,共 7 课

运行第一个 Agent

安装 LangChain,接入一个国内可用的模型,让模型主动调用天气工具并返回结果。

零基础 15 分钟 Python
完成本课后

你应该能做到

  • 知道 Agent、模型和工具分别负责什么
  • 完成 DeepSeek 模型与 LangChain 的连接
  • 看到模型根据问题主动调用 Python 函数
01

先准备一个干净环境

官方快速开始从安装依赖和配置模型密钥开始。下面以 Python 和 DeepSeek 为例,Windows、macOS、Linux 都可以使用。

不要把真实 API Key 写进代码或提交到 Git。只在当前终端设置环境变量。

终端
python -m venv .venv

# Windows PowerShell
.\.venv\Scripts\Activate.ps1

# macOS 或 Linux
# source .venv/bin/activate

pip install -U langchain langchain-deepseek
02

设置模型密钥

LangChain 不提供模型本身,它通过独立的 provider 包连接模型。DeepSeek 的官方 LangChain 集成包是 langchain-deepseek。

环境变量
# Windows PowerShell
$env:DEEPSEEK_API_KEY="你的 API Key"

# macOS 或 Linux
# export DEEPSEEK_API_KEY="你的 API Key"

DeepSeek 官方集成文档明确说明,deepseek-chat 支持工具调用,deepseek-reasoner 不支持工具调用。本课必须使用 deepseek-chat。

03

创建一个会调用工具的 Agent

工具就是一个带有清晰名称、参数类型和说明的 Python 函数。模型不会直接执行 Python,它只决定何时调用工具,LangChain 负责执行并把结果送回模型。

把下面代码保存为 agent.py,然后运行 python agent.py。

agent.py
from langchain.agents import create_agent
from langchain_deepseek import ChatDeepSeek


def get_weather(city: str) -> str:
    """查询指定城市的天气。"""
    return f"{city} 今天晴,温度 26 摄氏度。"


model = ChatDeepSeek(model="deepseek-chat", temperature=0)
agent = create_agent(
    model=model,
    tools=[get_weather],
    system_prompt="你是一个简洁的中文助手。需要天气信息时必须调用工具。",
)

result = agent.invoke(
    {"messages": [{"role": "user", "content": "北京今天天气怎么样?"}]}
)
print(result["messages"][-1].content)
04

你刚才完成了什么

用户问题先进入模型。模型从工具说明中判断 get_weather 可以回答问题,于是生成工具调用。LangChain 执行函数并把结果返回模型,模型再组织成最终中文回答。

这就是 LangChain Agent 的最小闭环。后面所有复杂能力,都是在这个闭环上增加记忆、知识库、流程控制和生产观测。

  • 模型负责理解和决策
  • 工具负责访问真实能力或数据
  • Agent 负责协调模型和工具
不要凭感觉结束

本课完成标准

  • 终端没有 ModuleNotFoundError
  • 最终输出包含北京、晴和温度信息
  • 代码中没有写入真实 API Key
遇到问题先看这里

常见错误

模型直接回答,没有调用工具

确认模型是 deepseek-chat,并让工具 docstring 和 system_prompt 明确说明使用条件。

提示 DEEPSEEK_API_KEY 不存在

在运行 Python 的同一个终端窗口重新设置环境变量。

内容来源

依据官方文档中文整理

代码和概念来自 LangChain 官方固定提交。中文解释用于降低学习门槛,英文原文只作为核对入口。

固定提交 08ae2610bd712a4a340d59f27122bea97a0a598d