【生活娱乐赛道】【复赛】CityStage 城市剧场 — AI 驱动的线上线下结合的活动平台

1.团队介绍:
组长:丹牛的鹰之团,也可以叫我丹牛,是一名想成为 AI PM 的研究生。目前在新加坡国立大学就读,很高兴认识大家!
没有其他组员了,自己一个人做的,也是想看看自己的产品sense和全栈能力如何。
之前自己做了美团的本地商业项目黑客松,拿了 top30,然后科大讯飞的一些 AI skill 或者agent 应用比赛,也得了一些奖。这次来 trae 也是给自己积累更多经验。

2.产品简介:
CityStage 是一款面向城市探索与品牌活动的互动平台。品牌方用 AI 编排活动,用户可通过微信小程序参与本地活动、完成各项定制任务,解锁体验卡、徽章与奖励,让线下消费和城市漫游更有参与感与成就感。

背景

线下空间不缺流量——商场、街区、景区、校园每天都有大量人流。但流量来了就走,留不住。品牌方搭展台、备物料、发优惠券,用户在网上参与一个话题就结束了。活动形式年复一年,同质化严重,参与度低,传播靠运气。用户如果看到自己喜欢的 IP、代言人、偶像等,他们愿意去更紧密地形成触达。

本质问题是:线下空间缺乏一种高参与度和体验感,而企业也需要更多、更系统的活动热度提升和反馈。

要解决的问题

两端的人都不满意:

  • 用户:逛街旅游,没感觉到和自己喜欢的品牌与代言人、偶像有多么亲密接触

  • 品牌方:如果想创建一个活动,时间投入比较大,而活动投入大的同时,用户停留短,传播起不来

中间缺一个把"体验"和"传播"连起来的内容层。

方式

用 AI 赋能, 把线下活动变成可体验的内容,跑通 B→C 完整链路:

  1. 品牌方填信息、勾任务类型,AI 一键生成完整活动方案,迅速增加 B 端工作效率

  2. 用户到场扫码进入任务地图,完成串联任务,AI 赋能趣味助力

  3. 全部做完,AI 基于用户产生的 UGC 生成一张专属体验卡,每张都不一样

  4. 体验卡天然适合分享,数据和曝光回流品牌方

任务类型做了 32 种,分 8 大类:签到打卡、拍照视频、文字语音、寻找解谜、创意互动、问答投票、社交传播、运动挑战。CityStage跟着品牌走,换品牌换风格。

3.产品演示

4.产品创作历程
CityStage 起源于城市寻宝游戏的好奇,或者如“Pokemon”游戏的潜力发掘。当然,在经过一番调研之后,我认为这种类型的游戏在中国可能确实并不适配。但我认为这仍然有一定参考价值:随后我展开对线下空间体验的观察:商场、街区、景区和校园并不缺人流,但用户的行为往往停留在“到了、消费、离开”。传统活动又常依赖物料、优惠券和舞台表演,内容更新慢、参与感弱,也难以让用户主动传播。

我想解决的核心问题是:能不能把真实城市空间变成一个可进入、可完成、可分享的“剧场”?于是 CityStage 被定义为一个由 AI 驱动的线下互动内容平台——品牌方快速创建活动,用户在真实地点完成任务并生成属于自己的体验记录,最终形成“配置—体验—内容产出—传播—数据反馈”的闭环。这样一来用户、商家都满足了自己的要求。

从痛点出发:让“打卡”变成“参与”

在用户侧,我聚焦了几个典型问题:

  • 线下逛街和城市漫游缺少明确玩法,容易沦为单纯拍照打卡;

  • 朋友一起出行时,缺少自然、有互动感的共同目标;

  • 用户即使完成一次活动,也很少留下可回顾、可分享的个人内容。

在品牌和场地运营侧,问题则是:

  • 活动形式同质化,用户到店后的停留时间和互动深度有限;

  • 多商户之间很难形成自然路线,传统活动搭建成本高、更新慢;

  • 优惠券是直接但较弱的转化手段,用户完成互动后也缺少主动传播动力。

因此,CityStage 并不把“做任务”当作目的,而是将任务设计为叙事、探索和用户表达的载体:用户是在与自己所参加的品牌活动构建强关联。
在前期调研中,我没有把 CityStage 简单归类为活动工具,而是拆解了本地生活、内容社区、旅行攻略和品牌小程序的产品结构。

CityStage 的关键方案是双端闭环。

品牌方在 B 端输入活动主题、地点、目标人群、时间和品牌信息;AI 将自然语言需求转化为结构化任务链,包括任务描述、提示语、NPC 对白和奖励设置。品牌方仍可手动修改内容,避免 AI 成为不可控的黑箱。

用户在 C 端则从发现活动、报名、进入任务地图,到完成真实场景中的互动任务,最终领取体验卡。早期 Demo 先用五种任务验证体验:定位打卡、拍照、寻找物体、留言共创和画图;后续逐步扩展为当前代码中的 8 类、32 种任务类型,覆盖签到、内容采集、文字创作、解谜、互动挑战、问答、社交传播与运动挑战。

项目最初以网页 H5 Demo 开始,使用 React、TypeScript、Vite、Tailwind 和轻量 Node 服务,重点是快速验证“品牌创建—用户参与—体验卡传播”的完整演示链路。
之后,项目从网页 Demo 迁移为微信小程序。选择微信的原因很明确:扫码进入、真实定位、拍照上传、分享能力和云开发基础设施都与线下活动高度匹配,也降低了独立服务端、备案和部署的成本。

技术上,项目采用 Taro 4、React、TypeScript 与微信云开发;后端能力被拆为登录、活动 CRUD、AI 编排、AI 反馈、体验卡、内容安全、地图 POI、二维码、订阅消息和埋点等云函数。AI 调用不直接暴露 Key 给前端,并为超时、网络异常和模型不可用准备了预设内容降级。

后续迭代主要集中在四个方向:

  1. 产品结构优化
    从全屏地图首页,迭代为更符合小程序使用习惯的模块化首页;从固定五类任务,扩展为可配置的任务体系。

  2. 体验与视觉优化
    建立统一设计令牌、组件库、自定义 Tab Bar、任务状态规范和动效规范,让品牌感与功能可用性统一。

  3. 真机性能优化
    围绕首页 Hero 做了视频方案、静态封面、帧动画、云存储资源加载等多次取舍;最终重点保证资源可加载、切换流畅和弱网可降级。

  4. 运营能力补足
    增加活动创建、发布、任务编排、创作者看板、数据埋点、体验卡、内容安全和消息能力,为后续 SaaS 化运营奠定基础。

产品介绍视频链接
b 站:【乐子小程序真的要上线了…】 https://www.bilibili.com/video/BV1WzMB6zEUV/?share_source=copy_web&vd_source=efc21b8b318297c7d5c0fbaa99915bd9
抖音:https://v.douyin.com/97ERTQY6xbY/

5.TRAE 实践过程

复赛阶段,相比于初赛时提交的 demo,整体和 trae 交互的过程多了可不止一星半点。
首先,由于我 demo 版的展示方式还是 html,但实际上我的这个产品是 app/小程序的形式,所以必须得重构。我最终确定以小程序的方式上线,整体会更轻便、快速一些。那就先让 trae 给我进行一个迅速的小程序搭建。
整个的搭建过程还是用 grillme 这个 skill 去不断核对需求,基本上和 demo 版本时候一致,只不过你的要求在这个时候也发生了变化,因此需要把这个事情同步给agent(trae),并根据我们新的这个要求去构建 prd,再去开发。

最后确立能设计出一个微信小程序,然后根据微信小程序的特征和技术特点等来进行搭建。

这个过程中,trae 会帮你一步步完成整个的代码构建、云函数部署,乃至小程序的上线。如果能直接给你完成的就会帮你完成,必须你亲手完成的也会一步步告诉你。

后续整体打磨 UI前端交互界面的部分也是不得不品的一环。
我是和 trae 明确说明我自己的要求,然后让它也给我去用一些设计组件库,iconfront 等等的组件模板来构建我的产品的前端界面。

总之这个过程,之前在初赛时也说过了,是比较熬人的一个环节。你需要去反复打磨,甚至一个对话都不够,最好可以多弄一弄。

prd 文档在这段时间也会持续修改的,根据我们的使用和测试情况进行不断优化。

针对于我的 CityStage 项目来说,除了让它的呈现方式落地,另一个比较重要的就是功能的拓展,由于我引入了多任务创建链,所以这方面我需要让它帮我不断去搭建功能以及验证可用性。
除此之外,还有一些别的细小的功能点去修补,那就一项项让它去完成。

除了打磨前端 ui 交互界面之外,另一个比较熬人的就是修 bug。

修 bug 的话,可以用 diagnose 的 skill,直接给我们进行 debug,然后也会输出一份漏洞优先级的清单,但既然都用 vibe coding 了,就什么都别管,直接让它都给我修,修到没有问题为止。

trae 对话 session id:

1382549229672202:5507594c3190ee6754cc6f4e16016e11_6a60b7cbc0429bbf97d77418.6a60ca5dc0429bbf97d777ec.6a60ca5dc0429bbf97d777ea:TRAE Work CN.0.1.39.no_sid.no_ppe.T(2026/7/22 21:49:17)
1382549229672202:0f7c786b5e95255bdee01ad134b46c32_6a6634d7077b8e075eac484b.6a66bb1c077b8e075eac59a0.6a66bb1b077b8e075eac599e:TRAE Work CN.0.1.39.no_sid.no_ppe.T(2026/7/27 09:57:48)
1382549229672202:816c33e1d03596190aed8ea9c653a4c6_6a66be66077b8e075eac59bc.6a66be66077b8e075eac59bf.6a66be66077b8e075eac59bd:TRAE Work CN.0.1.39.no_sid.no_ppe.T(2026/7/27 10:11:50)
1382549229672202:7256e53dda96c63221a9e93a3df3be37_6a66e24a077b8e075eac5b0d.6a6747fc077b8e075eac6414.6a6747fc077b8e075eac6412:TRAE Work CN.0.1.39.no_sid.no_ppe.T(2026/7/27 19:58:52)
1382549229672202:53689d5e5565f04439434734e90aa4ba_6a60e3aac0429bbf97d7786f.6a688b6a077b8e075eac642f.6a688b6a077b8e075eac642d:TRAE Work CN.0.1.39.no_sid.no_ppe.T(2026/7/28 18:58:50)
1382549229672202:27a77912ea361716b39d5d5dafa6aa77_6a68a375077b8e075eac6439.6a69d418077b8e075eac7011.6a69d418077b8e075eac700f:TRAE Work CN.0.1.39.no_sid.no_ppe.T(2026/7/29 18:21:12)
1382549229672202:9febd6403b0437ffd9b08ea2a1ac9e4b_6a69d740077b8e075eac706f.6a6a05eb077b8e075eac7421.6a6a05eb077b8e075eac741f:TRAE Work CN.0.1.39.no_sid.no_ppe.T(2026/7/29 21:53:47)
1382549229672202:fb9548619123605442461c9e0c51dad3_6a6a40c5077b8e075eac742b.6a6b1ac2077b8e075eac7adf.6a6b1ac2077b8e075eac7add:TRAE Work CN.0.1.39.no_sid.no_ppe.T(2026/7/30 17:34:58)
1382549229672202:e91c24ae633735c400400cd7392ccc45_6a6b3430077b8e075eac7fe0.6a6b75bd077b8e075eac85ef.6a6b75bd077b8e075eac85ed:TRAE Work CN.0.1.39.no_sid.no_ppe.T(2026/7/31 00:03:09)
1382549229672202:c58d7316ddcd31905ff7a53947b325e7_6a6cd894077b8e075eac935a.6a6d53d6077b8e075eac96ec.6a6d53d6077b8e075eac96ea:TRAE Work CN.0.1.39.no_sid.no_ppe.T(2026/8/1 10:03:02)
1382549229672202:23eb0d18c55260631ffc60b58625ce01_6a6d5952077b8e075eac9721.6a6e9e9c077b8e075eac990e.6a6e9e9c077b8e075eac990c:TRAE Work CN.0.1.39.no_sid.no_ppe.T(2026/8/2 09:34:20)
1382549229672202:39b4a10c051cf5db3631ad7f7c03cb69_6a6f7ad9077b8e075eaca437.6a6f7d00077b8e075eaca4b8.6a6f7d00077b8e075eaca4b6:TRAE Work CN.0.1.39.no_sid.no_ppe.T(2026/8/3 01:23:12)
1382549229672202:8140f0b4ad5919a94118f5e8651a2d1c_6a71510b077b8e075eacaa51.6a715e7f077b8e075eacaaed.6a715e7f077b8e075eacaaeb:TRAE Work CN.0.1.39.no_sid.no_ppe.T(2026/8/4 11:37:35)