杨蓉

AI 应用工程 / 解决方案

头部内容平台 11 年文娱业务工程底子,2 个月用 AI 协作驱动补栈实战,交付 4 个跨语言跨平台的完整作品。

关于

把 AI 协作当作日常工作方式,而不是新奇玩具。识别"什么时候不能信 LLM 自觉、必须用确定性结构兜底"的边界,能独立从需求做到交付上线。每个作品都有完整 spec / plan / CLAUDE.md 工程文档背书,可深聊到任何工程或产品细节。


扣子 (Coze) 搭建 · 豆包智能体 · 2026.05

小食官 · 豆包饮食教练智能体

把朋友"每天手动把三餐发给豆包却得不到结构化反馈"的真实痛点,做成一个有长期记忆、会定时提醒、能周复盘的饮食教练智能体。

不写代码是一个工程决策

用户的硬约束是"必须在她已习惯的豆包 App 里用"。自研后端连这条都满足不了,还要自接视觉模型、自搭数据库、长期付 token 费和运维。评估后选择扣子搭建 + 一键发布豆包,多模态/数据表/发布渠道全是平台原生能力,零运维。识别约束 → 让约束决定技术栈,而不是用技术自尊去写代码。

扣子 Bot 编辑页全貌:人设/意图路由/工作流挂载/调试对话
Bot 编辑页全貌:主提示词只做意图路由(建档/记餐/周报三分支),不自己收集或计算;右侧调试窗口是一次跑通的真实建档对话。

核心决策:纯提示词建档不可靠 → 重构成确定性问答节点工作流

最初让主提示词多轮收集 7 个字段。实测 LLM 自己记"已收集哪些"+ 自己决定收尾不可靠:会漏问、循环、不结束;扣子的提示词优化器只能改措辞改不了架构,甚至把收尾逻辑整段删掉导致死循环。解法:拆成顺序执行的「问答」节点,物理上不可能漏问/循环。识别"不能信 LLM 自觉"的边界、用确定性结构兜底——这是 AI 应用工程最核心的判断。

save_profile 工作流画布全景,确定性节点编排
save_profile 工作流:开始 → 问答节点链 → 代码节点(算 BMR)→ 写库 → 大模型生成欢迎语 → 变量聚合 → 结束。白名单闸门用变量聚合节点绕开"扣子只允许一个结束节点"的平台限制。

其他可逐条 defend 的决策

扣子 Coze · 工作流编排 · Prompt 工程 · 多模态识别 · BMR 业务逻辑


微信小程序原生 + CloudBase serverless · 2026.05

MyriadRun · 追星记录小程序

帮粉丝记录追星生活、量化"为 TA 奔波了多远"、一键生成纪念卡的微信小程序——但它反攀比:核心是记录自己,不是比谁去得多。

首页:本命卡 + 「这一路」概览 + 模块入口
首页:本命卡(入坑第 N 天)+ 「这一路」概览(跟跑公里/巡回/场次/念念时刻)+ 模块入口。底部「里程怎么算 · 声明」两个低调入口,是这个产品价值观的落点。

最关键决策:砍掉预置内容库

预置库体验最好但三大长期成本——持续人力维护、封面版权、冷启动流失。一人团队扛不起持续内容运营——这不是"做不出",是"判断不该做"。MVP 全部手动录入,预置库彻底砍掉。录入侧把边界处理做进 UI:

新增场次表单,明示边界规则
"没选城市,该场次不上地图、不计里程"——边界规则不是埋在代码里,是直接告诉用户。漏选地点不报错、不瞎猜,只是不计入。

里程口径迭代 B → B′,并做成 app 内可见的诚信说明

初版 B(每场往返×2)在同城连开多场时不合理 → 改 B′:单程、同城多场按"趟"计、只算去过且选了城市的场次。这套口径用单测锁死(改动必须同步改测试)。更关键的是——把估算口径明明白白写给用户看:

里程怎么算说明页:诚实标注估算口径
专门一页解释"这是估算、不追求精确到公里"、单程算法、同城分趟规则、为何只到城市级(隐私)。结尾:"每个数字都是走过的回声,用来和自己诚实地比。"不假装精确、不诱导攀比,是有意的产品诚信设计。

反攀比的产品价值观(贯彻到交互)

脱粉确认弹窗:反攀比价值观的可见交互
入坑那天页藏了一个「脱粉」入口,弹窗文案"谁的人生不是人来人往。"确认后给用户打 quit 标记但数据全留不删,重建本命可清除。一个追星产品主动给"退出"留体面出口、且不惩罚性删数据——产品观点与多数同类相反,且贯彻到了命名("高光时刻"→"念念时刻")和这个交互。

全栈交付:canvas 自绘分享物(不引地图 SDK / 不引图表库)

万里狂奔分享图:canvas 自绘中国地图 + 飞线轨迹
自绘中国地图 + 飞线轨迹,三种模式自适应(纯国内聚焦 / 国内+国外边缘标记 / 纯国外贴合);含港澳台尤其台湾。
纪念卡:canvas 自绘另一形态
纪念卡另一形态。两者都是纯 canvas 绘制,前端硬功不靠堆库。

工程硬约束

微信小程序原生 · CloudBase · canvas 自绘 · TDD 单测 · 自适应投影算法


Python AI 内容管线 · 2026.04–05 · 端到端完整跑通

digitme · Markdown → 配音解说视频自动管线

写一份带"配音脚本"的 Markdown,自动产出竖屏配音解说视频——克隆音色、硬烧字幕、零付费 API。这是作品集里唯一端到端完整跑通、产出过真实成品的项目。

input → output 对照

输入是一份双层 Markdown——可见部分给 Gamma 排版,每页一段 <!-- narration --> HTML 注释给本地 TTS 配音。一份文本同时驱动"排版"和"配音"两条流水线,互不干扰(Gamma 渲染时忽略 HTML 注释)。

# 一九九九到二零零一|动词时代
- 专辑:第一张创作专辑、爱情万岁、人生海海
- 高频词性:动词 > 名词 > 形容词
- 关键词:跑、追、撞、笑、唱、走、爱、要
- 句式短、动作密:「我不愿让你一个人」「再爱我一次」

<!-- narration: 最早的三张专辑,动词的占比高到吓人。
歌词里全是跑、追、撞、笑、走、爱、要…… -->

同一份 outline.md 跑出:规范化 1080×1920 slide PNG → CosyVoice 克隆音色配音 → 切句 SRT → ffmpeg 合成。完整成品视频 12MB / 9 页带配音带字幕。

管线产出的封面页 slide
封面页 slide。
管线产出的内容页 slide,对应上面那段 input
内容页(对应上面那段 input)。同一份 Markdown 同时驱动了画面排版和配音脚本。

核心工程决策

Python · 本地 TTS (CosyVoice) · ffmpeg · 双 venv subprocess · sha256 内容寻址缓存


CDP 浏览器自动化 + 多站异构 · 2026.04–05

跨平台 UGC 采集 + 静态化部署管线

把分散在 4 个技术栈完全不同的平台上的百万级公开 UGC,零失败率地采集、清洗、静态化并部署上线。

规模与可靠性

平台规模结果
论坛 A2095 个唯一帖 ID100% 处理:有效 1484 / 已删 618 / 真失败 0 / 遗漏 0,12 GB 快照
问答站39 个高热回答5,678 主层评论 + 36,076 子楼 + 25,492 图 URL
BBS B / C多板块万级帖异构接口分别适配

最硬的一条:scraper 静默重定向污染检测

爬虫最危险的不是抓不到(会报错),是"看似抓到了,抓的是别的东西"——URL 失效后站点静默重定向到另一个页面,HTTP 200 + 数据完整,肉眼无法发现。

检测法:对同源多次抓取建立元素级唯一 ID 集合,跑两两交集——交集 ≥95% 即被重定向到那个兄弟页(实测一例 dataId 交集 148/150);与所有兄弟交集 0% 但元数据时间集中在某远年份 + 极低回复数 → 被重定向到了主页/错误页。几条 grep 就能跑出来,比人肉逐个验 URL 快一个量级。

这条决定了"零失败率"是真的,不是自我安慰——多数爬虫工程师只会处理"抓不到"(会报错的失败),想不到"抓到的是别的东西"(HTTP 200 但内容错位的失败)。

配套工程纪律

CDP 浏览器自动化 · 多站异构适配 · 断点续跑 · 静态化部署 · 字体工程


联系

欢迎讨论任何 AI 应用工程 / AI 解决方案方向的机会。