背景:为什么要做 Code Cube

生成式 AI 的出现,让“用一句话写代码”逐渐成为现实。我们可以让 AI 生成一个页面、一段逻辑,甚至搭出一个项目的基本框架。但从“生成代码”到“做出一个真正可用的应用”,中间仍然有不少工作。

比如,用户想做一个活动报名页面。他不仅要描述页面长什么样,还要反复调整文案、样式和交互,检查生成结果能否运行,并在后续修改时不断补充之前的背景。对不熟悉开发的人来说,这些步骤依然复杂;对开发者来说,频繁复制代码、切换工具和修复问题,也会打断原本的思路。

因此,我希望把应用开发变成一次连续、自然的对话:用户只需要说明想法,平台负责理解需求、生成项目、检查结果,并根据后续反馈持续修改。Code Cube 就是在这个想法下诞生的。

Code Cube 介绍:从自然语言到可运行应用

Code Cube 是一个对话式 AI 应用生成平台。用户不需要先准备完整的产品文档,也不需要关心项目如何初始化,只要用自然语言描述想法,平台就会分析需求,创建对应的应用,并进入对话式开发页面。

GitHub 项目地址:RexTechie/code-cube

Code Cube 首页与需求分析入口

目前,Code Cube 主要支持两类应用:适合简单页面和小工具的 H5 应用,以及适合复杂交互的 Vue 应用。应用生成后,用户可以一边查看预览,一边继续提出修改要求,也可以下载源码或将当前版本正式发布。

例如,用户输入“帮我做一个每周课程表”,Code Cube 会先整理应用名称、简介和类型,再生成可以运行的项目。如果用户接着说“把周五的课程标成蓝色”,平台会在原项目上继续修改,而不是重新生成一份互不相关的代码。整个过程更像是在和一位了解项目情况的开发者协作。

Code Cube Vue 课程表生成示例

整体架构:从交互到工程交付

Code Cube 的整体设计围绕一条主线展开:用户提出需求,系统理解需求,AI 修改项目,平台检查结果,最后更新预览。每一部分只负责自己的事情,既方便后续扩展,也能减少 AI 生成结果直接进入运行环境带来的不确定性。

Code Cube 整体架构图

Code Cube 整体架构图

架构分层

从上到下,Code Cube 可以分为四个部分:

  • 用户交互层:负责需求输入、聊天内容展示、生成进度提示和应用预览。AI 的回复会逐步返回,用户不需要一直等待到整个任务结束。
  • 业务服务层:负责用户身份、应用信息、聊天消息和生成状态。同时,它会限制同一个应用只能执行一个生成或修改任务,避免两个请求同时覆盖项目文件。
  • AI 与工作流层:负责分析用户想做什么,并把任务交给合适的智能体。真正的执行顺序由工作流控制,AI 只在需要理解或生成内容的环节参与。
  • 数据与交付层:MySQL 保存应用信息、完整聊天记录和记忆摘要,Redis 保存近期对话。项目文件则分为源码、实时预览和正式发布三个版本,后续修改不会直接影响已经发布的应用。

这样的拆分让“AI 生成内容”和“平台交付应用”成为两个相互配合但彼此独立的过程。即使模型给出的结果不符合要求,平台仍然可以在检查、构建或发布阶段及时停止。

基础能力:工具调用与上下文记忆

要让 AI 真正参与开发,只会回复代码还不够。它需要能够操作项目文件,也需要记住前面讨论过的内容。Code Cube 因此提供了工具调用和对话记忆两组基础能力。

Function Calling:让模型操作真实工程

Function Calling 可以简单理解为:AI 不直接操作服务器,而是选择平台提供的工具,并给出调用参数,再由平台完成实际操作。

在 Code Cube 中,编码智能体可以查看项目目录,读取文件,创建或更新文件,也可以删除不再需要的文件。所有操作都被限制在当前应用的目录中,文件路径还会经过检查,避免访问到其他应用或系统文件。

工具执行结束并不代表应用已经完成。对于 H5 应用,平台会检查项目文件和入口页面;对于 Vue 应用,平台还会安装依赖并执行真实构建。只有这些步骤顺利完成,新的结果才会进入预览目录。这样一来,用户看到的不只是一段看起来正确的代码,而是一个实际通过检查的页面。

长短期记忆:平衡对话连续性与上下文成本

连续修改应用时,AI 需要知道前面做过什么。但如果每次对话都带上全部历史内容,消息会越来越长,响应速度和使用成本也会受到影响。

Code Cube 将记忆分成了近期记忆和长期记录。Redis 保存最近一段对话,并把产品交流和代码操作分开,分别提供给产品经理智能体和编码智能体。MySQL 则保存完整聊天记录,即使缓存过期,历史内容也不会丢失。

当 Redis 中没有当前应用的记忆时,平台会从数据库中取出记忆摘要和最近的聊天消息,重新组成上下文。这样既能让 AI 接着之前的讨论继续工作,又不需要在每次请求中重复发送全部历史记录。

记忆摘要:沉淀长期应用上下文

对话积累到一定数量后,Code Cube 会在后台整理一次记忆摘要。它会把旧摘要和新增消息合并,保留应用目标、已经确认的要求、完成的修改以及仍需关注的问题,再记录本次摘要覆盖到哪一条消息。

例如,十几轮对话中可能反复讨论过课程表的颜色、布局和交互。摘要不会逐句复制这些内容,而是整理成“采用蓝色主题、按星期分列、点击课程可查看详情”等关键信息。下一次恢复记忆时,AI 读取这段总结和最近消息,就能较快回到当前项目状态。

摘要任务在对话完成后异步执行,不会阻塞用户查看本次结果。它解决的不是“永久记住每一句话”,而是在有限的上下文中尽量保留对后续开发真正有用的信息。

核心设计:从意图理解到工作流执行

同一句自然语言,在不同阶段可能代表不同任务。第一次说“做一个课程表”是在生成应用,项目完成后说“增加夜间模式”则是在修改应用。如果不先判断用户意图,系统很容易选错处理方式。

Code Cube 的核心设计可以概括为两步:先让不同智能体理解和处理各自擅长的问题,再用固定的工作流组织执行顺序。前者提高理解和生成质量,后者保证项目按照可控的步骤完成。

Code Cube 核心流程图

Code Cube 核心流程图

智能体拆分:让不同角色各司其职

Code Cube 没有让一个 AI 负责所有事情,而是按照任务拆成了几个角色:

  • 应用信息智能体:在创建应用前,从用户描述中整理应用名称、简介和推荐类型。
  • 意图分析智能体:结合应用类型、是否已经生成以及当前输入,判断用户这次想做什么。
  • 产品经理智能体:负责普通交流、补充询问,并把生成或修改结果整理成用户容易理解的回复。
  • 编码智能体:根据应用类型生成或修改项目文件。H5 与 Vue 使用各自的要求和处理方式,减少不同项目结构之间的干扰。
  • 摘要智能体:定期整理历史对话,为后续交流保留长期上下文。

这种拆分并不是为了增加角色数量,而是为了缩小每个角色需要处理的问题。编码智能体专注文件,产品经理智能体专注沟通,平台则负责把它们的结果连接起来。

工作流编排:用确定性流程约束模型能力

AI 适合理解需求和生成内容,但不适合独自决定所有执行步骤。因此,Code Cube 把应用开发过程写成了相对固定的工作流,也就是一条由平台控制的任务链。

H5 应用首次生成时,编码智能体会返回一组页面文件。平台检查文件名称、内容和入口页面后,再写入项目并发布预览;后续修改时,智能体通过文件工具更新已有项目,然后重新发布。

Vue 应用的过程更长。首次生成会先复制基础模板,编码智能体在模板上完成开发,随后安装依赖并执行构建。修改前,平台会保留一份源码快照;如果代码修改、构建或预览发布失败,就恢复到修改前的版本,避免一次失败破坏原本可用的项目。

在工作流执行期间,前端会收到“开始生成”“正在安装依赖”“预览已更新”等进度消息。与此同时,同一个应用的任务会按顺序执行,防止多轮修改同时写入文件。通过这些约束,AI 的灵活性被放在合适的位置,而关键步骤仍由平台掌控。

意图分析:识别生成、修改与普通对话

每次收到消息后,意图分析智能体会从五种情况中选择一种:生成应用、修改应用、补充需求、普通对话或超出平台范围。

判断时不仅会看当前这句话,还会参考应用名称、简介、应用类型以及是否已经生成过。例如,一个尚未生成的应用收到“把按钮改成蓝色”,系统会把它当作首次生成需求;已经有预览的应用收到相同消息,则会进入修改流程。

意图分析也设置了兜底规则。当结果不完整、无法识别或把握不足时,系统会先按普通对话处理,而不是贸然修改文件。对于信息明显不足的需求,产品经理智能体会继续提问;对于与应用开发无关的请求,则直接说明当前能力范围。

工作流选择:按应用类型路由 H5 与 Vue

意图决定“这次要做什么”,应用类型则决定“具体应该怎么做”。Code Cube 会在应用创建时确定类型,后续每次对话都从工作流注册中心找到对应的处理流程。

H5 工作流适合活动页、展示页和轻量小工具,生成结果主要由 HTML、CSS 和原生 JavaScript 组成。Vue 工作流适合组件更多、状态变化更复杂的交互原型,需要经过依赖安装和项目构建。

两类工作流使用统一的入口,因此聊天、状态更新、记忆处理和预览发布可以复用同一套外围流程,而生成细节各自独立。未来增加新的应用类型时,也可以沿用这一方式接入。目前全栈应用仍处于规划阶段,现阶段重点是把 H5 与 Vue 的生成、修改和交付流程做完整。

总结

Code Cube 想解决的并不只是“让 AI 写一段代码”,而是让一个想法能够通过对话逐步变成可运行、可预览、可继续修改的应用。

在这个过程中,智能体拆分让不同角色专注各自的任务,意图分析帮助系统理解当前需求,工作流保证文件修改、构建和发布按顺序进行,长短期记忆则让多轮协作保持连续。它们共同组成了一条从自然语言到工程结果的完整链路。

目前 Code Cube 仍以 H5 和 Vue 前端应用为主,构建失败后也还不能自动把错误交给 AI 反复修复。后续可以继续补充全栈应用、自动纠错和更安全的运行环境,让对话式开发从“生成一个页面”进一步走向“持续完成一个项目”。