Skip to content

快速入门

更新: 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)

Released under the MIT License.