🤖 什么是 Agent?

Agent 是能够自主决策、动态调用工具的智能体。与 Chain 的固定流程不同,Agent 会根据输入决定执行哪些操作。

🛠️ 定义工具

from langchain.tools import tool

@tool
def get_weather(city: str) -> str:
"""获取城市天气"""
return f"{city}今天晴朗"

@tool
def search_web(query: str) -> str:
"""搜索网络"""
return f"搜索结果:{query}"

🎯 创建 Agent

from langchain.agents import create_agent
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4")

agent = create_agent(
model=llm,
tools=[get_weather, search_web],
system_prompt="你是一个有用的助手"
)

# 运行
result = agent.invoke({
"messages": [{"role": "user", "content": "北京天气怎么样?"}]
})

📊 Agent 类型

类型说明
ReAct Agent推理+行动循环
Tool Calling Agent函数调用(推荐)
OpenAI Functions AgentOpenAI 原生函数调用
Structured Chat Agent多输入结构化工具

🔀 LangGraph 状态图

用于构建复杂的多代理协作:

from langgraph.graph import StateGraph

# 定义状态
workflow = StateGraph(AgentState)

# 添加节点
workflow.add_node("agent", agent_node)
workflow.add_node("tools", tool_node)

# 定义边
workflow.add_edge("agent", "tools")
workflow.add_edge("tools", "agent")
上一页:Chains 链下一页:Memory 记忆