这次我们来看一个很有意思的实践我把AI Agent和微信小程序开发串成了一个完整的Skill从你输入一句话需求到最终在微信开发者工具里跑起来中间所有环节——需求分析、原型设计、页面结构、逻辑代码、云开发配置、甚至首次运行的调试——全部由AI自动完成。这不是一个概念演示而是一个可以实际落地的工作流。我把它封装成了一个可复用的Skill基于LangChain Codex你只需要提供需求描述剩下的交给AI。如果你也在研究AI辅助编程、自动生成小程序、或者想减少重复造轮子的时间这篇文章可以直接收藏。1. 核心能力速览能力项说明项目类型AI Agent 自动化工作流Skill目标平台微信小程序原生 云开发启动方式命令行 配置文件运行支持需求输入自然语言描述1-3句话输出产物需求文档、页面设计图描述、wxml/wxss/js/json代码、云函数代码、app.json配置依赖环境Python 3.9、Node.js 16、微信开发者工具、OpenAI API Key或兼容接口显存占用无需GPU纯API调用本地仅需内存约500MB-1GB是否支持批量任务支持可批量处理多个小程序需求自动生成独立的项目目录是否支持接口API支持可通过HTTP API触发任务返回项目路径和日志适合场景快速原型验证、MVP开发、内部工具小程序、教学演示、代码辅助生成2. 适用场景与使用边界2.1 适合谁产品经理 / 需求分析师快速将想法转化为可运行的小程序原型减少沟通成本。独立开发者一个人完成从需求到上线的全流程AI辅助写代码你只需要做审核和调整。教学场景给学员演示从零到一的小程序开发过程AI生成代码后讲解逻辑。企业内部工具快速生成管理后台、审批流、数据展示等轻量级小程序。2.2 能解决什么问题需求文档自动生成不再需要手动写PRDAI根据需求描述自动产出结构化的需求文档。代码自动生成页面结构、样式、逻辑、云函数一键生成减少重复劳动。配置自动设置app.json、project.config.json、sitemap.json等自动处理。首次运行保障自动调用微信开发者工具CLI打开项目并进行预览。2.3 不适合什么场景复杂业务逻辑如电商支付、多级权限、实时通信AI生成的代码需要大量人工修改。需要高度定制UI的C端产品AI生成的样式较为基础需要手动调整。安全敏感场景如金融、医疗AI生成的代码需严格审计不建议直接用于生产。无网络环境依赖OpenAI API需要稳定的网络连接。2.4 使用边界与合规提醒生成的代码仅作为参考请务必在提交前进行代码审查和功能测试。涉及用户隐私、数据采集的小程序必须遵守微信小程序平台规范及相关法律法规。不要将AI生成的代码直接用于商业产品除非你已确保所有依赖和组件都有合法授权。使用前请确保你拥有微信开发者工具的使用权限并已注册小程序AppID。3. 环境准备与前置条件3.1 操作系统Windows 10 / 11推荐微信开发者工具对Windows支持最好macOS 12微信开发者工具也支持但CLI调用略有不同Linux需自行配置微信开发者工具没有原生Linux版但可用Wine或Docker方案不推荐新手3.2 软件依赖软件版本要求说明Python3.9 - 3.11推荐3.10用于运行Skill主程序Node.js16用于微信开发者工具CLI调用微信开发者工具1.06.2307260必须安装并配置CLI路径Git2.30用于版本管理非必须但推荐OpenAI API Key有效可以使用GPT-4或GPT-3.5-turbo推荐GPT-4以获得更高质量代码3.3 Python环境建议使用虚拟环境避免依赖冲突。# 创建虚拟环境 python -m venv skill_env # 激活Windows skill_env\Scripts\activate # 激活macOS/Linux source skill_env/bin/activate3.4 微信开发者工具CLI配置微信开发者工具安装后需要在设置中开启“服务端口”默认已开启。然后确认CLI路径WindowsC:\Program Files (x86)\Tencent\微信web开发者工具\cli.batmacOS/Applications/wechatwebdevtools.app/Contents/MacOS/cli将路径添加到系统环境变量中方便调用。验证方法# Windows cli.bat --version # macOS cli --version如果输出版本号说明配置成功。3.5 磁盘空间每个小程序项目约占用10-50MB含云函数。缓存模型文件等不需要因为AI模型是远程调用。建议预留至少500MB空闲空间用于日志和临时文件。4. 安装部署与启动方式4.1 获取Skill源码假设我们将Skill命名为wx-skills它包含以下核心文件wx-skills/ ├── main.py # 主入口接收需求并启动工作流 ├── config.py # 配置文件包含API Key、项目目录等 ├── agents/ │ ├── requirement_agent.py # 需求分析Agent │ ├── design_agent.py # 页面设计Agent │ ├── code_agent.py # 代码生成Agent │ └── deploy_agent.py # 部署与运行Agent ├── templates/ │ └── weapp_template/ # 小程序基础模板空项目骨架 ├── outputs/ # 生成的项目存放目录 ├── logs/ # 运行日志 ├── requirements.txt # Python依赖 └── README.md克隆或下载源码后安装Python依赖pip install -r requirements.txt依赖核心包括langchain,openai,pydantic,requests,colorama等。4.2 配置API Key在config.py中填写你的OpenAI API Key# config.py OPENAI_API_KEY sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx OPENAI_BASE_URL https://api.openai.com/v1 # 可选默认即可 MODEL_NAME gpt-4-turbo # 推荐gpt-4-turbo或gpt-4o WEIXIN_DEVTOOL_PATH C:\\Program Files (x86)\\Tencent\\微信web开发者工具\\cli.bat # Windows示例 OUTPUT_DIR ./outputs4.3 启动方式方式一单次命令行运行python main.py --requirement 一个简单的待办事项小程序用户可以添加、删除任务任务列表显示在首页运行后Skill会依次执行需求分析将一句话需求拆解为功能列表、页面结构、数据模型。设计生成输出页面布局描述非图片而是结构描述。代码生成生成wxml、wxss、js、json文件以及云函数代码如果需要。部署运行自动创建项目目录写入文件调用微信开发者工具CLI打开项目。最终你会看到类似输出[INFO] 需求分析完成共生成3个功能模块 [INFO] 页面设计完成包含首页、添加页、详情页 [INFO] 代码生成完成共生成8个文件 [INFO] 项目已创建至 ./outputs/todo_app_20250315 [INFO] 正在打开微信开发者工具... [INFO] 打开成功请检查项目预览。方式二HTTP API服务模式如果你需要集成到自己的系统或批量处理可以启动API服务python main.py --server --port 8080启动后通过POST请求触发任务curl -X POST http://127.0.0.1:8080/generate \ -H Content-Type: application/json \ -d { requirement: 一个简单的待办事项小程序, project_name: todo_app }返回结果包含项目路径、状态、日志地址。方式三批量任务模式在config.py中设置BATCH_MODE True并提供一个包含多个需求的JSON文件[ {requirement: 一个计算器小程序, project_name: calc}, {requirement: 一个天气预报小程序, project_name: weather} ]然后运行python main.py --batch requirements.jsonSkill会按顺序生成每个项目并自动命名目录。5. 功能测试与效果验证5.1 测试需求示例我们用一个简单的需求来测试整个流程需求一个可以记录日常开支的记账小程序用户可以添加收支记录查看总收入和总支出以及按类别筛选。5.2 运行过程执行命令python main.py --requirement 一个可以记录日常开支的记账小程序用户可以添加收支记录查看总收入和总支出以及按类别筛选。观察日志输出。以下是关键阶段阶段1需求分析AI会输出结构化的需求文档要点功能模块 - 添加记录类型、金额、类别、备注、日期 - 首页展示总收支与近期记录 - 筛选功能按类别筛选 - 统计展示饼图或条形图可选 页面结构 - 首页总收支卡片 记录列表 筛选按钮 - 添加页表单 - 统计页图表可选 数据模型 - records: {id, type, amount, category, note, date, createTime} - categories: [{name, icon}]阶段2生成代码AI开始生成每个页面的文件。以首页为例生成的wxml可能如下!-- pages/index/index.wxml -- view classcontainer view classheader view classtotal-income text总收入/text text classamount¥{{totalIncome}}/text /view view classtotal-expense text总支出/text text classamount¥{{totalExpense}}/text /view /view view classfilter picker modeselector range{{categories}} bindchangeonCategoryChange text{{currentCategory || 全部}}/text /picker /view scroll-view classrecord-list scroll-y view wx:for{{records}} wx:keyid classrecord-item text{{item.category}}/text text{{item.amount}}/text text{{item.note}}/text /view /scroll-view view classadd-btn bindtaponAdd 添加记录/view /view对应的wxss/* pages/index/index.wxss */ .container { padding: 20rpx; background: #f5f5f5; min-height: 100vh; } .header { display: flex; justify-content: space-around; background: #fff; border-radius: 16rpx; padding: 30rpx; margin-bottom: 20rpx; } .total-income .amount { color: #4CAF50; font-size: 36rpx; } .total-expense .amount { color: #f44336; font-size: 36rpx; } ...阶段3云函数如果需要如果需求包含“数据持久化”AI会自动生成云函数代码。例如// cloudfunctions/addRecord/index.js const cloud require(wx-server-sdk) cloud.init() const db cloud.database() exports.main async (event, context) { const { type, amount, category, note, date } event try { const result await db.collection(records).add({ data: { type, amount: parseFloat(amount), category, note, date, createTime: db.serverDate() } }) return { code: 0, data: result._id, msg: success } } catch (e) { return { code: -1, msg: e.message } } }阶段4部署运行AI自动创建项目目录写入所有文件然后调用微信开发者工具CLI打开项目。cli.bat open --project C:\Users\xxx\wx-skills\outputs\account_book_20250315如果CLI路径正确微信开发者工具会自动打开并加载项目。5.3 效果验证项目结构检查outputs/account_book_20250315目录应有完整的pages,cloudfunctions,app.js,app.json,project.config.json等。开发者工具预览在微信开发者工具中点击“预览”手机扫码即可看到真实效果。功能可用性测试添加记录、查看总收支、筛选功能是否正常。注意云函数需要先上传并部署才能使用AI生成的代码默认包含云函数但需要手动部署或通过CLI自动部署这个功能可以后续扩展。代码质量目测代码结构清晰变量命名规范注释到位。但需要人工检查逻辑漏洞如数据校验、异常处理。5.4 常见失败原因问题现象可能原因排查方式解决方案生成的项目无法打开开发者工具CLI路径错误或未安装工具执行cli.bat --version测试确认路径并添加到环境变量云函数上传失败未登录微信开发者工具登录开发者工具手动登录后再尝试页面样式错乱生成的wxss与wxml不匹配检查wxss中的类名手动调整或重新生成API调用超时OpenAI API响应慢或网络问题检查日志中的API响应时间更换模型或增加超时时间生成代码中有语法错误AI生成不严谨检查控制台错误信息手动修正或重新生成该文件6. 接口 API 与批量任务6.1 API接口说明启动HTTP服务后暴露以下端点端点方法描述请求参数/generatePOST触发单个小程序生成requirement(string, 必填),project_name(可选)/batchPOST批量生成多个小程序requirements(array, 必填)/statusGET查询任务状态task_id(string, 必填)/logsGET获取任务日志task_id(string, 必填)6.2 调用示例单个生成curl -X POST http://127.0.0.1:8080/generate \ -H Content-Type: application/json \ -d { requirement: 一个简单的待办事项小程序支持添加、删除、标记完成, project_name: todo_app }返回示例{ task_id: task_20250315_001, status: running, project_path: ./outputs/todo_app, message: 任务已提交请稍后查询状态 }查询状态curl http://127.0.0.1:8080/status?task_idtask_20250315_001返回示例{ task_id: task_20250315_001, status: completed, project_path: D:/outputs/todo_app, created_at: 2025-03-15 10:00:00, completed_at: 2025-03-15 10:02:30, files: [app.js, app.json, pages/index/index.wxml, ...] }6.3 批量任务在批量模式下Skill会按顺序处理每个需求并生成独立的项目目录。API批量调用示例curl -X POST http://127.0.0.1:8080/batch \ -H Content-Type: application/json \ -d { requirements: [ {requirement: 一个计算器小程序, project_name: calc}, {requirement: 一个天气预报小程序, project_name: weather}, {requirement: 一个记账本小程序, project_name: account} ] }返回每个任务的ID之后可以单独查询状态。6.4 批量任务的注意事项每个任务顺序执行避免API限流。如果使用GPT-4建议间隔至少5秒。输出目录使用project_name或自动生成唯一名称。每个任务有独立的日志文件方便排查问题。如果某个任务失败不会影响后续任务但会记录错误日志。7. 资源占用与性能观察7.1 本地资源占用资源占用情况说明CPU约5%-10%主要运行Python主程序不涉及模型推理内存约500MB-1GB取决于LangChain上下文管理和日志缓存磁盘每个项目10-50MB代码文件、临时文件、日志网络每次API调用约100KB请求和响应体积主要取决于模型返回的代码量7.2 API调用次数与耗时每次生成通常需要4-6次API调用需求分析、页面设计、代码生成、配置文件生成、云函数生成等。每次调用耗时约5-15秒取决于模型和返回代码长度总计约30-90秒完成一个中等复杂度的项目。如果使用GPT-3.5-turbo速度更快总计约15-30秒但代码质量会下降。7.3 如何降低资源占用使用本地模型替代API目前不推荐因为本地模型在代码生成能力上远不如GPT-4且需要显存至少8GB违背了“无需GPU”的设计初衷。减少API调用次数可以将多个步骤合并到一次调用中但生成的代码质量会下降。Skill默认采用分步调用以保证质量。控制代码长度在提示词中限制每个文件的最大行数避免生成过长代码导致API超时。7.4 如何观察性能在日志中查看每个阶段的耗时例如[TIMING] request_agent took 12.3s。使用time命令包裹整个运行过程time python main.py --requirement xxx。监控API响应时间可以在config.py中设置LOG_LEVELDEBUG查看每个API请求的响应时间。8. 常见问题与排查方法问题现象可能原因排查方式解决方案安装依赖失败Python版本不兼容或网络问题查看错误日志检查pip源使用国内镜像源pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple运行时提示OpenAI API Key not found未配置config.py或环境变量检查config.py中的OPENAI_API_KEY在config.py中填入有效Key或设置环境变量OPENAI_API_KEY生成的项目目录为空权限问题或磁盘空间不足检查outputs目录权限查看磁盘空间修改config.py中的OUTPUT_DIR为有写入权限的路径微信开发者工具无法打开项目CLI路径错误或工具未安装执行cli.bat open --help看是否有帮助信息确认CLI路径正确并确保工具已安装且登录云函数编译失败云函数目录缺少依赖查看云函数目录下的package.json手动在云函数目录执行npm install然后重新上传页面白屏或报错生成的代码有语法错误在开发者工具中查看控制台错误定位错误行手动修正代码或重新生成该页面批量任务中途停止API限流或网络中断查看日志中的错误信息增加请求间隔设置time.sleep(5)或使用重试机制生成的代码不符合预期如页面布局混乱需求描述不够详细审查生成的需求文档对比原始需求重新描述需求增加更多细节约束如“使用flex布局顶部导航栏底部tab栏”8.1 通用排查步骤检查日志文件logs/目录下按时间命名的日志记录详细的调用过程和错误堆栈。确认API Key的有效性单独用Python测试API调用。确认微信开发者工具CLI可用在命令行中直接调用cli.bat open --help。检查项目目录权限输出目录是否有写入权限。如果问题持续尝试重新生成或使用更简单的需求测试。9. 最佳实践与使用建议9.1 第一次使用前先用最简单的需求如“一个显示Hello World的小程序”测试整个流程确保所有环节通畅。保留一套最小可运行配置config.py中只填写必要信息其他保持默认。记录每次生成的日志方便后续对比和排查。9.2 需求描述技巧越具体越好指出页面数量、功能要点、交互方式如“点击按钮弹出表单”。给出约束例如“使用云开发作为后端”、“底部tab栏包含首页和我的”、“所有列表使用scroll-view”。避免歧义不要用“好看”、“简单”等主观词汇而是用“使用Material Design风格”、“配色为蓝色系”。9.3 管理生成的项目建议在outputs目录下按日期建立子文件夹例如2025-03-15/。每个项目生成后用Git进行版本管理方便后续修改。定期清理不需要的项目避免占用磁盘空间。9.4 批量任务注意事项批量任务顺序执行最好在夜间或低峰期运行。每个任务之间留出足够时间间隔避免API限流。批量任务完成后检查每个项目的输出目录确保没有遗漏。9.5 合规与安全版权AI生成的代码版权归属有争议建议仅用于学习和原型验证商用前需进行版权审查。隐私不要在需求描述中包含敏感信息因为需求文本会发送到OpenAI API数据可能会被用于训练请查看OpenAI的隐私政策。微信小程序审核AI生成的代码可能不符合微信小程序审核规范如缺少必要的隐私政策、用户协议等正式发布前必须完善。数据安全如果使用云开发注意云函数的安全配置避免未授权访问。9.6 扩展建议可以集成到CI/CD流水线利用API接口在代码提交时自动生成小程序原型。结合TTS接口生成语音播报功能如记账本中的语音输入。支持多轮迭代允许用户对生成的代码进行修改后再次输入需求让AI调整。10. 总结与下一步这个Skill的核心价值在于把“从需求到跑起来”这个最耗时的阶段从几小时压缩到几分钟。你不需要先写PRD、画原型、设计数据库、写代码、配置项目只需要一句话AI就能帮你完成大部分工作。它的门槛极低——不需要GPU也不用装深度学习框架只要一个Python环境和一个API Key。最先应该验证的功能单次命令行生成一个简单页面。比如“一个显示Hello World的小程序”如果这一步能跑通后面的复杂需求基本没问题。最容易踩的坑有两个微信开发者工具CLI路径配置和API Key有效性。建议先把这两个基础环境确认好再开始跑复杂需求。后续可以继续扩展的方向包括支持更多小程序框架如Taro、uni-app、mpvue。增加UI定制能力通过描述让AI生成更美观的样式或者接入设计稿解析。自动部署云函数在生成云函数后自动调用CLI进行上传和部署。多轮对话式开发允许用户和AI交互逐步修改生成的项目而不是一次性生成。这个Skill目前还是原型阶段但已经能跑通基本流程。如果你对AI辅助小程序开发感兴趣或者想减少重复劳动不妨从本文的步骤开始试一下。建议收藏备用后续我会继续更新比如增加对uni-app的支持、优化代码质量等。
