1. 摘要
吐槽类应用已经很多了,为什么还要做一个?
因为现有的产品,要么让你“冷静”,要么让你“倾诉”,但没有人给你一个痛快的出口——骂完之后还是觉得不爽,还能把讨厌的人写成一篇打脸爽文,亲眼看着他原地翻车。
“吐槽搭子”就是为这个做的。它不仅是一个AI赛博嘴替,陪你把憋屈骂出来;更是一个互动爽文生成器,把你的吐槽一键变成有反派设定、有分支选项、有反转结局的短篇小说。整个项目从想法到上线,我一个人花了3天。这篇文章主要聊聊我是怎么拆解需求、设计提示词、以及在这个过程中Trae SOLO具体帮上了什么忙。
2. 背景:一个“嘴笨”开发者的自我救赎
做这个小程序的起因很简单:我嘴笨。
堵车被加塞,摇下车窗张了张嘴,什么都没说出来。排队被插队,那人回头翻了个白眼,我脑子里骂了一万句,嘴里只挤出一声“哎”。回家越想越气,打开手机想找人吐槽,翻了一遍通讯录又放下了——这事儿跟谁说都显得自己小心眼。
市面上有冥想App、白噪音App、心理咨询App,全在教你“控制情绪”。但有时候人不想被教育,就想痛痛快快骂出来。
所以我决定做一个“AI嘴替”。光骂还不够过瘾,我还想加一个功能:把那个讨厌的人写成一篇打脸爽文,让用户在故事里把气彻底出完。这就是后来的“剧本模式”。
技术栈上没怎么纠结。微信小程序原生框架,CloudBase云开发做后端,混元大模型提供AI能力。唯一的问题是我不会写后端,Node.js水平仅限于console.log。这就是为什么我用了Trae SOLO——我需要一个能帮我写云函数、调数据库、还不把我绕晕的工具。
3. 实践过程
3.1 任务拆解
我把整个项目拆成了5块:
-
登录模块:微信一键登录,接CloudBase用户体系
-
聊天核心:消息收发、AI连续吐槽、打断逻辑
-
剧本模式:提取吐槽上下文,调用AI生成互动式爽文
-
语音输入:调用微信语音识别插件
-
分享卡片:Canvas画图、保存相册
拆完发现,最难的不是某一块的代码,而是第二块里“连续吐槽”的交互和第三块“剧本模式”的提示词——前者涉及实时数据推送,后者要求AI写出有逻辑、有爽感的互动小说。
3.2 用Trae SOLO写核心功能
连续吐槽功能
我把需求写成了一段话丢给Trae SOLO:
“创建云函数sendMessage,接收用户消息,调用混元大模型。让AI返回2-5条连续的吐槽消息,每条20-50字。云函数每隔1.5秒往数据库的messages集合写一条,前端用watch实时监听渲染。”
Trae SOLO给我生成了一版云函数代码。核心逻辑是:调用混元API时要求返回一个JSON数组,然后在云函数里用for循环配合setTimeout逐条写入数据库。前端用db.collection().watch()监听新增记录,收到一条就渲染一条。
这个方案的巧妙之处在于,它完全基于CloudBase原生能力,不用搭WebSocket服务。对于我这种后端小白来说,省了太多事。
剧本模式功能
剧本模式的需求更复杂一些:
“创建云函数generateScript,接收sessionId,提取会话最近5条消息作为上下文。调用混元大模型生成互动式打脸小说,要求返回反派设定、故事开头、三个分支选项及对应剧情、反转结局。输出格式为JSON。”
Trae SOLO帮我生成了云函数骨架,包括从数据库读取历史消息、拼接上下文、调用大模型、解析JSON返回。我需要做的只是把提示词填进去——而提示词本身,才是这个功能真正花时间的地方。
3.3 提示词迭代:从“客服腔”到“嘴替”,再到“爽文编剧”
代码跑通只是第一步。真正花时间的是调提示词。
吐槽模式
第一版提示词很简单:“你是一个吐槽搭子,陪用户一起骂。”结果AI的回复全是“是啊,太气人了”、“消消气,别跟他一般见识”——典型的客服话术,完全没有情绪。
我开始加约束:
markdown
对话规则:
1. 绝对不劝和、不讲道理、不说“算了”
2. 吐槽要生动、有画面感,多用比喻、反问、夸张
3. 第一条先共情,后续逐步升级吐槽强度
4. 禁止脏话,但可以用谐音梗、阴阳怪气
这版好了一些,AI终于开始“骂”了。
剧本模式
剧本模式的提示词迭代更折腾。
第一个问题:AI总把反派写成傻子——嘴笨、反应慢、破绽百出。打脸倒是打了,但一点不爽,像欺负弱智。
我意识到需要约束反派的智商:
原则:全员高智情商。打脸的快感来自“技高一筹”,而非“对手犯蠢”。
- 反派必须聪明、反应快,他的出招要让主角感到真实压力
- 主角的胜利靠抓住反派自己没察觉的破绽,不靠反派突然降智
第二个问题:面对“股市亏钱”、“广告烦人”这类没有具体靶子的吐槽,AI会创造出“绿魔K线精”、“广告妖怪”这种幼稚的卡通反派。
我加了约束:
虚构靶子必须是真实的人类或人类组织。吐槽股市就虚构一个操盘手,吐槽广告就虚构一个广告策划者。禁止将抽象概念拟人化为妖怪、幽灵、精灵。
第三个问题:反派受挫时,AI总写“他吼‘诬陷’却卡壳了”——太干瘪。
我改用“正反示例”的方式教它:
不要写:“他说不出话。”
要写:“他嘴张了张,又合上。喉结往上顶了一下,像咽了口沙子,最后只挤出几声气音。”
把这些示例放进提示词后,AI的描写明显有了血肉感。
3.4 几个踩过的坑
打断逻辑:AI连续输出时,如果用户突然发新消息,前端“正在输入”状态会卡住。Trae SOLO帮我定位到是isAIOutputting标志位没重置,给了修复代码。
语音识别:真机上返回格式和模拟器不一致,报错。Trae SOLO判断是回调里对result字段取值路径的问题,给了兼容两种格式的写法。
剧本生成超时:混元生成一篇完整爽文有时要8-10秒,用户干等着体验很差。我让Trae SOLO帮我加了一个Loading页,配了轮播趣味文案(“正在给反派写死法…”、“正在脑补翻车姿势…”),等待时间变得不那么难熬。
4. 成果展示
体验路径:微信小程序搜索“吐槽搭子”、“吐槽搭子Pro” 或扫描下方二维码
开源仓库:[“整理中,赛后开源”]
5. 总结
回过头看,Trae SOLO在这个项目里主要帮了我三件事:
-
写我不会的代码:云函数、数据库操作、Canvas绘图,这些对我来说是有门槛的。Trae SOLO生成的代码能直接跑,我省掉了大量查文档、抄代码、调试的时间。
-
定位我搞不定的Bug:打断状态残留、语音识别兼容性、剧本生成超时,这类问题如果让我自己排查会很痛苦。把现象和报错贴进去,它能给出分析方向甚至直接给修复代码。
-
陪我迭代提示词:这是意外的收获。我在调提示词的时候,会把AI的“失败回复”贴给Trae SOLO看,问它问题出在哪、应该怎么改。它给我的分析和建议,帮我更快找到了提示词的优化方向。尤其是剧本模式里“反派降智”、“妖怪化”、“受挫描写干瘪”这几个问题,都是和Trae SOLO反复讨论后解决的。
当然,它不是万能的。产品怎么设计、交互怎么打磨、提示词往哪个方向调——这些决策还是得自己来做。
但作为一个后端零基础的独立开发者,3天把一个带聊天和剧本生成双模式的AI小程序跑到上线,这个效率在以前是不敢想的。






