做AI工具,如何快速开发?
做AI工具,如何快速开发?
大家好,我是毛哥,这两周一直在用AI全量做vibe coding,感觉唤醒了老年程序员的第二春。
今天先复盘我用python开发AI小工具的感受。
本文来自真实项目复盘:ToolKit 工具平台(已上线17个工具,包含模型网关、截图记账、语音转写、视频处理等)
这个流程我已经在写本文的时候打包skill了,GitHub地址放在文章最后。

1. 先定规范,再写代码
很多人一拿到需求就开始写代码,写到一半发现结构乱了,推倒重来。
我的做法:每个工具动手前,先写一份 SPEC/SKILL.md。
这个文档 不需要多正式,关键是回答这几个问题:
-
这个工具做什么?谁用? -
有哪些核心功能模块? -
数据怎么存储? -
API 怎么设计? -
验收标准是什么?
这本质上是把需求装进脑子里之前,先倒进文件里。写 SKILL.md 的过程就是梳理需求的过程,很多坑在写文档时就暴露了,而不是等到写代码。
2. 搭建可复用的基础设施
做第一个工具时辛苦,做第十个工具时爽——这是基础设施的力量。
我的 ToolKit 公共库:
toolkit/lib/├── BaseService # 服务基类(所有工具继承)├── ok / error # 统一响应格式├── AppResponse # 响应包装└── utils # 工具函数每个新工具只需要写自己的业务逻辑,底层的日志、错误处理、响应格式全部复用。
收益:一个新工具的核心代码量,从 800 行降到 200 行。
3. 设计可扩展的架构
比如模型网关,最初只接了阿里百炼。后来要接 DeepSeek、OpenAI、Google…如果当初写死了,直接改崩。
所以我从一开始就做了三层抽象:
# 底层:各个厂商的原生 API 适配器classDashScopeProvider: ...classDeepSeekProvider: ...# 中层:统一接口抽象classAIProvider(ABC): @abstractmethoddefchat(self, messages): ...# 上层:OpenAI 兼容层(一个类复用 8 家厂商)classOpenAICompatProvider(AIProvider): ...# 再加厂商 → 加一个 Provider 类,上层不动
4. 改新功能 ≠ 破旧功能
永远不要因为添加新功能而破坏已有功能。
这条说起来简单,做到极难。我的具体做法:
修改前必做备份。改 main.py、路由、核心逻辑前,先 git commit 或复制备份。
修改后验证清单:
-
首页加载正常 -
分类标签切换正常 -
搜索功能正常 -
热榜弹窗正常 -
每个工具页面可访问 -
评分功能正常
5. 用 Karpathy 四大原则指导编码
Think Before Coding — 先想清楚再动笔。问自己:这个需求的核心是什么?最简单的实现方式是什么?
Simplicity First — 如无必要,勿增实体。能用 500 行解决的问题,不要写到 2000 行。
Surgical Changes — 精准手术式修改。只改需要改的地方,不做连带改动。
Goal-Driven Execution — 动手前先定义成功标准。代码写完对照标准验证,而不是「感觉差不多了」。
6. 重视数据持久化
很多工具上线时功能正常,关机重开后数据全没了——因为没做持久化。
我的原则:凡是有状态的数据,全部落盘。
-
用户配置 → JSON / SQLite -
错题集(AI数学游戏)→ JSON -
评分/评价 → ratings.json、reviews.json -
访问统计 → stats.json
用 JSON 的好处是不需要装数据库,Python 原生支持,读写都简单。数据量大了再迁移到 SQLite。
7. 前端不要从零画
用 TailwindCSS 做样式,ECharts 做图表,这是我的标准栈。
不自己写 CSS 的好处:
-
开发速度快 10 倍 -
样式一致性好 -
响应式天然支持
不要在样式上浪费精力,把时间花在核心功能和用户体验上。
8. 重视预览和反馈
去水印工具原来只能「上传 → 处理 → 下载」,用户看不到中间状态。增加预览后,体验提升明显:
上传文件 → 立刻预览原图处理完成 → 立刻预览结果图不满意 → 重新框选区域再处理小改进,大收益。用户的信任感来自于「看得见」。
9. 善用子进程和异步
AI 工具常常需要调用外部服务(Whisper、FFmpeg、LLM API),这些操作容易阻塞主线程。
- FFmpeg 调用
:用 subprocess.run(),设置合理的 timeout - 长任务
:用后台线程或队列,不要卡死 Flask 请求 - 进度反馈
:用 SSE(Server-Sent Events)让用户看到实时进度
10. 快速开发的核心心法
先跑通,再优化;先解决有没有,再解决好不好。
不要追求一开始就设计完美的架构。先让工具跑起来、用户能用上,然后再根据实际使用情况迭代。用起来的工具才有改进的价值,躺在设计稿里的完美方案一文不值。
附:工具开发 9 步法
1. 需求分析 → 确定工具类型(Inline / Blueprint)2. 写 SKILL.md3. 创建目录结构4. 编写核心逻辑模块5. 集成公共库6. 功能自测7. Debug 修复8. 上线启动9. 完善文档
工具快速开发的本质,是把经验固化成规范,把规范固化成基础设施,把基础设施固化成肌肉记忆。共勉。
地址如下:
https://github.com/ymm-linux/AI-toolkit-skill
夜雨聆风