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 行为:
| 参数 | 类型 | 说明 |
|---|---|---|
model | str | 模型标识符,如 "openai:gpt-4o" |
tools | List | 工具列表 |
system_prompt | str | 系统提示词 |
response_format | Type[BaseModel] | 结构化输出 schema |
name | str | Agent 名称 |
checkpointer | BaseCheckpointSaver | 持久化/历史记忆 |
context_schema | Type[dataclass] | 上下文数据 schema |
middleware | List | 中间件列表 |
运行时上下文
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"),
)下一步
- Tools 工具调用 —— 深入了解工具定义与使用
- Structured Output —— 结构化输出策略
- Runtime 与上下文 —— 运行时上下文管理
- Memory 记忆 —— 短时与长时记忆