快速上手

本章用 LangChain 1.0create_agent 完成第一个可调用工具的 Agent。


最小 Agent

from langchain.agents import create_agent

def get_weather(city: str) -> str:
    """Return fake weather for demo."""
    return f"It's sunny in {city}."

agent = create_agent(
    "openai:gpt-4.1-mini",
    tools=[get_weather],
    system_prompt="You are a helpful assistant. Use tools when needed.",
)

result = agent.invoke({
    "messages": [{"role": "user", "content": "What's the weather in Shanghai?"}]
})

print(result["messages"][-1].content)

发生了什么:

  1. 模型收到用户问题
  2. 决定调用 get_weather
  3. 框架执行工具并把结果塞回上下文
  4. 模型生成最终自然语言回答

使用 @tool 装饰器

推荐为工具添加类型与 docstring,便于模型理解参数:

from langchain.tools import tool
from langchain.agents import create_agent

@tool
def search(query: str) -> str:
    """Search the web for information."""
    return f"Results for: {query}"

agent = create_agent("openai:gpt-4.1-mini", tools=[search])

流式输出

for chunk in agent.stream(
    {"messages": [{"role": "user", "content": "Explain RAG in one paragraph."}]},
    stream_mode="messages",
):
    if chunk.content:
        print(chunk.content, end="", flush=True)

stream_mode 还可为 updates(按节点更新),便于观察工具调用阶段。


结构化输出

需要固定 JSON / Pydantic schema 时:

from pydantic import BaseModel
from langchain.agents import create_agent

class Answer(BaseModel):
    summary: str
    confidence: float

agent = create_agent(
    "openai:gpt-4.1-mini",
    tools=[],
    response_format=Answer,
)

result = agent.invoke({
    "messages": [{"role": "user", "content": "Summarize LangChain 1.0 in one sentence."}]
})
print(result["structured_response"])

带记忆的对话(预览)

多轮对话需要 checkpointerthread_id(详见 记忆与检查点):

from langchain.agents import create_agent
from langgraph.checkpoint.memory import InMemorySaver

agent = create_agent(
    "openai:gpt-4.1-mini",
    tools=[],
    checkpointer=InMemorySaver(),
)

config = {"configurable": {"thread_id": "demo-thread-1"}}

agent.invoke(
    {"messages": [{"role": "user", "content": "My name is Alex."}]},
    config=config,
)
result = agent.invoke(
    {"messages": [{"role": "user", "content": "What's my name?"}]},
    config=config,
)
print(result["messages"][-1].content)

第一个任务清单

  1. 创建 venv 并 pip install langchain langgraph langchain-openai
  2. 设置 OPENAI_API_KEY
  3. 运行最小 Agent 脚本
  4. 加一个 @tool 并观察模型何时调用
  5. 尝试 streamcheckpointer

下一步