AI Agent白手起家75: 使用 CrewAI 构建游戏开发助手
纲要项目背景与目标系统架构与流程团队组成高级工程师、QA工程师、首席QA工作流编码 → 审查 → 评估项目结构核心实现Agent、Task、Crew 的定义完整可运行示例纯代码定义无需外部配置文件生成贪吃蛇游戏运行与效果展示总结与相关度说明项目背景在软件开发中高质量代码往往需要多人协作工程师编写、QA审查、架构师评估。CrewAI天然适合模拟这种协作模式。我们用它构建一个游戏开发助手团队专门负责根据需求文档生成可运行的游戏代码。这个团队包含三名成员高级软件工程师负责主编码工作。QA工程师负责审查代码发现语法错误、逻辑缺陷和安全漏洞。首席QA工程师负责最终评估确保代码完整且符合预期功能。三者按顺序协作确保输出的代码既正确又健壮。系统架构与流程工作流采用顺序执行模式每个Agent依次处理上一个的输出需求文档高级工程师 编码QA工程师 审查首席QA 最终评估可运行代码项目结构使用crewai create crew脚手架生成的标准项目结构以下是本次游戏助手的主要文件game_builder/ ├── src/ │ └── game_builder/ │ ├── config/ │ │ ├── agents.yaml │ │ ├── tasks.yaml │ │ └── game_design.yaml │ ├── crew.py │ └── main.py ├── .env └── pyproject.tomlagents.yaml定义三个智能体的角色、目标和背景故事。tasks.yaml定义编码、审查、评估三项任务及依赖关系。game_design.yaml存储多个游戏的需求文档如贪吃蛇、吃豆人。crew.py组装智能体和任务配置执行流程。main.py入口读取游戏需求并启动团队。核心实现Agent 定义每个Agent都有明确的职责例如高级工程师senior_engineer:role:高级软件工程师goal:根据需求创建完美的软件代码backstory:你是一家领先科技公司的高级软件工程师精通Python编程致力于编写完美的代码。QA工程师和首席QA类似分别侧重代码审查和最终评估。Task 定义任务之间通过context建立依赖确保前一任务完成后才执行下一个coding_task:description:使用Python的Pygame框架创建一个游戏遵循以下指令{game_design}expected_output:完整的Python代码仅包含代码本身agent:senior_engineerreview_task:description:检查代码中的错误修正后输出完整代码。expected_output:修正后的完整Python代码agent:qa_engineercontext:[coding_task]evaluate_task:description:评估代码是否完整且能正常工作输出最终版本。expected_output:最终可运行的完整Python代码agent:chief_qacontext:[review_task]Crew 组装在crew.py中使用CrewBase修饰符将一切整合并配置为顺序执行。完整可运行示例为方便直接运行以下示例将所有配置内联到一个Python脚本中无需外部YAML文件。运行后会生成贪吃蛇游戏代码并保存到snake_game.py。环境准备pipinstallcrewai langchain-openai python-dotenv代码game_builder.pyimportosfromdotenvimportload_dotenvfromcrewaiimportAgent,Task,Crew,Processfromlangchain_openaiimportChatOpenAI load_dotenv()# 自定义大模型可使用任何兼容OpenAI接口的服务llmChatOpenAI(modelos.getenv(MODEL_NAME,gpt-3.5-turbo),openai_api_keyos.getenv(OPENAI_API_KEY),base_urlos.getenv(OPENAI_BASE_URL,https://api.openai.com/v1))# 游戏需求文档game_design 制作一个经典的贪吃蛇游戏使用Pygame框架。 具体规则 - 蛇初始长度为3节位于屏幕中央。 - 使用方向键控制蛇的移动。 - 随机生成食物蛇吃到食物后长度增加1分数加10。 - 蛇撞到边界或自身时游戏结束。 - 按空格键重新开始游戏。 - 左上角显示当前分数。 - 蛇身为绿色方块食物为红色方块背景为黑色。 # 定义智能体engineerAgent(role高级软件工程师,goal根据需求创建完美的Python游戏代码,backstory你精通Python和Pygame致力于编写清晰、可维护的代码。,llmllm,verboseTrue)qaAgent(roleQA工程师,goal审查代码并修正所有错误,backstory你擅长发现代码中的逻辑错误、语法错误和潜在的bug。,llmllm,verboseTrue)chiefAgent(role首席QA,goal确保代码完整且能正常运行,backstory你严格把关确保最终交付的代码无懈可击。,llmllm,verboseTrue)# 定义任务coding_taskTask(descriptionf使用Pygame创建贪吃蛇游戏。需求如下{game_design},agentengineer,expected_output完整的、可运行的Python代码仅输出代码本身)review_taskTask(description审查上一步生成的代码找出并修正所有错误语法、逻辑、导入缺失等输出修正后的完整代码。,agentqa,expected_output修正后的完整Python代码仅输出代码本身,context[coding_task])eval_taskTask(description评估修正后的代码确认其完整性和正确性输出最终版本。,agentchief,expected_output最终可运行的完整Python代码仅输出代码本身,context[review_task])# 组建团队并运行crewCrew(agents[engineer,qa,chief],tasks[coding_task,review_task,eval_task],processProcess.sequential,verboseTrue)print(开始生成贪吃蛇游戏...)resultcrew.kickoff()# 保存生成的代码output_filesnake_game.pywithopen(output_file,w,encodingutf-8)asf:f.write(str(result))print(f游戏代码已保存到{output_file})print(运行方式: python snake_game.py)运行说明在.env文件中设置OPENAI_API_KEY如果使用其他模型相应调整MODEL_NAME和OPENAI_BASE_URL。执行python game_builder.py等待智能体协作完成。运行生成的snake_game.py体验贪吃蛇游戏。总结这个游戏开发助手展示了CrewAI如何通过定义角色和任务来模拟真实开发团队的协作流程。从编码到审查再到评估每一步都自动化完成最终输出可直接运行的代码。该模式不仅适用于游戏开发还可扩展到任何需要“生成-检查-修正”循环的软件工程场景。本文完整覆盖了游戏开发助手的项目结构、Agent与Task的配置方式、工作流串联、模型集成以及示例代码并提供了不依赖外部YAML的独立代码。

相关新闻