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的独立代码。

相关新闻

Grok Bot AI智能体团队:24/7自动化工作流部署与集成实践

Grok Bot AI智能体团队:24/7自动化工作流部署与集成实践

这次我们来看一个名为Grok Bot的 AI 智能体项目。它不是单个聊天机器人,而是一个宣称能 24/7 全天候工作的“AI 智能体团队”。简单来说,你可以把它理解为一套自动化的工作流系统,由多个具备不同技能的 AI 智能体(Agent&#xff0…

2026/10/13 9:49:15 阅读更多 →
10 万亿参数大模型,注定要被关进笼子里

10 万亿参数大模型,注定要被关进笼子里

它能行的善与恶都将超出人类想象。 OpenAI即将发布的GPT-6,传闻称它的参数量高达10万亿。 10万亿是一个非常恐怖的概念。现如今,全球顶尖大模型的参数量都在“万亿”级别。比如阿里的Qwen 3.8为3.5万亿,Kimi K3为2.8万亿,字节内…

2026/10/13 15:36:10 阅读更多 →
C++面试核心:智能指针、对象模型与内存管理实战解析

C++面试核心:智能指针、对象模型与内存管理实战解析

1. 项目概述:一份面向实战的C面试指南最近帮团队面试了不少C方向的候选人,也和一些同行交流,发现一个挺普遍的现象:很多朋友,尤其是工作两三年的开发者,在面对C面试时,总感觉心里没底。他们不是…

2026/10/14 9:59:35 阅读更多 →

最新新闻

Qt6计算器开发全解析:信号槽、表达式解析与工程实战

Qt6计算器开发全解析:信号槽、表达式解析与工程实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 2:26:21 阅读更多 →
Java 17内存安全:java.lang.foreign权限机制解析

Java 17内存安全:java.lang.foreign权限机制解析

1. 权限检查机制的设计背景在Java 17中引入的java.lang.foreign模块,作为Project Panama的重要组成部分,旨在提供更高效、更安全的内存访问能力。这个模块的核心挑战在于:如何在提供底层内存操作能力的同时,确保JVM的安全性不被破…

2026/10/15 2:26:21 阅读更多 →
SpringBoot+Vue田园管理系统开发实践

SpringBoot+Vue田园管理系统开发实践

1. 项目概述:田园管理系统的技术选型与定位这个基于SpringBootVue的乐享田园管理系统,本质上是一个面向现代农业场景的轻量级数字化解决方案。我在实际开发中发现,这类系统特别适合作为学生项目或中小型农场的入门级管理工具,因为…

2026/10/15 2:26:21 阅读更多 →
QT网络聊天室实战:基于TCP的聊天与文件传输实现

QT网络聊天室实战:基于TCP的聊天与文件传输实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 2:26:21 阅读更多 →
Qt新手必做:计算器项目实战,搞懂信号槽与布局管理

Qt新手必做:计算器项目实战,搞懂信号槽与布局管理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 2:26:21 阅读更多 →
Firebase JS SDK RecaptchaVerifier 类完全指南:基于 reCAPTCHA 的应用验证器实战与源码解析

Firebase JS SDK RecaptchaVerifier 类完全指南:基于 reCAPTCHA 的应用验证器实战与源码解析

开发工具后端 【免费下载链接】firebase-js-sdk Firebase Javascript SDK 项目地址: https://gitcode.com/gh_mirrors/fi/firebase-js-sdk 点击查看 免费下载 RecaptchaVerifier 是 Firebase JS SDK(firebase-js-sdk)中基于 Google reCAPTCH…

2026/10/15 2:25:21 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →