2.2 Quickstart
本节通过一个完整示例快速上手 LangChain。
准备工作
- 安装 LangChain 和模型集成包
- 配置 API 密钥
bash
pip install -U langchain langchain-anthropic langgraph
export ANTHROPIC_API_KEY="sk-ant-..."第一个 Agent
用不到 10 行代码创建一个能调用工具的 Agent:
python
from langchain.agents import create_agent
def get_weather(city: str) -> str:
"""获取指定城市的天气"""
return f"{city}今天晴,气温 25 度"
agent = create_agent(
"claude-sonnet-4-5-20250929",
tools=[get_weather],
system_prompt="你是一个有帮助的助手",
)
result = agent.invoke(
{"messages": [{"role": "user", "content": "北京天气怎么样?"}]}
)
print(result["messages"][-1].content)生产级 Agent 六步骤
步骤 1:定义系统提示词
系统提示词塑造 Agent 的行为和个性:
python
system_prompt = """你是一位专业的天气预报员,说话风格幽默。
你的职责:
1. 根据用户位置提供天气信息
2. 给出穿衣建议
3. 用轻松的方式表达
"""步骤 2:创建工具
工具让 Agent 能够获取外部数据:
python
from langchain_core.tools import tool
@tool
def get_weather(city: str) -> str:
"""获取指定城市的当前天气"""
# 实际应用中调用天气 API
weather_data = {
"北京": "晴,25度,微风",
"上海": "多云,28度,湿度较大",
"广州": "阵雨,30度,记得带伞",
}
return weather_data.get(city, f"{city}天气数据暂不可用")
@tool
def get_user_location() -> str:
"""获取用户当前位置"""
# 实际应用中获取 IP 定位等
return "北京"步骤 3:配置模型
设置模型参数:
python
from langchain_anthropic import ChatAnthropic
model = ChatAnthropic(
model="claude-sonnet-4-5-20250929",
temperature=0.7, # 适度创意
max_tokens=1000, # 限制输出长度
timeout=30, # 超时设置
max_retries=2, # 重试次数
)步骤 4:结构化输出
使用 dataclass 定义输出格式:
python
from dataclasses import dataclass
@dataclass
class WeatherReport:
"""天气报告结构"""
city: str
temperature: str
condition: str
suggestion: str步骤 5:添加记忆
使用 checkpointer 维护对话上下文:
python
from langgraph.checkpoint.memory import InMemorySaver
checkpointer = InMemorySaver()步骤 6:组装 Agent
将所有组件组合:
python
from langchain.agents import create_agent
agent = create_agent(
model=model,
tools=[get_weather, get_user_location],
system_prompt=system_prompt,
checkpointer=checkpointer,
)完整示例
python
from langchain.agents import create_agent
from langchain_anthropic import ChatAnthropic
from langchain_core.tools import tool
from langgraph.checkpoint.memory import InMemorySaver
# 1. 系统提示词
system_prompt = """你是一位幽默的天气预报员。
根据天气给出穿衣建议,用轻松的方式表达。"""
# 2. 定义工具
@tool
def get_weather(city: str) -> str:
"""获取指定城市的天气"""
return f"{city}:晴,25度,微风徐徐"
@tool
def get_location() -> str:
"""获取用户位置"""
return "北京"
# 3. 配置模型
model = ChatAnthropic(
model="claude-sonnet-4-5-20250929",
temperature=0.7
)
# 4. 添加记忆
checkpointer = InMemorySaver()
# 5. 创建 Agent
agent = create_agent(
model=model,
tools=[get_weather, get_location],
system_prompt=system_prompt,
checkpointer=checkpointer,
)
# 6. 运行对话
config = {"configurable": {"thread_id": "user-001"}}
# 第一轮对话
response1 = agent.invoke(
{"messages": [{"role": "user", "content": "我在哪里?天气如何?"}]},
config=config
)
print("助手:", response1["messages"][-1].content)
# 第二轮对话 - Agent 记住了上下文
response2 = agent.invoke(
{"messages": [{"role": "user", "content": "那我需要带伞吗?"}]},
config=config
)
print("助手:", response2["messages"][-1].content)Agent 工作流程
用户输入
↓
Agent 接收消息
↓
LLM 分析意图
↓
决定是否调用工具 ←──┐
↓ │
调用工具获取数据 │
↓ │
LLM 处理工具结果 ────┘
↓
生成最终回复
↓
返回给用户流式输出
实时显示 Agent 的思考过程:
python
# 使用 stream 方法
for event in agent.stream(
{"messages": [{"role": "user", "content": "今天穿什么好?"}]},
config=config,
stream_mode="updates"
):
print(event)下一步
恭喜完成快速入门!接下来可以:
- 阅读 2.3 Philosophy 了解设计理念
- 深入学习 3.0 Core Components
- 探索更多工具集成
上一节:2.1 Install
下一节:2.3 Philosophy