翻页 · F 全屏 · 1/2/3 切主题 · L 切语言
datafun-agentic-ai-talk — Cursor · main
⌘K · ⌘L · ⌘I

DataFun · Agentic AI 大会

写代码
构建产品

AI Agent 正在改变 Builder 的工作流

mainUTF-8Markdown
OPEN QUESTION先认识一下现场
举手就好

你做过一个
只给自己用的 App 吗?

没上架也算。只要它真的在你手机上跑过、你自己用过,就算。

POLL · BUILD IT → USE IT → SHIP IT
ABOUT ME3 天 MVP · 76 天上架
Mai Yang 个人头像
Mai Yang · 杨文
一个产品,三份一手记录

3 天做出 MVP
76 天走到 App Store

01真实构建04-14 开始,04-16 交付 0.1.0;第 3 天已经是一个可以每天使用的 App。
02完整留档468 commits、213 段 AI 对话、11 条 rules——每次判断和翻车都有记录。
03工程视角十余年后端工程师——正因为会写代码,才更清楚这次变化改变的不是「写代码」本身。
WHY ME · 76 天一手构建记录
OPENING HOOK一个真实的产品
先说一件反常识的事

一个用 AI 造出来的 App

但是

它现在,没有任何 AI 功能。

ANSWER · AI 在工作流里,不在功能列表里
PRODUCT PRINCIPLEAI 在工作流里,是否也要在产品里?
我还没有想完这道题

AI 不该因为能加
就被加进产品

01不打断收听AI 应该顺着收听日常出现,而不是让用户停下来操作另一套流程。
02不替用户做决定帮助理解、回想和发现,但不替用户判断什么值得听。
03提供真实增量只有确实降低理解成本、而且传统功能做不好时,AI 才值得走到台前。
PRINCIPLE · 不是为了有 AI,而是为了让收听更有价值
THE NUMBERS全部来自 git 与对话记录
从 MVP 到上架的流水账

先看数字

从开工到上架76 天3 天

04-14 写下第一行,04-16 就能每天用;一路打磨到 06-29 提交 App Store,正好 76 天。

协作密度468 / 213

commits / AI 对话段数,每天 2.6 段对话。

给 AI 的制度11 条

Cursor rules + 7 篇 spec,每条背后是一次翻车。

最大一次砍功能−4,830 行

0.15.0 一个 PR,95 个文件;做产品也要敢于让 AI 做减法。

EVIDENCE · git log + 213 conversations
talk/outline.md — ContextEcho
⌘K · ⌘L · ⌘I
outline.md
123456
40 MIN · 4 ACTS

今天讲四件事

talk/40 min · 37 slides + Q&A
📄01 起点先写约束,再写代码 · 4 min
📄02 AI Agent 改变了什么五个真实案例 · 11 min
📄03 三个失败,三次校准功能做出来,不等于产品做对 · 10 min
📄04 可迁移的方法四个反复验证过的工作法 · 7 min
📄05 收尾与 Q&ATakeaways · 二维码
main40 min + Q&A
№01
CONSTRAINTS FIRST
01
起点

先写约束
再写代码

2026-04-14,第一条对话给的是 Plan Mode,不是「帮我写代码」。

PROBLEM → CONSTRAINTS → CODE
STARTER CHAT · 2026-04-14ChatGPT
ChatGPT 将需求整理为 MVP Build Pack
ChatGPT · 从模糊需求整理 MVP Build Pack
构建之前,先收敛需求

先把想法,
收敛成可执行边界

我先和 ChatGPT 聊清需求。它没有直接给一份大 PRD,而是把想法整理成一个小而硬的 MVP Build Pack:做什么、不做什么、页面、交互与数据模型。

SOURCE · ChatGPT 需求梳理原文
FIRST CURSOR PROMPTPlan Mode
从 ChatGPT 到 Cursor

拿到完整提示词,
才开始构建

This is not a traditional language learning app… 完整提示词带着产品定位、技术边界和明确的 To-dos 进入 Cursor Plan Mode。

将完整提示词交给 Cursor Plan Mode 开始构建
Cursor · 完整提示词进入 Plan Mode,开始构建
HANDOFF · BUILD PACK → CURSOR PLAN MODE
01-start/positioning.md — ContextEcho
⌘K · ⌘L · ⌘I
12345
这个定义,后来被我推翻了两次

伏笔:三次产品定位

4 月英语学习增强层英文信息 → 中文理解 → 个人沉淀
5 月音频优先的「回声」捕捉 → 回顾 → 重建记忆
6 月克制的中英文音视频收听工具每天都想打开的播放器 + 一面镜子
main3 rewrites
№02
WHAT AGENTS CHANGED
02
AI Agent 改变了什么

五个
真实案例

设计 · 调试 · 学习成本 · 架构 · 管理——五个具体塌掉的门槛,全部来自对话记录。

UI · DEBUG · API · REFACTOR · RULES
02-cases/workflow.md — Builder
⌘K · ⌘L · ⌘I
workflow.md
12345
以前是流水线,现在是反馈环

工作流变成了循环

以前 · 线性

每一步都有门槛

  • Idea → 设计 → 写代码 → 调试 → 发布
  • 不会设计就卡在设计,不会调试就卡在调试
  • 一个人做一款 iOS App 上架 ≈ 团队半年
现在 · 循环

门槛塌了,循环转起来

  • Idea ⇄ AI → Prototype ⇄ AI → 产品 ⇄ 用户反馈 ⇄ AI
  • 卡住的地方,变成一次对话
  • 瓶颈从工程能力,转移到判断力
mainold → new
CASE 1 / 5 · UI审美判断留给人
案例① · 「我不喜欢紫色」

一次对话,
换掉全 App 的主题色

「我不喜欢紫色,很容易让人觉得 low,AI 味道很重。」—— 附一张 Overcast 截图 + 色值 #FC7E11,主题色、分类色、图标一次重构。

App 图标从紫色方案改为橙色方案的前后对比
Before / After · 紫色 AI 味 → Overcast 橙
COMMIT · refactor(theme):indigo → Overcast orange
02-cases/debug-loop.md — diagnostics
⌘K · ⌘L · ⌘I
debug-loop.md
12345
案例② · 不会 Instruments 怎么办

逼 AI 给自己建可观测性

01

真机现象

「点击播客单集要卡 5 秒」,反复描述修不好。

02

转折点

「你看不到我手机——那就在 App 里建一套诊断日志导出。」

03

现场取证

跑步遇到闪退 → 导出日志 → 微信传回电脑。

04

数据回流

日志扔进对话,从「我描述现象」升级为「我提供数据」。

05

定位根因

SwiftData 主线程查询 + SwiftUI 每帧重绘 → 采样时钟 + 节流。

mainobservability first
CASE 3 / 5 · API每个平台,都有一套接入规则
案例③ · 陌生平台接入

贴一个失败的链接,
AI 去研究接入规则

小宇宙、喜马拉雅、acast、Substack、Lex——差异藏在签名、风控、错误码和时间轴格式里。以前要读几天文档和逆向帖子,现在当天提问、当天验证。

01BilibiliWBI 签名 + 风控 −352 + dm_img 指纹对齐。
02YouTubeembed error 152 / TLS 环境问题。
03Podcast RSSPodcast Index transcript 标准 + 各家时间轴格式。
POINT · 陌生平台的接入成本显著降低
CASE 4 / 5 · REFACTORAI 的默认倾向是做加法
案例④ · 对话原文

「增加的代码,总比减少的

ContextEcho 按 commit 统计的代码量变化,展示增长、删减与重构
增长会自然发生,收敛不会
EVIDENCE · 每个点都是一次 commit
REFACTOR RESPONSE做减法,需要单独立项
我的应对不是「顺手整理一下」

做减法,
需要单独立项

收敛周期1 天

单独安排一整天,不和功能开发混在一起。

对话轮次29 轮

持续检查职责、依赖和代码量,而不是一轮重构结束。

硬性边界0 新功能

开工指令写死:过程中不允许新增任何功能。

唯一目标收敛

合并重叠职责、删除重复路径,让结构重新可解释。

TAKEAWAY · AI 完成局部任务,人发起全局收敛
.cursor/rules/ — ContextEcho
⌘K · ⌘L · ⌘I
.cursor/rules/
123456
案例⑤ · 每条规矩背后,都是一次真实翻车

给 AI 写「员工手册」

.cursor/rules/翻车事件 → 产出的规矩
📄xcodegen-workflow.mdc新文件编译不过 · Cannot find X in scope
📄product-principles.mdc「你不太能遵循 iOS 开发基本理念」· 最高准则
📄doc-sync-gate.mdc文档与代码脱节 · 代码是事实,文档是意图
📄scope-boundary怕 AI 顺手加播放列表 · 「只支持单集播放」
📄release-notes-sync.mdc发行说明漏写 · 每次 Minor 必须同步
main11 rules
SECTION SUMMARYAI 负责执行,人负责边界
小结

以前我管代码
现在我管一个不知疲倦、
但需要边界的合作者

TAKEAWAY · 管好边界,比盯住每一行代码更重要
№03
FAILURE AS FEEDBACK
03
三个失败

三次
校准

功能做出来,不等于产品做对了。被推翻的方向、跑出来的体感、验不通过的修复,都在帮我校准判断。

KILL · ITERATE · FAIL
03-cases/echo.md — ContextEcho
⌘K · ⌘L · ⌘I
12345
案例 A · 产品名就来自这个功能

被推翻四次的「回声」

04-22 · 0.7.0音频优先大改版「回声」成为核心叙事
04-23 · 0.8.0播完自动回顾回听补充体验闭环
04-24 · 0.9.0标记收敛五种标记收敛成两种
05-29 · 0.15.0整个 Tab 下线−4830 行,95 个文件
main4 versions · 37 days
CASE A · THE EVIDENCE真实使用推翻原设计
杀死「回声」的,不是 AI 的分析

是我自己
42 天的使用数据

「我几乎不打开我们新设计出来的回声库……目前已经连续 42 天,累计 97 小时 14 分钟。我可能是沉迷于用自己 build 的工具来收听。我不知道这个有何价值,但是我自己乐此不疲。

关于 42 天 97 小时真实使用数据的产品定位对话
2026-05-28 · 真实使用行为推翻原产品定位
SOURCE · 2026-05-28 对话原文
AGENTIC-ERA MATH传统软件时代不存在的一笔账
0.15.0 砍功能,还有一个新理由

上下文有容量
更需要治理

01容量不是可用空间System prompt、Tools、Rules、Skills、MCP、Subagents 都会先占掉预算。
02Conversation 通常最贵对话越长,旧信息和无关任务越容易干扰当前判断。
03治理就是主动做减法一个任务一个对话;Plan 落盘;代码与文档对齐;砍功能也同步减 spec。
Cursor 上下文窗口容量及 System prompt、Tools、Rules、Skills、MCP、Subagents、Conversation 的占用构成
Context Window · 容量只是上限,结构决定 Agent 看见什么
NEW DIMENSION · 产品决策的新维度
03-cases/capture.md — 留下这一刻
⌘K · ⌘L · ⌘I
12345
案例 B · 每一步都来自跑道上的体感

一个交互的六次演进

起点耳机双击跑步中零 UI 捕捉
补充背面轻点不掏手机也能标记
锁屏加 ⭐️ 按钮锁屏直接标记
体感⭐️ 挪到右侧右手拿手机够不着左边
体感提示延长停留跑步时看一眼就没了
收敛浮窗收成书签视频场景不挡内容
main6 iterations
03-cases/ai-fail.md — verification
⌘K · ⌘L · ⌘I
ai-fail.md
12345
有多少人见过 AI 说「已修复」,一运行问题还在?

改了代码,不等于修了问题

01

AI:已修复

真机运行,SwiftData + App Group 还是同一个报错。

02

AI:这次好了

再次运行,报错没有变化,只是换了一处代码。

03

AI:已彻底修复

第三轮验证,问题依然可以稳定复现。

!

「你根本没有修复到啊」

「你应该认真一点,别乱改一改就算好了。」

LESSON · 修复不是 diff证据闭环 · 问题无法复现
WHAT AI CAN'T ANSWER2026-05-28 对话原文
「AI 搞不定创意和面向未来的产品方向,还是需要我自己来做分析、判断以及更深层次的决策。」

哪些决定,
AI 给不了答案

01创意与方向从 0 到「做什么」是人的事——三次定位重写,输入全是「我自己怎么用」,AI 只负责结构化。
02做减法的决心AI 天然倾向做加法,从不主动建议删掉自己写的东西。
03真实世界的体感⭐️ 该放左还是右、提示该停多久——AI 不跑步,也就给不出答案。
04面对竞品的判断Snipd 和我的想法惊人一致——是继续做还是被劝退,这个决定 AI 替不了。
POINT · 替代不了的部分,恰好是 Builder 的价值
№04
TAKE IT HOME
04
可迁移的方法

我反复验证过的
四个工作法

不是抽象方法论,而是 76 天里反复救过我的固定动作,外加一张踩坑速查表。

RULES · CONTEXT · OBSERVE · BOUNDARY
METHOD 1 / 4别靠每次 prompt 现场发挥
方法一

把判断力外化成制度

翻一次车,沉淀一条规则。检验标准——新开一个对话,AI 不需要你重复交代就能做对。

01教 AI 写代码xcodegen 工作流、Swift 规范——最早的规则都是技术规范。
02教 AI 懂产品边界product principles、Scope Boundary——规则开始承载产品判断。
03立流程闸门doc gate / release-notes gate / version gate——制度自动把关。
EVOLUTION · 规则会长大
METHOD 2 / 4上下文是预算,不是仓库
方法二

上下文经济学

01一个任务一个对话混任务会让无关信息互相干扰,越聊越偏。
02Plan 落盘,再新开对话执行讨论产生的长对话别直接执行——落盘后的 plan 才是干净的意图。
03代码是事实,文档是意图两者对齐才是可用上下文;脱节的文档比没有更糟。
04砍功能 = 减 spec = 减上下文税给项目降复杂度,就是给 Agent 提理解精度。
BUDGET · 每个 token 都要花在刀刃上
METHOD 3 / 4先建观测,再谈修复
方法三

逼 Agent 给自己
可观测性

01 · REPRODUCE

复现场景

稳定复现问题,收集第一手现象描述。

02 · BUILD

让 Agent 自建观测

没有专业工具?让它给自己造日志、埋点、导出通道。

03 · FEED

数据回流对话

日志、诊断文件、复现步骤——证据直接进上下文。

04 · FIX

对症下药

从「描述现象」升级为「提供数据」,一次定位根因。

LOOP · 适用于一切 Agent 排障场景
METHOD 4 / 4AI 最危险的不是做错,是「顺手多做」
方法四

把「不做什么」
写成硬规则

01边界写进 rules「暂时只支持单集播放」——防 AI 顺手补齐播放列表。
02自动化要有确认层嘉宾解析先建议、你确认才生效——自动化必须可撤销。
03改边界先改规则1.1.0 要做合集播放——先改 product-principles,再动代码。
ORDER · 先改制度,再动代码
PITFALL CHEATSHEET四类高频坑,一页带走
76 天的坑,四类速查

踩坑速查表

SwiftData数据层启动 crash · 主线程查询卡顿 · 迁移字段必须 optional。
SwiftUI性能每帧重绘全页面 → 采样时钟 + 节流发布 · 巨型 View 拆分。
内容源接入内容源RSS 各家一套时间轴 · B 站 WBI/-352 · YouTube 152/TLS。
AI 协作所有人的坑只加不减 · 乱改一改就算好 · 顺手扩大战场 · 上下文膨胀。
SWIFTDATA · SWIFTUI · CONTENT SOURCES · AI COLLABORATION
THE SHIFTAI 在工作流里,不在功能列表里
我没做的事

以前的「核心工作」

  • 手写播放器
  • 手调 RSS 解析
  • 手改 UI 代码
  • 手查 Instruments
我真正做的事

现在的核心竞争力

  • 每天跑步用它——发现真问题
  • 拍板砍回声库——用 42 天数据推翻自己
  • 写下「只支持单集播放」——定义边界
  • 决定用 Overcast 橙——审美与品味
  • 带着困惑先上架——判断何时发布
ANSWER · AI 是工作流,不是功能清单
FROM PERSONAL BUILD TO PUBLIC PRODUCT72 DAYS → RESET → 17 DAYS
第 76 天,我没有等到完美答案

为了上架,
我先卸载
自己用了 72 天的版本

买下苹果开发者账号,把只属于我的个人版换成公开发行版,然后从第 1 天重新开始。

卸载前PERSONAL BUILD · 72 DAYS
ContextEcho 个人版连续使用 72 天、累计 157 小时 52 分
重新开始APP STORE BUILD · 17 DAYS
ContextEcho App Store 公开版重新连续使用 17 天

正式上架后,我把这段故事发到 X:13K+ 浏览。公开发布不是终点,而是把自己的答案交给别人验证。

RELEASE · 72 天个人版 → App Store → 17 天公开版
TRY CONTEXTECHO每天打开,听见自己
我的使用数据已经投了赞成票,现在轮到你

一款克制
音频伴侣

ContextEcho 每天稳稳地播你想听的中英文播客和 B 站 / YouTube 合集;回到 App,你能看见自己在认真听什么——不刷推荐流,不抢注意力。

01稳定续听打开就接着上次的位置;Mini Player 常驻底部,一键回到正在听的那一集。
02看见自己连续天数、累计时长、最常听的节目、收听热力图——一套属于你的「自我画像」。
03不打扰地陪着你锁屏 / CarPlay / 耳机就绪,跑步、通勤、睡前都顺;不推送、不打卡。
TRY IT · App Store 搜索 ContextEcho
everyone@datafun:~$ start building

别先问 AI
还能做什么。
先问:什么问题,
值得你每天亲自使用?

带上这个问题,现在就开始 Build。

● CLOSING · START BUILDING
mai@datafun:~$ open questions.md

Q & A

Mai Yang 微信二维码
● Q&A · 5 MIN