快速入门
更新: 4/9/2026 字数: 0 字 时长: 0 分钟
本章通过实际案例,带你快速上手 LangChain Agent 开发。
最小 Agent
10 行代码构建 Agent
python
# 1. 导入
from langchain.agents import create_agent
# 2. 定义工具(普通函数)
def get_weather(city: str) -> str:
"""获取城市天气"""
return f"{city}今天晴朗,温度25°C"
# 3. 创建 Agent
agent = create_agent(
model="anthropic:claude-sonnet-4-6", # 使用的模型
tools=[get_weather], # 可用工具
system_prompt="你是一个有用的助手" # 系统提示
)
# 4. 执行
response = agent.invoke({
"messages": [{"role": "user", "content": "北京的天气怎么样?"}]
})
print(response["messages"][-1].content)详细解析
python
# create_agent 函数签名
def create_agent(
model: str | BaseChatModel, # 模型:字符串或实例
tools: list[Callable], # 工具列表
system_prompt: str | None = None, # 系统提示
checkpointer: BaseCheckpointSaver | None = None, # 记忆持久化
interrupt_before: list[str] | None = None, # 中断点
interrupt_after: list[str] | None = None, # 后中断点
) -> Callable带工具的 Agent
定义多个工具
python
from langchain.agents import create_agent
# 工具 1:天气查询
def get_weather(city: str) -> str:
"""获取指定城市的天气信息"""
weathers = {
"北京": "晴,25°C",
"上海": "多云,28°C",
}
return weathers.get(city, "未知城市")
# 工具 2:数学计算
def calculator(expression: str) -> str:
"""计算数学表达式"""
try:
result = eval(expression)
return str(result)
except Exception as e:
return f"计算错误: {e}"
# 工具 3:文本处理
def uppercase(text: str) -> str:
"""将文本转换为大写"""
return text.upper()
# 组合工具
tools = [get_weather, calculator, uppercase]
# 创建 Agent
agent = create_agent(
model="anthropic:claude-sonnet-4-6",
tools=tools,
system_prompt="你是一个多功能的 AI 助手。"
)带记忆的 Agent
添加 Checkpointer
python
from langchain.agents import create_agent
from langgraph.checkpoint.memory import InMemorySaver
# 1. 创建记忆检查点
checkpointer = InMemorySaver()
# 2. 创建带记忆的 Agent
agent = create_agent(
model="anthropic:claude-sonnet-4-6",
tools=[get_weather, calculator],
system_prompt="你是一个有用的助手",
checkpointer=checkpointer
)多轮对话
python
# 配置:thread_id 区分不同会话
config = {"configurable": {"thread_id": "user_alice"}}
# 第一次对话
response1 = agent.invoke(
{"messages": [{"role": "user", "content": "我叫张三"}]},
config=config
)
# 第二次对话(Agent 会记住名字)
response2 = agent.invoke(
{"messages": [{"role": "user", "content": "我叫什么名字?"}]},
config=config
)完整示例
项目:天气助手
python
"""
天气助手 - 完整示例
功能:
1. 查询城市天气
2. 根据天气给出建议
3. 多轮对话记忆
"""
from langchain.agents import create_agent
from langgraph.checkpoint.memory import InMemorySaver
def get_weather(city: str) -> str:
"""获取城市天气预报"""
weather_db = {
"北京": {"weather": "晴", "temp": 25, "aqi": 50},
"上海": {"weather": "多云", "temp": 28, "aqi": 80},
}
if city in weather_db:
info = weather_db[city]
return f"{city}:{info['weather']},温度{info['temp']}°C"
return f"抱歉,暂不支持查询 {city} 的天气"
# Agent
checkpointer = InMemorySaver()
agent = create_agent(
model="anthropic:claude-sonnet-4-6",
tools=[get_weather],
system_prompt="你是一个专业的天气助手。",
checkpointer=checkpointer
)
if __name__ == "__main__":
config = {"configurable": {"thread_id": "weather_session"}}
response = agent.invoke(
{"messages": [{"role": "user", "content": "北京今天适合穿什么出门?"}]},
config=config
)
print(f"助手: {response['messages'][-1].content}")本章小结
快速参考
────────────────────────────────────────────────────────
# 最小 Agent
agent = create_agent(model, tools, system_prompt)
agent.invoke({"messages": [...]})
# 带记忆
checkpointer = InMemorySaver()
agent = create_agent(model, tools, prompt, checkpointer=checkpointer)
config = {"configurable": {"thread_id": "xxx"}}
agent.invoke({"messages": [...]}, config=config)