今天我们讲第一个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目录查看)。
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模型的。
# 创建虚拟环境 conda create -n part02 python=3.13 -y # 激活虚拟环境 conda activate part02 # 安装依赖库 pip install crewai==0.201.1 -i https://pypi.mirrors.ustc.edu.cn/simple2、运行
python agent_crewai.py五、运行结果
开始运行时,团队开始思考,制定计划,然后进入多轮迭代。
经过多轮迭代,最后生成目标源码和测试用例,结果如下:
至于最后的结果是否符合预期,主要是和模型的能力有关,我们用Ollama跑量化模型,效果应一般,如果要得到更好的效果,得用GPU部署更大的、精度更高的模型。
学习资源推荐
如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取
四、AI大模型商业化落地方案
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。