🤖 什么是 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 类型
🔀 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")