第 01 课,共 7 课
运行第一个 Agent
安装 LangChain,接入一个国内可用的模型,让模型主动调用天气工具并返回结果。
你应该能做到
- 知道 Agent、模型和工具分别负责什么
- 完成 DeepSeek 模型与 LangChain 的连接
- 看到模型根据问题主动调用 Python 函数
先准备一个干净环境
官方快速开始从安装依赖和配置模型密钥开始。下面以 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
设置模型密钥
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。
创建一个会调用工具的 Agent
工具就是一个带有清晰名称、参数类型和说明的 Python 函数。模型不会直接执行 Python,它只决定何时调用工具,LangChain 负责执行并把结果送回模型。
把下面代码保存为 agent.py,然后运行 python 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)
你刚才完成了什么
用户问题先进入模型。模型从工具说明中判断 get_weather 可以回答问题,于是生成工具调用。LangChain 执行函数并把结果返回模型,模型再组织成最终中文回答。
这就是 LangChain Agent 的最小闭环。后面所有复杂能力,都是在这个闭环上增加记忆、知识库、流程控制和生产观测。
- 模型负责理解和决策
- 工具负责访问真实能力或数据
- Agent 负责协调模型和工具
本课完成标准
- 终端没有 ModuleNotFoundError
- 最终输出包含北京、晴和温度信息
- 代码中没有写入真实 API Key
常见错误
确认模型是 deepseek-chat,并让工具 docstring 和 system_prompt 明确说明使用条件。
在运行 Python 的同一个终端窗口重新设置环境变量。
依据官方文档中文整理
代码和概念来自 LangChain 官方固定提交。中文解释用于降低学习门槛,英文原文只作为核对入口。
固定提交 08ae2610bd712a4a340d59f27122bea97a0a598d