在之前的文章中,我们将AI视为一个强大的“副驾驶”或“工具人”,我们发出指令,它完成任务。这极大地提升了我们的效率。但现在,我们要探讨一个更颠覆性的概念:如果AI不再需要我们手把手地指挥,而是能像一个真正的“员工”一样,理解目标、拆分任务、甚至组建团队来自主完成工作呢?
这就是 AI Agent(人工智能代理) 的世界。
今天,我们将迈出从“使用AI”到“管理AI”的关键一步。我们将使用一个强大而直观的Python框架——CrewAI,从零开始,构建一个由多个AI Agent组成的自动化研究团队。准备好,未来已来。
什么是AI Agent?它和普通Chatbot有何不同?
- 普通Chatbot: 你问,它答。它是一个被动的、一次性的问答工具。
- AI Agent: 你给它一个目标,它会自己思考、规划、使用工具(如上网搜索、读写文件),并持续行动,直到达成目标。它是一个主动的、持续性的任务执行者。
而CrewAI则更进一步,它能让你轻松地创建多个AI Agent,并让它们像一个真正的团队一样协同工作。
我们的目标:创建一个AI研究团队
我们将创建一个由两名“AI员工”组成的团队:
- 小王 (Wang) - 首席技术研究员:
- 技能: 擅长使用搜索引擎,快速抓取关于任何技术主题的最新、最权威的资讯。
- 任务: 调研关于“AI在量化交易中的应用”的最新动态。
- 小李 (Li) - 资深报告撰写员:
- 技能: 文笔流畅,逻辑清晰,擅长将零散的研究资料整合成一篇结构完整、观点鲜明的技术分析报告。
- 任务: 根据小王的研究成果,撰写一份完整的分析报告。
我们将看到,我们只需要下达一个总目标,小王和小李就会自动地分工、协作,最后交给我们一份完美的报告。
Let’s Code: 组建你的第一个AI“工作组”
第一步:环境准备
首先,我们需要安装crewai
及其工具依赖。为了让我们的AI能上网搜索,我们还需要一个搜索工具库。
pip install crewai crewai_tools[tools]
第二步:设置API密钥
CrewAI需要一个大语言模型(LLM)作为其“大脑”。它默认支持OpenAI的模型。请确保你已经设置了OPENAI_API_KEY
的环境变量。
(如果你想使用其他模型,如本地的Ollama或Google的Gemini,CrewAI也同样支持,具体请参考其官方文档。)
第三步:编写代码,定义你的“员工”
现在,激动人心的时刻到了。我们将用代码来“招聘”我们的AI员工。
import os
from crewai import Agent, Task, Crew, Process
from crewai_tools import SerperDevTool
# --- 设置OpenAI API Key ---
# 建议使用环境变量,而不是硬编码
# os.environ["OPENAI_API_KEY"] = "sk-YOUR_API_KEY_HERE"
# 如果你想使用 SerpApi 进行搜索,也需要设置其API Key
# os.environ["SERPER_API_KEY"] = "Your_Serper_API_Key"
# 创建一个搜索工具,让我们的Agent可以使用
search_tool = SerperDevTool()
# --- 1. “招聘”我们的AI Agent ---
# 定义我们的首席技术研究员: 小王
researcher = Agent(
role='首席技术研究员',
goal='精准、深入地调研关于“AI在量化交易中的应用”的最新动态、技术和挑战',
backstory="""你是一名在全球顶级对冲基金工作的技术研究员。
你以快速、准确地找到并提炼最前沿的技术信息而闻名。""",
verbose=True, # 打印Agent的思考过程
allow_delegation=False, # 不允许该Agent将任务委派给其他Agent
tools=[search_tool]
)
# 定义我们的资深报告撰写员: 小李
writer = Agent(
role='资深技术内容撰写员',
goal='根据研究员提供的资料,撰写一篇内容详实、结构清晰、对读者友好的技术分析报告',
backstory="""你是一位知名的科技专栏作家,以能将复杂的技术概念,
用通俗易懂且引人入胜的方式呈现出来而著称。""",
verbose=True,
allow_delegation=True
)
# --- 2. 为Agent分配任务 ---
# 定义研究任务
research_task = Task(
description="""调研并总结“AI在量化交易中的应用”这一主题。
请重点关注以下几个方面:
1. 当前主流的使用场景(如因子挖掘、情绪分析、执行算法优化)。
2. 面临的主要技术挑战(如数据噪音、模型过拟合、可解释性差)。
3. 未来的发展趋势。
""",
expected_output='一份包含上述要点的详细研究摘要, bullet points格式。',
agent=researcher # 将任务分配给小王
)
# 定义写作任务
write_task = Task(
description="""使用研究员提供的研究摘要,撰写一篇完整的技术博客文章。
文章应包含引言、对每个研究要点的详细阐述,以及一个总结性的结尾。
文章风格应专业且易于理解。""",
expected_output='一篇格式完美的Markdown技术博客文章,至少1500字。',
agent=writer # 将任务分配给小李
)
# --- 3. 组建“工作组”(Crew)并启动任务 ---
# 实例化你的工作组,并设定工作流程
quant_crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
process=Process.sequential, # 任务将按顺序执行
verbose=2, # 打印详细的执行过程
)
# 启动!
result = quant_crew.kickoff()
print("\n\n########################")
print("## AI团队工作完成,最终报告如下:")
print("########################\n")
print(result)
第四步:运行并见证奇迹
将代码保存为main.py
并运行。你会在终端看到神奇的一幕:
- 小王(Researcher) 开始思考,它将总任务拆解为具体的搜索关键词,然后调用搜索工具。
- 它会浏览多个网页,提炼信息,最终形成一份研究摘要。
- 小李(Writer) 接过小王的摘要,开始思考如何构建文章的大纲。
- 它会根据大纲,逐段撰写,最终输出一篇完整的、格式精美的Markdown报告。
整个过程中,你就像一位CEO,只需设定一个顶层目标,你的AI团队就会自动地、有条不紊地完成所有工作。
结语:从“动手”到“动脑”的转变
AI Agent技术,是我们在AI时代工作方式转变的一个缩影。它将我们从繁琐的“执行”中解放出来,让我们能更专注于**“提出正确的问题”和“定义清晰的目标”**。
今天构建的这个简单的研究团队,只是冰山一小角。你可以尝试为你的团队增加更多的角色(比如“代码审查员”、“数据分析师”),或者赋予它们更复杂的工具(比如读写本地文件、调用其他API)。
驾驭AI Agent的能力,或许将成为未来十年最重要的个人竞争力之一。现在,就从你的第一个Crew开始,探索这个激动人心的新世界吧。
...