运营也能Vibe Coding:「AI+∞开发者创作大赛」创作手记
还在排期等官网上线?还在加班改文档?作为运营,我琢磨的是另一件事——怎么用 AI 偷懒。这些原本得排队等资源的活儿,现在动手就能自己搞定。琢磨到最后,我把它做成了一个官网,一个能真实运行的官网:AI+∞ 开发者创作大赛官网。
而且这已经是我”聊”出来的第二个了。第一个跑通之后我胆子大了,这次直接上了更狠的:能登录、能报名、能提交作品、能逛作品广场点赞评论、还能跟钉钉表格双向同步、自动给选手发通知——功能比上一个多了一大圈。
做法还是那套:把想要的功能用大白话讲给 AI,它写代码,我挑毛病,它再改。一来一回,一个真能用的官网就这么长出来了。这就是 Vibe Coding。
所以这篇手记想聊两件事: AI+∞ 开发者创作大赛到底做成了什么样,以及一个不写代码的运营,是怎么把它搭起来的。
如果看完以后,你也想用 AI 把自己的想法做成一个真正可以运行的产品,那么欢迎带着它来参加 AI+∞ 开发者创作大赛。
先看整体:这个官网长什么样
官网地址:AI+∞ 开发者创作大赛官网:
https://modelscope.cn/active/AIstudio

01. 技术栈(求轻,一个人也能维护)
- Next.js 搭建,前端页面和后端接口在同一个项目里
- 数据存在轻量的 SQLite,通过 Drizzle ORM 读写
- 打包部署到魔搭创空间上(AI-inf 创空间:https://modelscope.cn/studios/MSEO/AI-inf/summary)
02. 分三层
- 用户端:看赛题规则、魔搭账号登录、报名、提交作品、逛作品广场、点赞评论、个人中心看个人信息、报名信息、作品信息、资源发放情况等
- 管理员后台:管理员专用,数据看板、审核报名、管理作品与公示、配置赛程、发放奖励
- 数据同步接口:把数据导出给钉钉表格、再写回来,没有界面,给系统之间对话用
03. 一件作品的一生(数据怎么流动)
- 选手用魔搭账号登录(OAuth),系统建好账号

- 报名,填写对应报名需要的信息

- 提交作品,填写创空间、研习社的链接,按需选择是否需要额外激励

- 官网会自动去魔搭把每个创空间的浏览量、点赞数抓回来,展示在作品广场;再按赛期自动判断它属于本期还是往期,归到对应期次下——点开往期,就能一期一期翻看所有历史作品

- AI Agent设定好自动定时任务把报名数据和作品数据导出进钉钉表格,在那儿评审、算奖励,不同部门运营协作维护

- 最后,运营在AI表格裁定并填写结果写回官网数据库,状态一变,系统自动给选手发站内通知



贯穿这条链路的那根线,是选手的魔搭账号 ID——所有数据都靠它对齐。底层由九张表支撑(用户、报名、作品、示例作品、公示、互动、通知、赛事配置等),并且全部按”第几期”隔离,这是它能一届届办下去的基础。
真实性:作品会自己“长”数据,因为它长在魔搭创空间上
这次大赛的参赛作品不是上传一个压缩包,而是一个真正能跑、能访问的魔搭创空间。选手只填一个链接,剩下的官网自己来:
- 从链接里解析出创空间的归属和名称,所有数据都是从魔搭实时同步的真实热度,不是自己编的数字
- 调用魔搭OpenAPI,把作品的”体征”拉回来:中文名、简介、封面图、独立访问地址,还有最关键的浏览量和点赞数
魔搭 OpenAPI 使用心得
- OAuth 登录、Studio 信息回捞都走这一套接口,它是整个官网的数据底座;官方文档:魔搭 OpenAPI 文档:https://modelscope.cn/docs/openapi
- 踩过的坑:让 AI 直接对接,它爱自己猜字段名,一猜错就来回返工
- 省事做法:把接口返回的字段名原样喂给 AI,基本一次就对
比如「获取用户信息」的返回长这样:
{
"success": true,
"data": {
"username": "tester",
"nickname": "测试用户",
"description": "这是一个测试用户",
"email": "test@modelscope.cn",
"avatar_url": "https://resouces.modelscope.cn/avatar/516aa51f-5fb7-49eb-930c-e90500ae13ca.png"
},
"request_id": "4d3f4b7d-95be-4e6f-95eb-d75178375bd2"
}
多端协同:网页和钉钉表格,各干各擅长的事
运营最顺手的工具是钉钉 AI 表格,但官网数据在数据库里。我们的办法是让它们分工,而不是抢活:
- 官网管选手能看到的一切:报名信息、作品内容、实时的浏览点赞评论——以网页为准
- 钉钉管”裁决”:审核过没过、发多少 Credits、多少 GPU 时长、发成功没有——以钉钉表格为准
- 两边靠选手的魔搭 ID / 作品 ID 一一对上
一句话:运营在自己最熟的工具里干活,官网在背后默默保持一致,中间没人需要手工搬数据。
01. 再往底下看一层:两边怎么对上号
最出乎我意料的是:网页其实根本不认识钉钉——它没存任何钉钉账号,也不知道数据要同步到哪张表,只对外开了两个「中立」接口,一个把数据摆出去、一个接收改动写回来,谁来对接都行。剩下的靠几条规矩兜着:
- 靠魔搭 ID 当钥匙:每人报名都有,作品再加个作品 ID;反复同步也只更新同一行,不会越同步越多
- 网页 → 钉钉:导出报名和作品快照;软删除的报名不导出(免得钉钉凭空多记录);浏览点赞不读数据库(那几列一直是 0),而是当下实时去创空间拉——接上前面讲到的的 魔搭OpenAPI
- 钉钉 → 网页:运营裁定结果写回;白名单只放奖励金额、发放状态、审核结果,其它一律忽略;认中文列名,不用记英文字段
- 谁在搬:钉钉多维表格 MCP 管钉钉侧读写(自管登录、认得哪张表),网页侧只认一把长期同步钥匙,中间由 AI agent 拿着两样来回搬;多久同步一次不在代码里,取决于你什么时候让它跑(手动或定时)
02. 怎么把钉钉这侧接上
首先,确保QoderWork连接器连接上钉钉,然后打开魔搭MCP广场,找到钉钉官方的AI表格MCP,复制‘服务配置’并提供给AI工具

03. 怎么把网页这侧接上
网页侧不认钉钉,只认一把「长期同步令牌」;把这把钥匙配给 agent,网页这侧就通了:
- 只开两个接口:导出快照(GET /api/admin/export)和结果写回(POST /api/admin/sync-back),都没有界面,专给系统对接
- 认令牌才放行:调用时请求头带上这把令牌(Authorization: Bearer …)才认,其它一律挡在门外
- 令牌怎么来:由超级管理员在后台专门签发,用途锁定为「同步」、默认一年有效,而且只明文显示一次——当场复制存好
- 交给谁用:把令牌配给 AI agent,它来回搬数据时自动带上,不用每次登录
- 想作废:换掉服务端的 JWT_SECRET,所有旧令牌立即失效

及时性:选手该收到的消息,系统自己会发
传统做法里运营得盯着表挨个私聊,非常耗人还容易漏。这个官网把它彻底自动化了,通过站官网内信的方式,通知全部由数据状态变化触发:
- 有人评论了你的作品 → 通知作者
- 有人回复了你的评论 → 通知被回复的人
- 获奖公示一发布 → 全体选手一次性收到
- 运营在钉钉把某行改成”审核未通过”或”发放失败” → 同步回官网时,自动给对应选手发消息,说明发生了什么、该怎么处理(比如去确认 Qoder 注册邮箱)
关键在于:
- 全程不需要运营手动找选手、去 BD、挨个私信
- 选手填了什么、状态变成什么样,消息就自然流到他那里
- 有防重复保护,同一件事只在状态真正变化时通知一次,不刷屏打扰人
延续性:想开下一期?改个配置就行,不用改代码
这个官网从设计上就假设它会一届一届办下去。所有跟赛程有关的东西都是后台里的一份配置,不是写死在代码里的:
- 每一期的名字、起止时间
- 报名和提交阶段什么时候开、评审什么时候开始
于是”开新一期”变得特别轻:
- 后台加一期、填好时间
- 到日子系统按当天日期自动切到新赛期
- 前台报名口、提交口、评审状态跟着自动开关
- 想手动提前锁定某个阶段,也有开关能直接指定
- 全程不改一行代码、不用重新部署

前台的报名入口、提交入口和评审状态会跟着配置自动变化。
如果临时需要提前结束报名,或者延长作品提交时间,也可以直接在后台调整,不需要修改代码,更不需要重新部署整个官网。
对于长期赛事来说,这一点非常重要。
真正难维护的系统,往往不是功能少,而是每次活动变化都需要重新找开发。把赛程沉淀成配置以后,运营就可以自己掌握赛事节奏。
两个赛事官网部署到魔搭创空间的一些省 Token 的小 tips(成功率100%)
Step 1:魔搭创空间,点击「我要创建」,输入相关信息(不想公开代码,记得选”仅公开体验”)

Step 2:选择「通过 Git 上传」,复制克隆仓库地址「git clone https://……git」


Step 3:把下面这段 Prompt 发给你的 AI 工具
请帮我推送到魔搭创空间,地址为「git clone https://……git」,注意补充创空间部署必须要的文件,具体参考:https://modelscope.cn/docs/studios/quick-createhttps://modelscope.cn/docs/studios/quick-createhttps://modelscope.cn/docs/studios/quick-createhttps://modelscope.cn/docs/studios/quick-create
Step 4:推送成功后,手动在创空间发布
💡 不想自己动手,可以让 AI 直接学习魔搭创空间部署 Skill:ModelScope-Studio 部署 Skill
写在最后
这套官网真正想证明的是一件事:借助魔搭创空间这样开放的平台能力,加上把运营逻辑沉淀进系统本身,一场需要很多人力的创作大赛,可以靠一套自动运转的系统撑起来——
- 作品的热度长在开发者自己的创空间上
- 数据在网页和钉钉之间自己对齐
- 新一期靠配置就能开
- 该发的通知系统自己会发
人要做的,只剩最有价值的那部分:把比赛办得更好,把更多好作品推到更多人面前。
从这个角度说,这个官网也是 Vibe Coding 的一个作品。它未必是技术最复杂的那个,但它确实替运营接住了报名、作品管理、数据同步和选手通知这些具体的活儿。
AI+∞ 开发者创作大赛也想看看:什么事情曾经反复折腾你,而 AI 又帮你省掉了哪些麻烦?
大赛现已开放报名,本期主题是「AI+运营:运营人造自己的工具」,欢迎带着你的作品来交作业~
🔗 大赛官网:
https://modelscope.cn/active/AIstudio(点击阅读原文,即可报名)
🕒 报名提交时间:
2026.07.15-08.10
赛事交流群

更多推荐




所有评论(0)