【连载】零基础跟我学做AI Agent(第2课:用CrewAI配置一个软件虚拟团队)

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在这里

今天我们讲第一个AI Agent例子:用CrewAI配置一个软件虚拟团队。实际上,这个需要有69行代码,那为什么不叫开发而叫配置呢?因为代码中几乎没有程序化的内容,基本上就是配置信息。

一、目标

本例中Agent实现的目标是配置一个虚拟开发团队,这个团队中有资深程序员,还有测试工程师,两者协作完成一个具体的开发任务。当然这需要大模型的支持和经过多轮迭代。两种角色经过协调和博弈,让结果越来越接近于人类设定的目标。最后得到的成果是整套源代码。

二、原理

CrewAI是一种AI Agent框架,适合做多种角色Agent协同的应用,因为Crew的意思是"船员"或"机组",寓意着几个分工不同的虚拟人共同配合完成一个总体的任务。在配置中,需要有以下几个元素:

1、智能体

我们定义了programmer和qa_engineer两个智能体,这些智能体有目标要求和表示角色的技能声明,当然这是通过大模型提示词实现的。

2、任务

与智能体相匹配的任务有development_task和testing_task两种,这些任务要设定由哪个智能体来执行,而且任务之间也有工作成果的交接。

3、团队

智能体、任务以及执行方法共同组成一个团队,通过kickoff(开球)方法开始运转。

三、源码

69行源码全部给出(公众号不便查看源码的话,可到的chapter-x-0base目录查看)。

ini 复制代码
import os
from crewai import Agent, Task, Crew, Process
os.environ['OPENAI_API_BASE'] = 'http://localhost:11434/v1'
os.environ["OPENAI_API_KEY"] = "EMPTY"
os.environ["OPENAI_MODEL_NAME"] = "openai/qwen3"
class DevelopmentCrew:
def __init__(self, development_description, testing_description):
# 定义程序员智能体
self.programmer = Agent(
role="资深程序员",
goal="编写高质量、可维护的代码,实现功能需求",
backstory="你是一位经验丰富的程序员,精通多种编程语言和设计模式。" +
"你注重代码质量,善于编写清晰、高效的代码,并且有很强的逻辑思维能力。",
verbose=True,
max_execution_time=300
)
# 定义测试工程师智能体
self.qa_engineer = Agent(
role="测试工程师",
goal="确保代码质量,发现并报告缺陷,验证功能完整性",
backstory="你是一位严谨的测试工程师,对细节极其敏感。" +
"你擅长设计测试用例,能够发现各种边界条件和潜在问题," +
"确保交付的代码达到高质量标准。",
verbose=True,
max_execution_time=300
)
# 定义开发任务
self.development_task = Task(
description=development_description,
agent=self.programmer,
expected_output="完整的Python代码实现,包含所有要求的功能和必要的注释"
)
# 定义测试任务
self.testing_task = Task(
description=testing_description,
agent=self.qa_engineer,
expected_output="详细的测试报告,包含测试用例、发现的问题和改进建议",
context=[self.development_task]
)
# 创建并运行开发团队
def invoke(self):
dev_crew = Crew(
agents=[self.programmer, self.qa_engineer],
tasks=[self.development_task, self.testing_task],
process=Process.sequential,
verbose=True
)
print("开始软件开发流程...")
print("第一阶段:程序员进行功能开发")
print("第二阶段:测试工程师进行质量验证")
result = dev_crew.kickoff()
print("\n开发流程完成,最终结果:")
print(result)
return result.raw
if __name__ == "__main__":
# 从主函数传入任务描述
dev_description = """开发一个用户管理系统,包含以下功能:
1. 用户注册(用户名、邮箱、密码)
2. 用户登录验证
3. 用户信息查询
4. 密码重置功能
请使用Python编写清晰的代码,包含必要的注释和错误处理。"""
test_description = """对开发的用户管理系统进行全面测试:
1. 设计测试用例覆盖正常流程和异常情况
2. 进行边界值测试和错误处理测试
3. 验证所有功能是否符合需求
4. 提供详细的测试报告和改进建议"""
dev_crew = DevelopmentCrew(dev_description, test_description)
dev_crew.invoke()

四、运行

1、环境安装

用Miniconda建立一个Python虚拟环境,本案例只依赖于crewai库。大模型是在上一节装好的,程序调到API时,Ollama会自动装载qwen3模型的。

ini 复制代码
# 创建虚拟环境
conda create -n part02 python=3.13 -y
# 激活虚拟环境
conda activate part02
# 安装依赖库
pip install crewai==0.201.1 -i https://pypi.mirrors.ustc.edu.cn/simple

2、运行

复制代码
python agent_crewai.py

五、运行结果

开始运行时,团队开始思考,制定计划,然后进入多轮迭代。

经过多轮迭代,最后生成目标源码和测试用例,结果如下:

至于最后的结果是否符合预期,主要是和模型的能力有关,我们用Ollama跑量化模型,效果应一般,如果要得到更好的效果,得用GPU部署更大的、精度更高的模型。

未完待续!

学习资源推荐

如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在这里

相关推荐
大模型教程2 小时前
AI Agent开发入门:5 个关键步骤,帮你打通落地链路
程序员·llm·agent
DO_Community2 小时前
DigitalOcean 远程 MCP 正式上线,让基础设施“开口说话”
ai·agent·mcp
AI大模型2 小时前
【连载】零基础跟我学做AI Agent(第1课:环境安装)
程序员·llm·agent
刘立军3 小时前
本地大模型编程实战(38)实现一个通用的大模型客户端
后端·llm
得物技术3 小时前
从0到1搭建一个智能分析OBS埋点数据的AI Agent|得物技术
人工智能·agent
16324015413 小时前
回顾-Mistral [1]-->“ 一句话概括论文核心+技术亮点总结”
llm
青衫客363 小时前
浅谈 ReCAP(Recursive Context-Aware Reasoning and Planning)——大模型推理与规划的递归范式
大模型·agent·智能体·recap
申阳3 小时前
Day 23:登录设计的本质:从XSS/CSRF到Session回归的技术演进
前端·后端·程序员
组合缺一3 小时前
Solon AI 开发学习17 - generate - 使用复杂提示语
java·学习·ai·llm·solon·mcp