Skip to content

Agents 智能体

Agent 是一个模型在循环中调用工具,直到完成任务。

Agent = 模型 + 框架 (Harness)

框架的工作是:在正确的时间为模型提供正确的上下文。

create_agent 是一个高度可配置的框架。最简形式:

python
from langchain.agents import create_agent

agent = create_agent("openai:gpt-4o", tools=tools)

直接配置基础参数 —— model=tools=system_prompt=。对于更高级的能力,通过中间件扩展框架。

核心组件

模型

传入模型标识字符串("provider:model")或已初始化的模型实例。

python
from langchain.agents import create_agent

agent = create_agent("openai:gpt-4o", tools=tools)

支持的提供商:OpenAI、Anthropic、Google Gemini、Ollama、Azure OpenAI、AWS Bedrock 等。详见模型接口

工具

传入任意 Python 可调用对象、LangChain 工具或工具字典。

python
from langchain.tools import tool

@tool
def search(query: str) -> str:
    """搜索信息"""
    return f"搜索结果: {query}"

agent = create_agent("openai:gpt-4o", tools=[search])

详见工具调用

系统提示词

塑造 Agent 处理任务的方式。接受字符串或 SystemMessage

python
agent = create_agent(
    "openai:gpt-4o",
    tools=tools,
    system_prompt="你是一个乐于助人的助手。请保持简洁准确。",
)

结构化输出

使用 response_format= 从 Agent 返回经过验证的 schema。

python
from pydantic import BaseModel
from langchain.agents import create_agent

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

agent = create_agent(
    "openai:gpt-4o",
    tools=tools,
    response_format=Answer,
)

result = agent.invoke({
    "messages": [{"role": "user", "content": "总结 AI 趋势"}]
})
result["structured_response"]  # Answer(summary=..., confidence=...)

名称

作为子图嵌入多 Agent 系统时的节点名称。

python
agent = create_agent(
    "openai:gpt-4o",
    tools=tools,
    name="research_assistant",
)

调用 Agent

所有 Agent 的状态中都包含一个消息序列。要调用 Agent,传入新消息和 thread_id

python
from langchain.agents import create_agent
from langchain_core.utils.uuid import uuid7
from langgraph.checkpoint.memory import InMemorySaver

agent = create_agent(
    model="openai:gpt-4o",
    tools=[],
    checkpointer=InMemorySaver(),
)

config = {"configurable": {"thread_id": str(uuid7())}}

result = agent.invoke(
    {"messages": [{"role": "user", "content": "上海今天天气怎么样?"}]},
    config=config,
)

# 同一会话的后续轮次:复用同一个 thread_id
result = agent.invoke(
    {"messages": [{"role": "user", "content": "那明天呢?"}]},
    config=config,
)

配置框架

create_agent 支持多种配置选项来定制 Agent 行为:

参数类型说明
modelstr模型标识符,如 "openai:gpt-4o"
toolsList工具列表
system_promptstr系统提示词
response_formatType[BaseModel]结构化输出 schema
namestrAgent 名称
checkpointerBaseCheckpointSaver持久化/历史记忆
context_schemaType[dataclass]上下文数据 schema
middlewareList中间件列表

运行时上下文

Agent 可以接收额外的上下文数据:

python
from dataclasses import dataclass
from langchain.agents import create_agent

@dataclass
class Context:
    user_id: str

agent = create_agent(
    model="openai:gpt-4o",
    tools=[],
    context_schema=Context,
)

result = agent.invoke(
    {"messages": [{"role": "user", "content": "信息查询"}]},
    config={"configurable": {"thread_id": "123"}},
    context=Context(user_id="user-123"),
)

下一步

本站为非官方中文学习站点,不代表 LangChain 官方。部分内容参考官方文档并重新整理为中文学习笔记。