LanFa的个人主页

Back

使用 AI Agent 工具帮助你从零构建一个小程序#

Lan-Fa/HandyIn: HandyIn 是一个开源、跨平台的二维码作业收取与统计系统,通过多人协作扫码自动完成纸质作业登记、实时统计以及未交名单管理。 ↗

明确自己的需求:我需要做一个什么东西?#

  • 考虑到不同人有不同手机,我又没有 ios 开发环境,所以我想把它做成网页。
    • 它应该是前后端分离的。
    • 它也应该是轻量级的,不妨使用前端 React 框架 + 后端 Node.js 的形式。
    • 它应该有自己的数据库,我认为 PostgreSQL 比较好用。
    • 它应该可以被别人轻易的部署,docker 用在这里看起来很不错。
  • 我希望有管理者和被管理者两种账户权限。
  • 既然有账号,那么也就需要有密码,我们还需要一定的安全性,以防被别人轻易攻破。
  • 老师应该可以管理学生,每个学生应该属于一个班级。
  • 每个学生还应该有一个学号,作为学生的主键,不妨就采用二南开常用的:年份+部门+班级+编号的形式。
  • 对于这个项目的管理,应该使用 git ,在 ai 写出不尽人意的修改的时候,方便进行回滚等版本控制的操作,同时在创作的时候,随时进行进度的提交,为后面创建一个“还原点”。

经过一番思考,我们得到了初步的构想。

让你的 agent 工具为你制定计划#

这里以 opencode 为例。

首先,你需要配置好你自己的 apikey ,这样才能开始使用 ai agent 工具。

在这次项目中, 我将全程使用 DeepSeek V4 Pro 。

在 opencode 中,存在 Plan 和 Build 两种模式,我们可以使用 Plan 模式进行具体的实现步骤构想,在成熟后切换到 Build 模式,让工具进行代码实现的任务。

在让 Plan 计划的时候,可以让它在写代码的时候顺便编写测试代码,测试每个模块的功能,会节省很多调 bug 的时间。

第一次给 Agent 的 Prompt 大致如下:

我要开发一个学校内部使用的作业登记系统…… 技术栈使用 React + Node.js + PostgreSQL…… 暂时不要写代码,请先分析需求并制定实现计划。 同时规划测试方案。

最终,我们得到了一个策划方案:

image-20260822121231010

不要让 Agent 一次写完整个项目#

即使已经有了完整 Plan,也推荐按照模块逐步实现:

  1. 初始化项目
  2. 建数据库
  3. 完成登录
  4. 完成学生管理
  5. 完成作业管理
  6. 最后实现二维码功能

每完成一个阶段,都应该:

  • 运行项目
  • 执行测试
  • 查看 git diff
  • 手动验证主要功能
  • 提交一次 Git

切换到 Build 模式,让它把策划方案记录到新建的 docs/ 目录下,就可以开始让它编写代码了。经过一番实现,我们获得了一个很粗糙的雏形。

进行 Bug 的调整#

它成功跑起来了,但是看起来还有许多 bug。

上报 bug 的时候,我们可以结合日志、你观察到的现象等信息,ai 知道这些信息后,可以更有针对性的完成任务。

image-20260822121347462

和刚刚相同,采用 Plan 计划 + Build 工作的方式,把我们看到的 bug 进行修复。

image-20260822121420569

调整好目前看到的 bug 后,我们得到了这样的程序:

e44052076cae6ed7539bc886ac7ce00b

它看起来很丑?所以需要我们尝试美化。

阶段的分隔#

不过到这里,第一阶段的任务已经完成,因此,我们需要新开一个对话框,这在 opencode 中可以通过 /new 指令完成。

分阶段是很有必要的一个事情。这可以防止上下文过长导致模型的表现变差,同时也可以节省一些 token,降低你的开销。

但是新的对话框可能不拥有之前的记忆,怎么办?很简单,只需要让它保存下来之前打记忆即可。可以使用 /compact 进行压缩,然后让它存储到本地文件中。

image-20260822121714878

让它变得漂亮一些?#

我们发现 React 框架有一些很不错的 UI 组件库,可以直接拿来使用。因此在 Plan 模式中进行规划。

与其让 Agent 从零手写按钮、Dialog、Table、Form,不如选择成熟组件库。这样不仅视觉效果通常更好,而且 Agent 对主流组件库也更熟悉,生成代码的稳定性更高。

image-20260822121734543

image-20260822121803393

在实现的时候,同样不要忘记进行时刻测试。

在一些修改后,我们就有了现在的样子:

image-20260822122220821

新功能的加入#

同样开启新的窗口,把你认为还需要添加的功能加入即可。

使用 AI Agent 工具帮助你从零构建一个小程序
https://lan-fa.github.io/blog/build-mini-program-with-ai-agent
Author LanFa
Published at August 22, 2026
Comment seems to stuck. Try to refresh?✨