Agent智能体
Agent(智能体)是一个通过动态协调大语言模型(LLM)和**工具(Tools)来完成复杂任务的智能系统。
它让LLM充当“决策大脑”,根据用户输入自主选择和执行工具(如搜索、计算、数据库查询等),最终生成精准的响应
核心能力
作为一个智能体,需要具备以下核心能力:
1)大模型(LLM):作为大脑,提供推理、规划和知识理解能力。
2)记忆(Memory):具备短期记忆(上下文)和长期记忆(向量存储),支持快速知识检索
3)工具(Tool):调用外部工具(如API、数据库)的执行单元
4)规划(Planning):任务分解、反思与自省框架实现复杂任务处理
5)行动(Action):实际执行决策的能力
6)协作:通过与其他智能体交互合作,完成更复杂的任务目标
Agent创建
from langchain.agents import create_agent
from langchain_community.chat_models import ChatTongyi
agent = create_agent(
model=ChatTongyi(model="qwen3-max"),
tools=[],
system_prompt="你是一个聊天助手,可以回答用户问题"
)
res = agent.invoke(
{
"messages": [
{"role": "user", "content": "明天苏州天气如何?"},
]
}
)
print(res)
调用工具
from langchain.agents import create_agent
from langchain_community.chat_models import ChatTongyi
from langchain_core.tools import tool
@tool(description="获取天气")
def get_wether():
return "晴天"
agent = create_agent(
model=ChatTongyi(model="qwen3-max"),
tools=[get_wether],
system_prompt="你是一个聊天助手,可以回答用户问题"
)
res = agent.invoke(
{
"messages": [
{"role": "user", "content": "明天苏州天气如何?"},
]
}
)
for msg in res["messages"]:
print(type(msg).__name__, msg.content)
输出:
HumanMessage 明天苏州天气如何?
AIMessage
ToolMessage 晴天
AIMessage 明天苏州的天气是晴天,适合外出活动!记得做好防晒哦~
流式输出
通过create_agent方法可以创建Agent对象,其也是Runnable接口的子类实现,也拥有:
- invoke,执行,一次得到完整结果
- stream,执行,流式输出得到结果
from langchain.agents import create_agent
from langchain_community.chat_models import ChatTongyi
from langchain_core.tools import tool
@tool(description="获取天气")
def get_wether():
return "晴天"
@tool(description="获取温度")
def get_temp():
return "26度"
agent = create_agent(
model=ChatTongyi(model="qwen3-max"),
tools=[get_wether, get_temp],
system_prompt="你是一个聊天助手,可以回答用户问题"
)
for chunk in agent.stream(
{
"messages": [
{"role": "user", "content": "明天苏州天气气温如何?"},
]
},
stream_mode="values"
):
latest_message = chunk["messages"][-1]
if latest_message.content:
print(type(latest_message).__name__, latest_message.content)
try:
if latest_message.tool_calls:
print(f"工具调用: { [tc['name'] for tc in latest_message.tool_calls] }")
except AttributeError as e:
pass
来源:https://www.cnblogs.com/1873cy/p/19698084 |