Making Of · 项目背后

我做这些,
是因为想解决一个问题。

每个项目背后都有一个「为什么」。这里是完整的动机、过程与结果——不是简历,是思路。

01 / AI Customer Service · ToB 通讯行业

大多数智能客服项目只关心「能不能用」。
没人提前告诉甲方:你真正想要的,在技术上根本不存在。

背景与问题

通讯行业 ToB 企业,客服依赖人工在微信客户群内实时响应。随着客户规模扩大,一线客服陷在大量重复性问题里——套餐咨询、故障报修流程、账号操作,每天大量占用精力。

甲方的初始期望很具体:AI 直接在客户群里回复,代替现有人工,效果一样。听起来很合理,但这正是项目最大的坑。

发现与洞察

我没有直接写方案。我先用 vibe coding 搭了一个 MVP,接入企业微信客服接口试跑——然后发现了关键约束:微信平台根本不开放第三方 AI 在外部客户群中自动回复的接口。合规路径只有微信客服单独会话,不是群聊直回。

这意味着甲方最想要的功能,在平台规则下技术上无法实现。早期发现这件事,本身就是这个项目最大的价值——它省掉了一个方向性错误。

我做了什么
1
调研 4 套候选方案(含 RPA)
2
MVP 试错,发现群聊约束
3
评估影刀 RPA 风险,建议排除
4
搭建 Coze 智能体并验证可用
5
甲方沟通,挖掘人机协同需求
6
输出分期落地建议
项目结果
三套方案技术验证完毕 · 进入甲方选型决策阶段
发现关键平台约束 独立主导全流程 合规风险识别
查看完整案例 →
02 / Music Assistant · 全栈 · 已部署上线

音乐推荐的问题从来不是「你喜欢什么」,
而是「你此刻需要什么」。

问题

现在几乎所有音乐 App 的推荐逻辑都是同一套:分析你的历史播放 → 找相似的歌 → 推给你。

但这有一个根本性的问题:情绪是实时的,历史是滞后的。 同一首歌,在雨天周五下午你需要它,在晴天周一早上你未必需要。过去喜欢的东西,不代表此刻适合。

我想做一个真正「读懂当下」的播放器,不是 shuffle 你的历史记录,而是感知你现在所在的那个当下。

洞察与解法

「当下」由几层组成:外部环境(天气、时间)+ 日程状态(你今天有什么事)+ 你说的一句话(情绪描述)。把这几层拼在一起,就是一个完整的上下文。

我把实时天气、日历事件和用户当下的情绪表达注入 AI 的 System Prompt,让它不只是知道你喜欢什么,而是知道你现在处于什么状态。推荐的依据是当下,不是历史。

同时设计了 Anthropic Claude → 智谱 GLM 双模型降级链路,保证主服务不可用时自动切换,用户无感。

技术实现路径
1
Vue3 + Node.js 全栈搭建
2
接入天气 / 日历 / 情绪上下文
3
WebSocket 流式 AI 推送
4
Claude → GLM 双模型降级
5
Zhipu TTS 语音合成
6
部署上线,持续运行
项目结果
全栈独立部署上线 · 完整 AI 推荐 + 流式播放交互闭环
Vue3 · Node.js WebSocket 实时推送 双模型降级链路 已上线
打开音乐助手 → 查看完整案例 →
03 / Food Map · WebGL · 已部署上线

我想知道四川为什么那么辣——
辣椒根本不是中国原产的。

好奇心的起点

有一天我突然意识到:辣椒在明朝末年才从美洲传入中国,但现在川菜、湘菜、贵州菜完全离不开它。这么短的时间里,它是怎么彻底改变了中国西南的饮食文化的?

顺着这个问题往下查,我发现每一道菜背后都藏着一段迁移史。番茄、玉米、红薯、花生——餐桌上一半的食材都不是"本地的"。食物记录着人类的流动,比文字更诚实,也更难被删除。

我想做什么

我想把这些「餐桌下的历史」变得可以被看见——不是一篇文章,是一个可以转动、可以搜索、可以筛选的工具。

一个可以转动的 3D 地球,上面标注中国特色食材的地域分布,点击可以看到它的起源地和传播路径。用空间感知时间,用地图讲历史。

这是一个纯粹出于好奇心做的项目。它没有「用户需求」,没有「业务目标」,只有一个想弄清楚的问题——然后用代码来回答它。

从想法到上线
1
整理食材起源数据集
2
globe.gl 渲染 3D 地球
3
GeoJSON 省份边界 + 口味维度着色
4
Autocomplete 搜索 + 多选筛选
5
性能优化,解决大量 HTML 标签瓶颈
6
部署上线
项目结果
独立全栈部署 · WebGL 可交互 3D 地球 · 收录数十种食材传播路径
WebGL · globe.gl GeoJSON Vanilla JS 已上线
探索地图 → 查看完整案例 →
Build 04 / PM 工具箱 · 个人工具项目 · 5 个工具

职场里有一类问题不在技术层——
「再打磨一下」到底是什么意思?这个需求写完了吗?

出发点

做产品的过程中,有大量信息是模糊的——甲方的话、领导的态度、自己写的需求文档。这些东西没有人帮你翻译,但影响极大。

我想做一套工具,把「职场语言」这件事当成产品问题来处理:输入一段话,输出可以直接行动的信息。

五个工具的逻辑

话术解码器——读懂对方;需求翻译机——拆清楚自己;反向话术生成器——把想说的「不」变成职场上说得出口的话;PRD 漏洞扫描——用工程师视角找出需求盲区;职场黑话生成器——把直白的话翻译成三种体面度,和解码器形成镜像闭环。

五个工具本质上是同一件事:把模糊变成可操作。区别只是输入方向不同。

设计过程
1
定义四个工具的 System Prompt,花了比写前端多两倍的时间
2
接入 MiMo + GLM 降级链路
3
设计 JSON 输出结构与四套前端渲染逻辑
4
集成到现有服务器,部署上线
项目结果
五个 AI 工具 · MiMo + GLM 降级 · 全部已上线
MiMo · GLM 降级 Node.js Prompt Engineering 已上线
打开工具箱 →
Build 05 / 胖豆智能陪练 · 对话式销售训练改版

一线需要的是「打开就能练」,
练的不只是话术,还有判断什么时候推什么产品。

起点与素材

接手一个面向一线销售的话术陪练工具:有原始 HTML 对话原型、PRD、甲方参考截图,以及 3 份产品资料 md + 4 张产品图。

甲方诉求很明确:首页直接进入对话,顶部有 Logo 和欢迎语,底部给几个快捷入口。 现状是功能入口分散、信息架构重复,用户不知道先点哪里。

关键洞察

原版把产品列表、搜索、快捷入口、推荐卡片塞在多个位置,同一个产品出现 5-6 个入口,练与查混在一起。判断:必须把路径收敛。

提出「练习」与「选品判断」同时训练的模式:对话中实时提示需求线索,最终考核推品决策,不只是背话术。

我做了什么
1
读原型 + PRD + 甲方截图,明确首页就是对话入口
2
把 3 个 md + 4 张图提炼为 6 个产品的客群 / 卖点 / 话术 / FAQ 知识库
3
做第一版可交互原型:保留对话风格,补产品训练 + 产品库模块
4
Review 后重构信息架构:收敛为「开始练习 / 产品知识 / 首页动作卡」三条主线
5
修复体验问题:情绪选择缺失、快捷练习无响应、返回首页失效、输入框位置错误、随机匹配异常等
6
设计「智能选品练习」:对话中累积线索 → 实时需求提示 → 练推品时机与推荐,交付原型 + data.js + 功能设计/介绍文档
项目结果
三条清晰主线 + 智能选品练习模式;交付可点击原型、结构化产品库、功能设计说明与功能介绍文档
对话式陪练 产品改版 结构化知识库 智能选品
查看作品卡片 → 索取原型与文档 →
Lab 04 / 人生决策回旋镖 · 个人实验性项目

每个人生选择都会回来找你。
区别只是它回来的时候,你还记不记得当初为什么那样选。

出发点

做PM工具箱的时候我在想一个问题:那些"严肃工具"——话术解码、需求翻译——都在帮人处理当下的职场焦虑。但还有一类焦虑没人帮:你做的那些人生大选择,到底会把你带向哪里?

38.8万彩礼、辞编制去大厂、掏空六个钱包付首付——这些选择没有撤销键。但每个人在做之前,都在脑子里偷偷推演过。我想把这个"偷偷推演"变成一个可以玩的体验。

设计思路

核心设计是"用统计局公报和新闻联播的语气"推演人生。严肃的统计数据乘以荒谬的人生境遇,就是黑色幽默。

荒谬程度随时间递增:5年后还算合理,10年开始离谱,15年荒唐,20年科幻。每一轮结束后面对一个新的十字路口——就像真正的人生一样,选择影响选择,蝴蝶效应层层叠加。

最后的"揭穿时刻":所有预测都是AI编的,但你刚才确实认真想了想。这就是做决定的意义。

设计过程
1
设计 System Prompt,扎根社会现实:彩礼、35岁危机、房贷、考公
2
多轮分支架构:选择→推演→再选择→再推演,因果链不断
3
前端多步体验设计:时间线进度条、卡片逐条展开、暗色仪式感
4
终章报告:串联所有选择的完整人生故事 + 荒谬统计 + 揭穿时刻
项目结果
多轮分支推演 · 社会现实黑色幽默 · 平行人生终章报告
MiMo · GLM 降级 多轮分支叙事 黑色幽默 实验性项目
发射回旋镖 →
Lab 01 / 荒谬正经学刊 · 个人实验性项目

认真和荒谬不是反义词。
用足够严肃的方式对待一个荒谬的问题,它会变得比你想象的更有意思。

出发点

有很多问题被当成“不严肃”而被忽视,但它们往往突破了我们和世界真实关系的陈规。蚊子减脂、拖延症优化、语义病毒学——这些题目不是无聊,它们只是被放在了错误的封面上。

学术期刊的格式是“认真”的外形。我想把这个外形套在最不认真的内容上,看看会发生什么。

发现

当你用摘要、方法论、结论的结构展示“蚊子为什么对甜食有执念”,读者会不自觉地认真对待它。形式决定信息被对待的方式。

这本期刊没有在开玩笑,它在认真地提问:如果把我们忽视的问题放进最严肃的论证框架里,它们会说什么?

创作过程
1
确定荒谬但值得认真对待的选题
2
设计学术期刊排版与论文结构
3
AI 辅助撰写摘要、方法论、结论
4
部署上线,持续更新新期
项目状态
已上线持续更新 · 严肃对待每个不严肃的问题
荒谬与认真并存 AI 辅助创作 实验性项目
阅读论文 → 查看完整案例 →
Lab 02 / 无聊哲学问答机 · 个人实验性项目

大多数“智慧问答”都想给你答案。
我想做相反的事:一台帮你更精确地承认自己不知道的装置。

问题所在

真正的哲学问题——意识是什么、时间有开始吗、自由意志存在吗——没有答案。但大多数回应这类问题的内容都在假装一个确定性,遇到困难的就绕开。

我想做一个诚实的装置。不绕开困难,直接面对它:我不知道。

设计思路

苏格拉底的呀哩:“我知道我不知道”是哲学的起点,而不是失败。承认无知本身是一种知识。

我希望这台机器能让你感受到:提出一个真正的哲学问题不是失败,而是进入了一个更诚实的对话。它只接受一个答案的机制,正是为了强调这一点。

设计过程
1
确定「只接受一个答案」的核心机制
2
设计反直觉、自我矛盾的回答集
3
接入 AI 生成苏格拉底式回应
4
保持极简界面,不加任何干扭
项目状态
已上线 · 提出深奥的问题,只接受一个答案
苏格拉底式交互 AI 回应 实验性项目
开始思考 → 查看完整案例 →
Lab 03 / AI 塔罗解读系统 · 个人实验性项目

塔罗的有趣之处不在于它“准不准”,
而在于它怎么让你觉得它准。

好奇心的起点

我对塔罗感兴趣不是因为相信它,而是因为我很好奇:为什么那么多人觉得它「准」?

答案是巴纳姆效应——足够模糊的描述,每个人都会觉得说的是自己。星座运势、心理测试、塔罗解读,都依赖同一个机制。

设计意图

我想做一个塔罗解读系统,然后在最后把这个把戏告诉你。

首先让你体验——神秘的卡牌、个性化的解读、似乎准确的描述。然后告诉你刻才发生了什么。同时理解「为什么有趣」和「为什么不可信」。

设计过程
1
研究巴纳姆效应的语言特征
2
设计 AI Prompt 生成符合巴纳姆特征的解读
3
设计「揭露」环节的时机与文案
4
加入塔罗牌动效与界面氛围
项目状态
已上线 · AI 解读 + 巴纳姆效应揭露
认知心理实验 AI 生成 实验性项目
开始问卜 → 查看完整案例 →
← 返回主页