J'Blog

1 课 · 入门

语义检索

基于 Chroma 向量库,与 Workspace 知识库分离。用自然语言描述你想查的内容。 非管理员每人每天可检索 5 次(消耗站点 AI 配额)。

LangChain Agent 开发总览

原文:LangChain 总览

一句话

LangChain 提供了 create_agent:一个最小化、高度可配置的 agent harness,可通过组合 model、tools、prompt 和 middleware 来精确构建您的用例所需的 agent。

什么时候翻这页

  • 当您需要了解 LangChain Agent 的基本架构和核心概念时
  • 当您想使用 create_agent 构建自定义 agent 时
  • 当您需要比较 LangChain、LangGraph 和 Deep Agents 的区别时
  • 当您需要了解如何集成不同模型提供商(OpenAI、Anthropic、Google 等)到您的 agent 中时

核心概念

Agent = Model + Harness

LangChain 的核心是将模型(Model)与框架(Harness)分离:

  • Model:底层语言模型,可以是 OpenAI、Anthropic、Google 等提供商的模型
  • Harness:围绕模型循环的一切,包括 prompt、tools 和任何塑造行为的 middleware

create_agent

create_agent 是 LangChain 提供的最小化、高度可配置的 agent harness。它允许您从基本组件开始,精确组合您的用例所需的内容,不多不少。

Middleware

Middleware 是可插入的组件,用于扩展 agent 的行为。每个 middleware 处理一个关注点,可以自由组合,从而实现高度定制化的 agent 行为。

Tools

Tools 是 agent 可以调用的函数,用于扩展 agent 的能力。例如,天气查询工具、计算工具、API 调用工具等。

怎么做

创建基本 Agent

使用 create_agent 创建一个简单的 agent:

from langchain.agents import create_agent

def get_weather(city: str) -> str:
    """Get weather for a given city."""
    return f"It's always sunny in {city}!"

agent = create_agent(
    model="openai:gpt-5.4",
    tools=[get_weather],
    system_prompt="You are a helpful assistant",
)

result = agent.invoke(
    {"messages": [{"role": "user", "content": "What's the weather in San Francisco?"}]}
)
print(result["messages"][-1].content_blocks)

支持的模型提供商

LangChain 支持多种模型提供商:

  • OpenAI
  • Anthropic (Claude)
  • Google (Gemini)
  • OpenRouter
  • Fireworks
  • Baseten
  • Ollama
  • Azure OpenAI
  • AWS Bedrock
  • HuggingFace

每个提供商需要安装相应的包并使用特定的模型格式。

命令 / API 速查

安装

# 基础安装
pip install -qU langchain

# 带特定提供商的安装
pip install -qU langchain "langchain[openai]"
pip install -qU langchain "langchain[anthropic]"
pip install -qU langchain "langchain[google-genai]"
# 其他提供商类似

创建 Agent

from langchain.agents import create_agent

agent = create_agent(
    model="provider:model-name",
    tools=[your_tool_function],
    system_prompt="Your system prompt here",
    # 可选参数
    temperature=0.7,
    max_tokens=1024,
    # 特定提供商参数
    azure_deployment="your-deployment-name",  # Azure OpenAI
    model_provider="huggingface",  # HuggingFace
)

调用 Agent

result = agent.invoke(
    {"messages": [{"role": "user", "content": "Your question here"}]}
)

与 LangGraph / RAG 手册的联系

  • LangChain:提供高层级的 harness,专注于快速构建和定制 agent
  • LangGraph:提供底层的编排框架,适合需要结合确定性和 agent 工作流的复杂场景
  • RAG:可以与 LangChain agent 结合使用,为 agent 提供检索增强能力

LangChain 的 agent 构建在 LangGraph 之上,利用了 LangGraph 的持久执行、人工参与支持和持久化等功能。

初学者易错点

  1. 混淆 LangChain 和 LangGraph:LangChain 是高层级的 harness,LangGraph 是底层的编排框架
  2. 忽略模型提供商前缀:每个模型需要指定提供商前缀,如 openai:gpt-5.4
  3. 错误的消息格式invoke 方法需要特定的消息格式,包含 role 和 content
  4. 未安装必要的包:使用特定提供商时需要安装相应的包,如 langchain[openai]
  5. 过度配置:从最小配置开始,根据需要添加 middleware 和复杂功能

相关词条

  • create_agent - 创建 agent 的核心函数
  • model - 标准化模型接口
  • tool - agent 可用的工具
  • middleware - 可插入的行为扩展组件
  • LangGraph - LangChain 构建其 agent 的底层框架
  • LangSmith - 用于追踪、调试和评估 agent 的平台

官方原文:https://docs.langchain.com/oss/python/langchain/overview