Agent 是能自主规划、使用工具、完成复杂任务的 AI 系统。
Chat:你问,LLM 答
用户: "北京天气?" LLM: "抱歉,我没有实时数据..."
Agent:LLM 决定调用工具
用户: "北京天气?" LLM: 需要调用天气API → 获取数据 → 生成回答
1. Planning(规划)
2. Memory(记忆)
3. Tools(工具)
1. 接收任务 ↓ 2. 规划步骤 (Plan) ↓ 3. 选择工具 (Tool Selection) ↓ 4. 执行工具 (Tool Execution) ↓ 5. 观察结果 (Observation) ↓ 6. 反思调整 (Reflection) ↓ 7. 重复 3-6 直到完成
1. ReAct Agent
2. Plan-and-Execute Agent
3. Multi-Agent
4. Autonomous Agent
| 框架 | 特点 | 适用场景 |
|---|---|---|
| LangChain | 最流行,生态丰富 | 通用 |
| CrewAI | 多 Agent 协作 | 团队协作任务 |
| AutoGen | Microsoft 开源 | 多 Agent 对话 |
| OpenAI Agents | 官方支持 | GPT-4o 集成 |
| Claude Computer Use | 直接操作电脑 | GUI 自动化 |
搜索类
代码类
文件类
API 类
from langchain.agents import create_openai_functions_agent, AgentExecutor
from langchain.tools import Tool
from langchain_openai import ChatOpenAI
# 定义工具
def search_web(query: str) -> str:
"""搜索网络"""
# 实现搜索逻辑
return f"搜索结果: {query}"
tools = [
Tool(
name="Search",
func=search_web,
description="搜索网络信息,输入为搜索关键词"
),
Tool(
name="Calculator",
func=lambda x: str(eval(x)),
description="执行数学计算,输入为数学表达式"
)
]
# 创建 Agent
llm = ChatOpenAI(model="gpt-4o")
agent = create_openai_functions_agent(llm, tools)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
# 运行
result = agent_executor.invoke({
"input": "搜索人工智能的最新进展,然后计算它的发展年数"
})
from crewai import Agent, Task, Crew
# 定义 Agent
researcher = Agent(
role="研究员",
goal="研究给定主题",
backstory="你是一位经验丰富的研究员",
llm=ChatOpenAI(model="gpt-4o")
)
writer = Agent(
role="作家",
goal="将研究发现写成文章",
backstory="你是一位科普作家",
llm=ChatOpenAI(model="gpt-4o")
)
# 定义任务
research_task = Task(
description="研究 RAG 技术的原理和应用",
agent=researcher,
expected_output="详细的研究报告"
)
write_task = Task(
description="将研究报告写成科普文章",
agent=writer,
expected_output="通俗易懂的科普文章"
)
# 创建 Crew
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
verbose=True
)
# 执行
result = crew.kickoff()
Q: Agent 幻觉怎么办?
Q: 如何提升 Agent 可靠性?
Q: Agent 成本高怎么办?