杨蓉

AI 解决方案 / Forward Deployed Engineer

头部内容平台 11 年文娱业务工程底子,2 个月以 AI 协作为主要工作方式,独立把 4 类真实需求转化为可交付的 AI 落地作品。

关于

定位是把业务需求"翻译"成 AI 解决方案的 FDE 角色:识别用户/客户的真实痛点,判断 AI 在哪一层能帮上忙,把它接入到现有工作流中,并通过作品与工程文档持续支撑决策。


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

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

为真实用户解决"每天发三餐给豆包但反馈泛泛"的痛点,在扣子(Coze)平台搭建带长期记忆+定时提醒+周复盘的 AI 教练。v1 版在扣子预览/调试下功能完整可用。

主体功能

核心流程功能描述
建档 首次使用时收集档案(昵称、身高、体重、目标日期、过敏忌口、口味偏好),后台静默算出基础代谢和每日热量目标
餐食识别与反馈 用户拍照或文字描述某餐 → 多模态识别菜品 + 估算营养 → 写入数据库 + 给出一句教练式反馈
周报汇总 每周聚合 7 天数据,给出趋势分析 + 下周建议;风格按"是否达成"在温柔/严师之间切换

主提示词只做意图路由(判断用户在哪个阶段、调对应工作流),所有确定性逻辑下沉到工作流。

智能体总览

扣子 Bot 编辑页全貌
Bot 编辑页全貌。左侧"人设与回复逻辑"写了角色、风格、关键策略、意图路由规则;中间挂载了三个工作流(建档/记餐/周报);右侧调试窗口跑通过一次完整建档对话,AI 给出温暖的欢迎语并播报三餐提醒时间。模型用豆包 1.6 深度思考版。

3 个核心工作流

建档工作流画布
建档工作流:开始 → 3 个问答节点依次问"昵称/身高体重/目标"(每个节点开启"从回复中提取字段",物理上不可能漏问/循环)→ 代码节点(按 Mifflin-St Jeor 公式算基础代谢、目标日期反推)→ 写入数据库 → 大模型生成欢迎语 → 变量聚合 → 结束。前置白名单闸门也在这个工作流里:选择器节点分流,不在白名单的用户走拒绝分支也给友好提示。
餐食识别与反馈工作流画布
餐食识别与反馈工作流:开始接收文本+图片 → 查询用户档案(没建档早分流引导建档)→ 多模态识别菜品 + 估算营养(输出 JSON)→ 识别失败时早分流(est_kcal=0 不浪费下游算力)→ 代码节点判断餐次(早/午/晚/加餐)和标签 → 查询今日已记录的餐 → 红旗判断(连续超标?蛋白不足?跳餐?)→ 大模型节点生成反馈文案(日常不报每日热量目标数字,避免热量焦虑)→ 写入餐记录 → 结束。
周报汇总工作流画布
周报汇总工作流:开始 → 代码节点算本周日期范围(字符串过滤而非数据库 ≥/<,避开扣子查询限制)→ 查询过去 7 天的所有餐记录 → 查询用户档案取目标值 → 代码聚合统计(日均热量、日均蛋白、餐次出勤率、标签分布、问题餐次列表)→ 判断本周风格(gentle/stern)→ 大模型生成周报(按口径要求整数化输出 + 周报里才允许出现目标数字)→ 结束。

判断 LLM 能力边界

起初用纯提示词收集用户档案信息会出现循环/漏问/不收尾。重构成"一步一问"的确定性对话节点流,物理上不可能漏问或循环。"什么时候不能信 LLM 自觉、该用结构兜底"是 AI 落地的核心判断。

保证流程合理性

预防性成本控制

预防扣子积分无法支撑大流量访问,加了昵称白名单作前置闸门。不在名单内的用户也给友好提示而非沉默——拒绝是个产品设计动作,不是把人挡在门外。

扣子 Coze · AI 工作流编排 · Prompt 工程 · 图文多模态识别


微信小程序 + CloudBase 云开发 · 2026.05

MyriadRun · 追星记录小程序

基于自身经历与对周遭朋友的观察,使用 CloudBase、微信开发者工具完成的追星记录微信小程序——它反攀比:核心是记录自己,不是比谁去得多。代码侧完全就绪、真机验证全过、等待提审。

主体功能

模块用途
主页聚合本命卡(入坑天数)+「这一路」数据概览 + 模块入口 + 一键生成纪念卡
入坑那天记录入坑日期 + 因缘 + 谁种草,首页显示"入坑第 N 天"
万里狂奔按场次+城市记录每场追星行程,自动算累计公里 + 自绘地图分享图
念念时刻时间轴形式记录追星生活中的瞬间(活动+感想+图片)
纪念卡一键生成"我和 TA 的故事"分享图,含累计数据
设置修改本命 / 常驻城市 / 退坑(数据全留不删)

核心界面

主页
主页。最上方是本命卡,显示当前本命名字 + 入坑天数。下方「这一路」数据概览四宫格:跟跑公里、巡回数、去过场次数、念念时刻数——「这一路」这个命名取代了常见的"战绩",是反攀比观点的语言落点。再下方是四个模块入口,最底部"生成纪念卡"主按钮 + 两个低调入口"里程怎么算·声明"——后两个是产品价值观的落点。
万里狂奔单个巡回页
万里狂奔 · 单个巡回页。顶部是巡回横向滚动条(用户可切换看不同巡回),下方大字显示当前巡回的累计公里数 + 场次数。"生成分享图"按钮(用户主动触发,不强推)。再下方按日期倒序列出所有场次:日期、城市、场馆、是否去过;每条可点编辑或删除。整页是用户记录追星行程的主战场。
场次编辑页
场次编辑页。新增或编辑某场,含日期选择器、城市选择器(内置城市库不用 GPS——隐私)、地点输入、活动类型(演唱会/路演/见面会/首映/舞台剧)、自由记录细节、"我去过这场"开关。边界规则直接告诉用户:"没选城市,该场次不上地图、不计里程"——不报错、不瞎猜,但用户知道为啥。
里程怎么算说明页
里程怎么算 · 诚信说明页。专门一页解释里程算法:"这是一个估算,不是里程表"、单程算法、同城多场按"趟"合并、为何只到城市级(隐私)。结尾:"每个数字都是走过的回声,用来和自己诚实地比"——把估算口径明明白白写给用户看,不假装精确、不诱导攀比。
入坑那天 + 脱粉确认弹窗
入坑那天 + 脱粉确认弹窗。入坑那天页记录入坑日期、因缘、谁种草,首页据此显示"入坑第 N 天"。页面藏了一个不显眼的「脱粉」入口;点击后弹自定义弹窗"谁的人生不是人来人往。所以你确定退坑了吗"。确认后给用户打 quit 标记但数据全留不删,未来重建本命可清除。一个追星产品主动给"退出"留体面出口、不惩罚性删数据。
念念时刻页
念念时刻页。时间轴形式按日期倒序展示用户记录的所有"念念时刻"——活动类型标签(演唱会/生日会/线下/其他)+ 日期 + 日记式文案 + 多张图。底部"新增念念时刻"主按钮。命名"念念时刻"取代了常见的"高光时刻",强调"主体性"——这是用户原话:"追星再美好也是基于一定的幻想的,我们应该保持自己的主体性"。

Canvas 自绘分享物(不引地图 SDK / 不引图表库)

分享图是静态展示无需交互动画,没必要引入图表库增大小程序体积。改用 canvas 画板手绘,根据用户去过的城市分布自适应三种排版(纯国内/国内+国外混合/纯国外)。

万里狂奔分享图
万里狂奔分享图:自绘中国地图(含港澳台、含南海段线)+ 飞线轨迹连接常驻地与去过的城市 + 大字公里数。底部有 MyriadRun 水印 + 小程序码(朋友圈分享后可被扫码进入)。
纪念卡
纪念卡。"我和 X 的故事"形式:头像首字徽标 + 跟跑公里 + 念念时刻数 + 入坑天数 + 巡回数 + 去过场次数。是首页"生成纪念卡"按钮的产物。两者都是纯 canvas 绘制。

关键业务规则修正

里程算法初版按"每场往返双程计",但同城连开多场时算重了(粉丝不会每场都回家)→ 修正到"单程 + 同城多场按趟合并"。新口径用单元测试锁住,防后续改动悄悄破坏业务规则。

失败处理 + 代码审查

微信小程序原生 · CloudBase 云开发 · Canvas 画板 · 单元测试


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

digitme · Markdown 文件到配音视频自动管线

把"从一份带配音脚本的 Markdown 文件自动产出竖屏配音解说视频"做成端到端管线,完整跑通、产出过真实成品。这是作品集里唯一端到端完整跑通、产出过真实成品的项目。

主体功能

管线分两条流水线,最后合成:

流水线处理
排版流Markdown 可见内容 → 排版工具 Gamma → 规范化的 PPT 配图(1080×1920 PNG)
配音流Markdown 中 HTML 注释里的配音脚本 → 本地 CosyVoice 声音克隆 → 配音音频 → 按字数切句生成 SRT 字幕
合成ffmpeg 把 PPT 图 + 配音音频 + 硬烧字幕拼成最终竖屏 MP4

成品视频示例

这是用本管线从一份 outline.md(约 12 页内容)跑出来的真实成品视频:9 页 PPT 配图、克隆音色配音、硬烧字幕,竖屏 1080×1920。点击播放查看完整效果。

Markdown 文件复用:一份文件两种用途

同一份 Markdown:可见内容供 Gamma 用以产出 PPT 配图,HTML 注释里的配音脚本供 CosyVoice 用以产出配音。两条流水线互不干扰,Gamma 渲染时会自动忽略 HTML 注释。

# 一九九九到二零零一|动词时代
- 专辑:第一张创作专辑、爱情万岁、人生海海
- 高频词性:动词 > 名词 > 形容词
- 关键词:跑、追、撞、笑、唱、走、爱、要

<!-- narration: 最早的三张专辑,动词的占比高到吓人。
歌词里全是跑、追、撞、笑、走、爱、要…… -->
管线产出的封面页
封面页(Gamma 排版后的产物)。
管线产出的内容页
内容页,对应上面那段 Markdown 输入。同一份文件同时驱动了画面排版和配音脚本。

核心决策

Python · CosyVoice 本地声音克隆 · ffmpeg 视频合成 · Markdown 工作流


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

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

对 4 个异构平台的百万级公开 UGC 内容,进行抓回和内容整合,并重新部署为静态内容站点。零失败率。

主体功能

这是个内容归档项目:从 4 个技术栈完全不同的原平台采集公开内容 → 清洗整合 → 部署成 5 个独立的静态站点(4 个分站 + 1 个聚合主站),全部走 Cloudflare Pages,零运维。

成品归档站点

聚合主站
聚合主站。把按年份编排的史料整合成可双击打开的 YYYY.html 年鉴页,每年含数百条纪事 + 图片 + 视频。本站为入口,hero 区双卡导向两个外部分站(贴吧/水木)。
贴吧精品区归档
贴吧精品区归档(独立 CF Pages 项目)。完整归档某社群早期贴吧的精品板块帖子,1478 个文件 / 109MB。保留贴吧主体样式(红色头部 + 列表行排版),看起来像原贴吧但是静态化、永不消失。
水木 BBS 归档
水木 BBS 归档(独立 CF Pages 项目)。归档水木清华 BBS 某板的内容,保留 BBS 终端窗口的浅蓝风格。从 root index 顶部留了一个原始站 newsmth.net 入口链接(致敬来源)。
台湾 PTT 看板精华区归档
台湾 PTT 看板精华区归档(独立 CF Pages 项目)。归档 PTT 某看板的精华区,保留 PTT 黑底白字的终端 BBS 风格。

规模与可靠性

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

多站异构适配

针对每个平台采用合适的抓取方式:带登录态的浏览器自动化、网页正文抽取库、平台 API、网页历史快照接口。没有"一个爬虫打天下"。

发现并应对静默失败

某些内容被删后会被网站悄悄重定向到现有内容——返回 HTTP 200、内容完整,肉眼无法识别"抓的不是预期那篇"。检测方法:对比同议题下多次抓取的评论 ID 集合,重合度异常高就说明被重定向了。几条 grep 就能跑出来。

配套工程纪律

浏览器自动化(基于 web-access skill)· Python · 多站异构适配 · 静态化部署


联系

欢迎讨论任何 AI 解决方案 / FDE / AI 落地方向的机会。