用 AI 做表单、聊天机器人和自动化小工具
- 知道表单/聊天机器人/自动化脚本三类小工具各自最省力的技术路径
- 学会用 AI 工具快速搭出能用的原型,而不是从零造轮子
- 掌握"对 AI 提需求"的真实写法,让它给你出代码而不只是建议
- 知道密钥安全、定时任务、通知发送这几个共性坑怎么绕
很多真实需求根本不需要做成一个"产品"。一个表单页面收数据然后发邮件、一个能回答常见问题的对话框、一个每天定时跑一次的脚本——这些东西用 AI 工具几个小时就能搭出来,而且立刻能用。
反倒是很多人把精力花在了"先想清楚整体架构"上,然后就没有然后了。
这篇讲三类最常见的"小而美"工具:表单/问卷、聊天机器人、自动化小工具。它们有一个共同点——需求明确、开发快、用现成能力拼就够了,不需要你从头造什么。
用 Cursor 或 Claude Code 来搭,两者在这类场景里的用法基本一致。
这三类小工具的共性
在讲每一类之前,先说共性——因为踩坑的地方往往是共性的坑,不是某类特有的:
数据存哪? 大多数小工具的数据量不大,Supabase 免费额度(500MB + 每月 200 万次请求)足够了。表单提交存一张表,聊天记录存一张表,脚本日志存一张表——不需要自己运维数据库。
通知怎么发? 表单提交后通知、脚本跑完告警,最省事的方案是邮件(Resend 免费 100 封/天,接入代码不到 20 行)或者企业微信 Webhook(一个 POST 请求就能推消息到群里)。不要自己搭邮件服务器。
定时怎么跑? 脚本类工具经常需要定时执行。选项有三种:Vercel 的 Cron Jobs(免费,每天最多 2 个)、GitHub Actions 的 schedule 触发、或者 Render 的 Cron Job 服务。任何一个都能让你不用买服务器跑一个常驻进程。
密钥安全。 这是最容易出事的地方。AI 生成的代码里,密钥有时候会直接出现在源码里——你得养成习惯,每次让 AI 涉及外部 API 时,都在提法里加一句"API Key 从环境变量读,不要硬编码"。
表单 / 问卷:收集数据 + 存库 + 通知
适合什么需求
- 活动报名收信息
- 用户反馈/满意度问卷
- 内测申请、Waitlist 收集
- 内部流程表单(请假、申请、审批)
这类需求的核心逻辑很简单:用户填 → 提交 → 存库 → 通知你。不需要复杂的后端,也不需要管理后台(Supabase Dashboard 就能直接看数据)。
用 AI 快速搭的路径
- 用 Next.js App Router 出一个表单页面(或者直接用 v0 生成 UI 组件)
- 提交时调用一个
/api/submit接口 - 接口里写入 Supabase,然后调 Resend 或企业微信 Webhook 发通知
- 不需要登录,不需要管理后台
表单本身用 react-hook-form + zod 做校验,这是目前最省事的组合,AI 对它们的训练数据很多,生成代码质量稳定。
对 AI 提需求示例
帮我做一个活动报名表单页面,路由是 /register。 表单字段:姓名(必填)、手机号(必填,校验格式)、公司(选填)、 参会意向(单选:线上/线下)。 提交逻辑: 1. 调用 /api/register,把数据写入 Supabase 的 registrations 表 (表结构:id/name/phone/company/attendance_type/created_at, 我自己会建表,你只需要写插入代码) 2. 写入成功后,用 Resend 给 admin@example.com 发一封通知邮件, 邮件正文包含刚才提交的信息 3. 前端显示"报名成功!" 使用 react-hook-form + zod 做表单校验。 Supabase 和 Resend 的 API Key 都从环境变量读, 变量名:NEXT_PUBLIC_SUPABASE_URL、NEXT_PUBLIC_SUPABASE_ANON_KEY、RESEND_API_KEY。 不要硬编码任何密钥。
注意提法里几个关键点:字段名要具体、环境变量名要指定、Supabase 表结构要说明(即使你自己会建表,让 AI 知道字段名,它写插入代码才不会出错)。
现成能力怎么拼
| 需求 | 用什么 | 不用造什么 |
|---|---|---|
| 表单 UI | shadcn/ui 组件 + react-hook-form | 不用自己写 input 样式和校验逻辑 |
| 数据存储 | Supabase | 不用自己装 PostgreSQL |
| 发邮件通知 | Resend SDK | 不用搭邮件服务器 |
| 发群消息通知 | 企业微信 Webhook(一个 POST) | 不用装任何 SDK |
| 防刷 | Cloudflare Turnstile(免费) | 不用自己写验证码 |
聊天机器人:接 AI 对话 + 接入网站 / 微信
适合什么需求
- 网站客服机器人(回答常见问题)
- 微信公众号自动回复
- 内部知识库问答(给公司同事用)
- 产品引导助手(教用户怎么用你的产品)
聊天机器人看起来很复杂,但拆开来其实就两块:对话 UI + 调 LLM 接口。如果是微信,还要加一个微信消息转发层。
用 AI 快速搭的路径
网站内嵌聊天框:
- 一个对话 UI 组件(输入框 + 消息列表 + loading 状态)
- 一个
/api/chat接口,调 Anthropic API,系统 prompt 里写清楚机器人的角色和知识范围 - 流式输出(streaming)让回复感觉更快
微信公众号:
- 用 Node.js 或 Python 写一个接收微信消息的 Webhook
- 收到用户消息后调 LLM,把回复发回去
- 部署到 Vercel 或 Render
接入微信公众号比网站稍微麻烦一点(需要备案域名、微信认证),如果只是内部用或者测试,先做网站版本验证想法,再考虑接微信。
相关参考:用 AI 做微信小程序,里面有微信生态的接入细节。
对 AI 提需求示例
帮我做一个网站内嵌聊天机器人,用 React 组件实现。 功能: - 右下角有一个悬浮按钮,点击展开对话框 - 对话框里有消息列表(区分用户消息/AI 消息)、输入框、发送按钮 - 发送后调用 /api/chat 接口,支持流式输出(SSE) - AI 的系统 prompt 是:"你是 XX 产品的客服助手, 只回答关于 XX 产品使用方法的问题, 不清楚的问题请让用户联系 support@example.com" /api/chat 接口: - 使用 Anthropic SDK(@anthropic-ai/sdk) - 模型用 claude-haiku-4-5 - 支持流式返回(stream: true) - ANTHROPIC_API_KEY 从环境变量读,不要硬编码 对话历史保存在组件的 state 里,不需要持久化。 只要功能能跑,UI 简洁就好,不需要动画效果。
系统 prompt 是聊天机器人最核心的配置。一定要说清楚机器人的"角色"和"边界"——知道什么、不知道什么、不确定时怎么处理。不加约束的 LLM 会发散到什么都回答,在客服场景里容易出问题。
知识库接入(RAG 简单版)
如果你有一批固定文档想让机器人参考(比如产品手册、FAQ),最简单的方案是:把内容拆成段落,存到 Supabase 的向量表里,每次用户提问时先搜出相关段落,拼进系统 prompt。
Supabase 支持 pgvector 扩展,直接在数据库里做向量检索,不用单独搭向量数据库。文档量不大时(几百段)这个方案够用了。
自动化小工具:定时抓取 / 批处理 / 脚本
适合什么需求
- 每天定时抓取某个页面的数据,存到表格里
- 批量处理一批文件(重命名、转格式、压缩图片)
- 定期统计业务数据,发邮件或推送给团队
- 自动化一个原来手工做的重复操作
这类工具的特点是没有用户界面或界面极简,核心是"定时跑、不出错、出错了告诉我"。
用 AI 快速搭的路径
定时脚本(推荐 GitHub Actions):
对于不需要实时触发的任务,GitHub Actions 是最省事的方案——代码放在 repo 里,配一个 YAML,免费额度(每月 2000 分钟)对大多数脚本够用。
批处理脚本(本地或服务器):
用 Python 或 Node.js 写一个脚本,AI 对这类任务的代码生成质量很高,你只需要描述清楚"输入是什么、要做什么操作、输出到哪里"。
Serverless 定时任务:
如果需要调用外部 API 或访问数据库,可以用 Vercel Cron Jobs(免费版每天最多 2 个)或 Render 的 Cron Job。
对 AI 提需求示例
帮我写一个 Python 脚本,做以下事情: 1. 读取当前目录下的 data.csv 文件 (字段:date, product_name, sales_amount, region) 2. 按 region 分组,统计每个 region 的 sales_amount 总和和均值 3. 结果写入 output/report_{today_date}.csv 4. 打印一行摘要:"处理完成,共 X 条记录,报告保存到 output/xxx.csv" 如果 data.csv 不存在,打印"错误:找不到 data.csv"然后退出。 只用 Python 标准库 + pandas,不要引入其他依赖。 脚本顶部加一行注释说明用途和运行方法。
这个提法的关键:输入/输出格式具体(字段名、文件名、目录结构),错误处理要说(不然 AI 生成的脚本往往没有异常处理),依赖限制要说(不然它可能引入一堆你没装的库)。
把脚本挂成定时任务(GitHub Actions 示例)
让 AI 给你生成 GitHub Actions 的 YAML 配置:
帮我写一个 GitHub Actions workflow,每天北京时间 9:00 自动运行 仓库根目录下的 scripts/daily_report.py。 运行环境:Python 3.11。 脚本需要一个环境变量 SUPABASE_URL 和 SUPABASE_KEY, 从 GitHub Secrets 读取,变量名对应 SUPABASE_URL 和 SUPABASE_KEY。
生成的 YAML 放到 .github/workflows/daily.yml 里,在 GitHub repo 的 Settings → Secrets 里加上对应的变量,就跑起来了。
怎么用现成能力拼,别造轮子
这是这类小工具最容易走弯路的地方——很多人看到"发邮件"就想自己搭邮件服务器,看到"存数据"就想自己装 MySQL,看到"定时任务"就想买服务器跑 cron。
这些都不必要。下面是一份"现成能力替换表":
| 你想做的 | 用这个 | 免费额度够不够? |
|---|---|---|
| 发邮件通知 | Resend | 每天 100 封,够了 |
| 发群消息 | 企业微信 / 飞书 Webhook | 完全免费 |
| 存结构化数据 | Supabase | 500MB + 200 万次请求 |
| 定时执行脚本 | GitHub Actions | 每月 2000 分钟 |
| 对话 AI 接入 | Anthropic API | 按量付费,haiku 很便宜 |
| 文件存储 | Supabase Storage 或 Cloudflare R2 | R2 免费 10GB |
| 防刷/验证码 | Cloudflare Turnstile | 完全免费 |
| 推送到手机 | Bark(iOS)或 PushDeer | 完全免费 |
AI 工具对所有这些服务都有大量训练数据,你只需要告诉它"用 Resend 发邮件"或者"用 Supabase 存数据",它能直接给你写出接入代码。
关于如何用 AI 工具做出完整的落地页和对外产品,可以参考 用 AI 做落地页 / 营销站 和 用 AI 做 Chrome 插件 这两篇,逻辑是相通的。
共性的坑 / 故障排查表
| 症状 | 可能原因 | 排查方向 |
|---|---|---|
| 表单提交成功但收不到通知邮件 | Resend 未验证发件域名,或邮件进了垃圾箱 | Resend Dashboard 检查发送日志;Resend 免费版只能发到自己账号邮箱(需验证域名才能发任意邮件) |
| 聊天机器人回复很慢或截断 | 没开流式输出,或 Vercel Serverless 默认 10 秒超时 | 改用流式 SSE;Vercel 免费版超时上限是 10 秒,超了要升级或用边缘函数 |
| GitHub Actions 脚本跑失败说找不到环境变量 | Secrets 没配或变量名拼错 | Settings → Secrets 确认名称完全一致;YAML 里引用写法是 ${{ secrets.VAR_NAME }} |
| Supabase 插入数据 403 | RLS(Row Level Security)开了但没配策略 | Supabase Dashboard → 对应表 → RLS → 加一条允许插入的策略;或临时关掉 RLS 测试 |
| AI 提到"已弃用的 API"或用了老版 SDK 接口 | AI 训练数据有截止,某些 SDK 方法已更新 | 把报错信息连同 SDK 文档链接一起贴给 AI,让它对照文档修改 |
| 定时脚本跑了但没有数据更新 | 脚本里有异常被静默吞掉了 | 在脚本关键步骤加 print 或日志;GitHub Actions 日志里看实际输出 |
常见问题
Q:我不会 Python 也不会 JavaScript,AI 能帮我搭吗?
能,但有限度。AI 能帮你生成代码,但出了问题你需要能看懂报错、能描述清楚症状。完全不懂编程直接上手,往往卡在调试环节。建议先把 AI 辅助调试 这类基础内容过一遍,再来搭这类工具,事半功倍。
Q:表单工具用 Tally / Typeform 不香吗?干嘛自己搭?
如果现成产品满足需求,当然优先用。自己搭的优势是:数据完全在你手里、可以自定义逻辑(比如提交后触发特定流程)、没有每月订阅费。需求简单、不在乎数据自主权——用 Tally;需要定制逻辑、有技术基础——自己搭。
Q:聊天机器人的对话历史要怎么存?
看需求。如果只是简单客服,不存历史、每次对话独立就够了(上下文丢了就重新说)。如果需要记忆用户之前问过什么,可以把历史存到 Supabase,每次请求时读出来拼进 messages 数组。注意历史越长、tokens 消耗越多、成本越高——通常保留最近 10 轮就够。
Q:脚本跑报错了怎么排查?
两步:第一步,把完整报错信息(不是"有报错"这种描述,是完整的 traceback 或 error message)贴给 AI,让它看具体错在哪行;第二步,如果 AI 给的修复方案跑了还是有问题,把新的报错继续贴给它。大多数脚本类问题来回两三轮就能解决。
下一步
这三类小工具都是"一个人加 AI 工具能在一天内做出来"的范围。做完你会发现一件事:很多"我以为要做一个产品"的需求,其实一个脚本就解决了。
如果你想把这些小工具进化成真正的产品,下一步是 用 AI 从 0 做 SaaS MVP——那篇讲的是从 idea 到能给人用的完整路径。
相关延伸:
- 用 AI 做微信小程序(微信生态接入细节)
- 用 AI 做 Chrome 插件(浏览器扩展快速搭建)
- 用 AI 做落地页 / 营销站(对外发布产品)
- 回到 AI 编程教程全景 确认自己在哪个位置
👉 看看我们的 AI 编程实战体系课,或逛 AI 编程教程大全 把基本功打扎实。
本文为学习整理,关键步骤与代码请结合下列官方来源验证。