省心遛娃
项目时间:2026.08~2026.09 | 角色:产品定义与交付(技术由 AI 协作实现)
从“找地点”到“出方案”
——AI 亲子活动小程序的产品定义与交付
产品定义把最小推荐单元从“目的地”重定义为“方案”;用户主动操作压缩到“选时间 + 选时长”两步。
AI 边界规则引擎决定地点、距离、筛选与排序;LLM 只负责方案说明,不决定事实性结果。
交付结果24 天完成定义到 0.1 发布;建立本地数据、规则、回归断言与发布检查。
24 天
立项到 0.1 发布
2026.08.31 立项,2026.09.24 发布。单人产品实践,技术实现由 AI 协作完成。
94 条
目的地数据 · 25 字段
覆盖南京栖霞区,100% 实地核验。
139 条
活动数据 · 12 字段
仅记数量,未宣称全部实地核验。
口径说明:以上数量为项目记录口径。94 条目的地与 139 条活动的核验范围不同——前者 100% 实地核验,后者只记录数量、未逐条实地核验。数据覆盖范围为南京栖霞区部分街道,不代表全市或更大范围。其余数量(71 条不推荐黑榜、93 条双源坐标核验、22 篇研发文档)见 Part 3,均不公开条目明细。
项目状态
1.0 版于 2026 年 9 月 24 日发布,随后未进行推广,现已停止继续推进。本页展示的是产品定义、AI 能力边界、数据质量设计与上线前交付,不代表产品已完成市场验证或商业模式验证;页面中不含用户数、留存或收入数据。
Part 1诉求定位:家长要的不是地点清单,而是方案
结论:传统产品把筛选任务留给用户;我们尝试直接给出当下情境下的活动方案。
真实起点:
- 周末要安排一次亲子活动,用户得连着做好几道判断题:现在几点、还有多少时间、路上要多久、孩子这个年龄合不合适、室内还是室外、活动内容对不对得上。
- 常见产品的形态是地点列表、筛选器、编辑内容或本地生活推荐。用户拿到的是“一堆可选地点”,筛完还得自己判断,最后还要把两三个地点拼成一段行程。
- 核心问题不是选项不够多,而是“当下这个时间,带孩子做什么比较合适”这个问题,没人直接回答。
产品判断:最小推荐单元不应是“地点”,而应该是“方案”。方案可以依托 POI,也可以是“在家画画”这类非 POI 活动——用户要的是“做什么”,不是“去哪”。
首版的取舍
有意不做
- 繁多筛选器:把筛选成本原样还给用户,和“直接出方案”的判断相反
- 偏好设置与收藏:首版优先级低,且依赖账号与行为数据积累
- 把人工维护地点库当首版主要价值:地点库是原料,不是产品价值本身
否决的方案
- 拿地点库规模当卖点:用户缺的不是地点数量
- 只做地点列表 + 筛选:仍然把组合行程的工作留给用户
- 让模型直接生成地点:事实不可控,也没法验收
核心交互:地点列表 vs 方案引擎
同一个需求,两种产品形态下用户要走的路径。
地点列表模式
用户要自己走完的步骤(以半天行程为例)
输入关键词,或从品类里挑一个方向
↓
筛距离范围
↓
筛适龄段
↓
筛室内 / 室外
↓
逐个点开看营业时间、票价、是否要预约
↓
自己估算路上要多久、来不来得及
↓
自己把 2–3 个地点拼成一段行程
方案引擎模式
用户的动作只剩两步
选一个时间今天上午 / 下午 / 傍晚
↓
选可用时长1 小时 / 2 小时 / 半天
↓
系统直接给出 3 个活动方案
方案 1示意
图位 · 待替换
方案的标题占位
室内放电强适龄 5–8
推荐理由占位:由 LLM 依据已确定的方案结果生成,不参与事实判断。
方案 2示意
图位 · 待替换
方案的标题占位
户外低强度适龄 4–10
推荐理由占位:同上,LLM 只做表达。
方案 3非 POI
图位 · 待替换
居家活动的标题占位
在家零通勤适龄 3–8
方案不一定要依赖真实地点——这也是“最小单元是方案”的直接体现。
以上三张卡作为作品展示结构,用来说明一个“方案”包含哪些字段;不含真实 POI 名称、营业时间或实测距离,也不连接任何在线推荐服务。
用户还要做什么
- 上面 7 步全部由用户自己完成。
- 系统只返回地点,不判断是否合适。
- 判断权在用户手上,出错也在用户手上。
产品价值:把选择范围变小,但不负责给出答案。
用户还要做什么
- 只剩一件事:看三个方案,挑一个。
- 时长够不够、路上要多久、适不适合这个年龄,这些判断由规则先做完,用户在结果里直接看到。
- 方案可以包含真实目的地,也可以是居家活动——用户不必先决定“出不出门”。
产品价值:把答案直接给出来。减少的是决策动作,不是选项数量。
说明:这里只说明两种形态下用户动作的差别,不声称已验证用户效率提升——0.1 没有推广,没有可用的行为数据。
产品截图
首页丨天气与所在街道自动带入,出发时间、可用时长、孩子年龄三步输入,底部一键生成方案。
生成中丨AI 分步提示当前进展(看天气、挑适龄地点、算路线),骨架屏占位结果,支持随时取消。
结果页丨方案卡呈现“首选 + 备选”;没有合适地点时直接给居家活动方案,附 AI 推荐理由。
结果页丨真实目的地方案:驾车距离、游玩时长、需办卡等事实信息由规则计算给出,AI 只写推荐理由。
留言反馈丨针对方案中的具体地点提交纠错反馈,地点信息进入候选池,核验通过后采纳。
夜间拦截丨太晚出门先劝停,直接给“就在家玩”选项——先保护作息,再谈出行。
Part 2关键决策:规则决定推荐结果,AI 负责把理由说清楚
结论:不让模型直接决定事实性结果。事实由规则算,语言交给模型。
两条路径分开看:离线建标签,在线出结果
离线阶段:建立适合亲子场景的数据标签
- 获取本地候选地点与活动信息
- 按自建的“带娃语义”口径,让模型辅助批量标注:场景、家长动机、适龄范围、放电强度、室内 / 室外
- 人工复核打标结果,形成可被规则筛选使用的数据
这一步允许人工介入:标签错了可以改,改完就是确定的。
在线阶段:按规则筛选,再由 AI 组织表达
- 用户选择时间与可用时长
- 确定性规则处理硬条件、候选过滤、距离计算与加权排序
- 规则引擎形成 Top 10 候选
- LLM 生成简洁推荐说明
- 模型不可用时的降级路径
离线标签是原料,在线规则是决策,LLM 只在这条链路的最末端动笔。
点击节点,看每一层负责什么、不负责什么
节点上的小字是这一层的一句话职责;点开是三行边界说明。
数据与语义标签 · 离线
负责什么
按自建的“带娃语义”口径批量标注:场景、家长动机、适龄范围、放电强度、室内 / 室外;产出能被规则直接筛选的标签。
不负责什么
不面向用户作答,不参与“这一次推荐给谁”的实时判断。
为什么这样分工
标签是低频、可复核的离线产物,错了能改、改完就是确定的;把它放在链路最上游,错误有机会被人发现,而不是在用户面前才暴露。
规则过滤与排序 · 在线
负责什么
硬条件过滤、候选收敛、按权重排序,最后形成 Top 10 候选交给下一层。
为什么这样分工
筛选和排序是确定性逻辑,同样的输入必须得到同样的输出,可复现、可测试、可回归。这类判断不该交给概率模型。
距离与硬条件计算 · 在线
负责什么
算距离、算可达时长,剔除不满足硬条件(时长不够、距离过远、不适龄)的候选。
不负责什么
不由模型估距离,不由模型判断地点是否真实存在。
为什么这样分工
距离和时间是事实。模型很擅长给出“看起来合理”的错数,一旦错了用户到现场才发现。用计算替代生成,错误就从“不可控”变成“可测”。
LLM 推荐说明 · 在线
负责什么
把已经确定的方案结果,组织成家长读得懂的一段推荐理由:为什么这个时间合适、为什么适合这个年龄。
不负责什么
不决定去哪、不去哪;不改距离、不改适龄区间、不改营业信息。
为什么这样分工
语言表达是模型最稳的能力,事实判断是它最不稳的能力。只让它做前者,风险面就收窄成“读起来自不自然”,而不是“会不会把人带错地方”。
降级兜底 · 兜底
负责什么
模型不可用时给出可读的兜底结果,并让用户知道这是降级态。
为什么这样分工
这条来自真实教训:静默降级会把系统故障伪装成推荐错误,排查方向全错。宁可暴露“今天说明从简”,也不要让人怀疑算法。
被否决的方案
否决为什么不让模型直接生成地点和结果?
问题
模型生成的地点可能不存在、营业时间可能是编的、距离可能是拍的。用户按这个结果出门,错一次就不再用了。
判断
这类事实错误没法靠 prompt 约束住,也没法验收——你没法为“模型今天没说错”写一条断言。
否决为什么不用纯规则模板覆盖所有推荐文案?
问题
模板写死了句式,推荐理由读起来像表单回填:“距离 3.2 公里,适龄 5–8 岁。”信息都对,但不像人在解释。
判断
推荐理由的作用是帮用户下决心。表达僵硬,等于把这个作用丢掉了。
取舍当前方案:规则保事实,AI 改表达
边界
这套分工降低的是“事实出错”的风险,提高的是可控性。它不等于彻底消除模型出错的可能——文案仍然可能说得不准确、不通顺,所以仍然需要人工复核口径和降级路径。
工程补充
待核模型、成本与降级机制
模型
GLM-4-Flash(是否对外披露模型名待确认)。
成本
项目记录约 ¥0.1 / 百万 tokens,云端响应约 3.5 秒。这不是用户价值指标,只作为工程成本参考。
Part 3数据质量:推荐质量取决于数据真实、覆盖完整、字段能支撑决策
结论:推荐质量不仅靠算法,更靠数据底座。规则再准,喂进去的数据错了,结果就是错得很有条理。
事实底座
| 事实 | 数量 | 展示口径 |
| 目的地数据 | 94 条 / 25 字段 | 核心数据资产。仅覆盖南京栖霞区,100% 实地核验。 |
| 活动数据 | 139 条 / 12 字段 | 只展示数量,不写“全部实地核验”。 |
| 不推荐黑榜 | 71 条 | 只展示总量,不公开地点名称与坐标。 |
| 双源坐标核验 | 93 条 | 作为核验机制示例,不展示精确坐标。 |
| 研发文档 | 22 篇 | 工程交付佐证,不展示全部文档内容。 |
| 回归断言 | 188 / 188 全绿 | 验收证据;对应测试记录的时间待核。 |
| 平台准入与发布 | 完成 | 表述为“完成平台准入及发布审核”,不细分列项(细分计数口径待核)。 |
方案库 = 受控词表 + 目的地表 + 活动表 + 黑榜
受控词表
统一标签口径
标签取值限定在固定集合(室内 / 室外、适龄段、强度等),避免同一含义多种写法,保证筛选能准确命中。
目的地表
94 条 / 25 字段
真实地点事实:营业时间、票价、坐标等,100% 实地核验,是方案中“去哪儿”的来源。
活动表
139 条 / 12 字段
不依赖具体地点的活动内容,让“没有合适地点”时也能给出居家方案。
黑榜
71 条不推荐
命中即排除,明显不合适的地点不进入候选池。
四个检查项:数据要在哪几个方向上过关
点击查看对应的设计办法与真实问题案例。
真实性:这条数据是不是真的
设计办法
不确定的先不入库,宁可少一条。初期做 100% 实地核验,字段落库前逐条比对;后期增加AI自动核验机制。
对应风险
活动数据 139 条未逐条实地核验,所以页面只写数量,不写“全部核验”——不能把两种核验范围混成一个口径。
为什么这样做
推荐一次就值一次信任。用户到了门口发现没开,损失的不只是这一次。
覆盖度:该有的地方有没有漏
设计办法
把覆盖度作为独立检查维度:按类型逐类核对数量,而不是只校验“已经抓到的条目对不对”。
对应风险
采集接口按名称模糊匹配、搜索词用类型词,会整类漏采——详见下方“系统性漏采”。
为什么这样做
数据全对但它不在,等于没有。覆盖度是“缺席”的问题,校验单条数据永远查不出来。
坐标准确性:导航能不能带对地方
设计办法
双源交叉核验 93 条,两个来源坐标对得上才采信;单源不采信。
对应风险
同一地点在地图源里重复记录,其中一条偏差约 1.7 公里——详见下方“坐标错挂”。
为什么这样做
单一来源自校验不足:它没有第二份数据来对照,错了也不会报错。
场景适配:标签能不能支撑筛选
设计办法
自建“带娃语义”标签:场景、家长动机、适龄范围、放电强度、室内 / 室外,让规则能按情境筛而不是按名称搜。
对应风险
语义类别词义错位:全天时长场景下,标签词与情境对不上,推荐结果与情境不匹配(备用案例,未在本页展开)。
为什么这样做
“适合遛娃”是个很模糊的判断。不把它拆成可计算的标签,规则就没法用。
三个真实问题与修正
这三个都是实际踩到的坑,不是设想。
案例 01系统性漏采:不是抓错了,是整类没抓到
发现
某类运动健身数据在地点库里系统性缺失,不是零星几条,是整类没有。
原因
采集接口按名称模糊匹配,搜索词用的是类型词。类型词选窄了,整类数据就永远进不来。
收获
数据覆盖度必须作为独立检查维度。只校验“已经抓到的条目对不对”,永远发现不了“该有的没抓到”。
案例 02坐标错挂:同一个地方,两条坐标差 1.7 公里
发现
同一地点在地图数据源中出现重复记录,其中一条坐标偏差约 1.7 公里。
原因
单一来源自校验不足。重复记录之间不互相校验,偏差就这么留下了。
收获
改为双源交叉验证,单源不采信。1.7 公里在城市里足以把用户导到一个完全不相干的地方。
案例 03静默降级:系统挂了,看起来像算法错了
发现
云函数不可用时,系统没有报错,而是悄悄回退到模拟数据。表面看就是“推荐结果变怪了”。
原因
降级逻辑只保证“页面上有结果”,没区分“这个结果是不是真的”。
收获
系统不可用必须明确暴露,不能以假结果伪装成功。否则排查方向从一开始就是错的——你会去查算法,而问题在服务。
Part 4交付与复盘
结论:产品判断不能停留在文档里,要变成可实现、可检查、可回归的规则。
本人职责
- 产品定义、用户场景研究与竞品分析;
- 决策数据结构与字段口径(目的地 / 活动 / 不推荐黑榜);
- 推荐规则设计:硬条件、候选收敛、距离计算、排序权重;
- AI 能力边界设计:离线打标口径、在线表达约束、降级策略;
- 交互与视觉设计;
- 验收与发布交付:回归断言、真机走查、平台准入。
技术实现由 AI 协作完成;本人负责把需求与产品判断写成明确的数据口径、规则和验收条件,并判断交付结果是否符合预期。
交付链路:从判断到发布检查
点击节点查看脱敏示例。不展示源代码、密钥或可定位真实地点的数据。
产品判断 · 把想法写成一条主张
做了什么
把“最小推荐单元是方案,不是地点”写成一条可判断的主张:如果一个功能只优化地点列表,它就没有推进这条主张。
不做什么
不写成“提升亲子陪伴体验”这类没法判断对错的目标。
可执行规则 · 写成规则,不靠口头约定
做了什么
硬条件(可用时长、距离上限、适龄区间)、候选收敛顺序、排序权重,逐条写成可读的规则表。
不做什么
不在对话里说“距离近一点优先”,让实现方自己猜“近”是多少。
为什么
模糊描述最后会变成实现方的自由发挥,验收时谁也说不清是不是符合预期。
自动化断言 · 每次改动都跑一遍
做了什么
188 条断言覆盖时间窗、距离上限、适龄区间、去重逻辑、降级触发等;改动后全量跑一遍,看是否全绿。
不做什么
不靠“我手动点了几个看着没问题”来判断没改坏。
为什么
规则一多,改动之间会互相影响。人眼只能抽查,断言能全查。
真机走查 · 手机上逐屏核对
做了什么
在真机上按“选时间 → 选时长 → 看结果 → 看理由”的路径逐屏走,核对展示是否与规则一致。
不做什么
不只在小程序开发者工具里看——工具里字体、滚动、安全区都和真机不一样。
为什么
规则对不等于用户看到的是对的。中间还隔着渲染、截断和交互状态。
发布检查 · 准入事项逐项过
做了什么
类目、地理接口权限、隐私说明、ICP 备案、发布审核逐项过完才提交。
为什么
地理定位这类权限一旦卡住,整个核心链路就没法用,必须在发布前确认,不是上线后补。