这不是一份 PPT 的网页版,而是一次完整的旅程:先用最朴素的方式看懂 AI、模型、Agent、API、上下文;再理解一个软件由什么组成; 然后走一遍 Vibe Coding 从想法到部署的完整工作流—— 最后,拆开一个真实的教学平台 CyberScope, 看它如何从一个 52 行的脚本,长成今天 25 万行、67 门课的课堂操作系统。
本网站同时服务两个目的:一是让老师自己看懂 AI 与 Vibe Coding 的完整知识地图; 二是作为讲解 CyberScope 平台设计的说明书。两者由一条主线串起来: 所有抽象概念,都用学校里的真实场景讲;所有流程,都用 CyberScope 的真实发展史作证。
如果你要带着一群人从头讲一遍,建议不要按“先名词后案例”的顺序。最有效的次序是: 先用故事勾住注意力,再建概念地图,然后讲方法,最后拆开平台验证一切。
直接跳到第五章的开头:2026 年 4 月 5 日,CyberScope 的第一个版本只有一个 52 行的后端文件,甚至把整个 Python 环境误传进了仓库、把密钥写死在代码里。让大家先看到“起点可以很低”,后面的规范才有意义。
用“算力 → 模型 → 产品 → 入口”四层地图开场,重点讲透 API、Agent、Skill、上下文四件事。每讲一个概念,都用 CyberScope 里的对应物举例:API 就是“小信老师”背后的那条请求链路;上下文就是“为什么 AI 有时答非所问”。
用“学生提交一次作业”这个动画讲清前端、后端、数据库的分工;用 Git 的版本演示解释“为什么 AI 写得越快,越需要版本控制”。
把“想清楚 → 设计清楚 → 规划清楚 → 开发 → 测试 → 部署”六个阶段完整走一遍,每个阶段的 Prompt 模板都可以现场复制。这一章是老师们回去之后能直接用的部分。
现在再讲平台本身:它是什么、由哪些模块组成、为什么这么设计。因为前面铺好了概念,这时讲“单 worker”“无前端构建”“显式上架”这些决策,大家才听得懂“为什么”。
最后用 5 个月、756 次提交的完整时间线收束:平台可以从小到大;发展必须有章法。规范不是第一天就有的,是随着规模一层一层长出来的——这正是每个人都可以复制的路径。
第一章开头。一张图分清算力、模型、产品、入口,之后所有名词都有了位置。
→ 第 1.1 节看懂“自己的网页怎么用上大模型”,以及一次请求到底打包了什么。
→ 第 1.6 节前端、后端、数据库如何接力。看懂这一张,就懂了所有网站。
→ 第 2.3 节从想法到部署的完整工作流,以及每个阶段该对 AI 说什么。
→ 第 3 章开头整个平台只有一台教师机、一个数据库、一群浏览器——看懂它的克制。
→ 第 4.2 节从 52 行脚本到 67 门课的五个月。规范是长出来的,不是天生的。
→ 第 5.3 节三个小时不可能什么都学会,也不需要。下面这张表说明每一项内容需要学到什么程度——第三档的内容,今天只需要知道“它存在”。
| 内容 | 要学到什么程度 | 为什么 |
|---|---|---|
| 第一档 · 必须会用 · 动手级 | ||
| 把任务说清楚:目标、背景、产出、边界、验收 | 今天回去就能用 | 这是与 AI 协作的基本功,所有场景的根 |
| 给 AI 喂材料、组织上下文 | 能判断“它缺什么信息” | AI 答非所问,九成是上下文问题 |
| 检查 AI 的结果 | 会核对事实、逻辑、格式、可用性 | AI 很自信,但自信不等于正确 |
| 用 MVP 思维砍需求 | 能说出“第一版只做什么、不做什么” | 想做的功能九成不需要第一版有 |
| 第二档 · 需要理解 · 概念级——看得懂、不被忽悠、知道问什么 | ||
| 模型 / 产品 / Agent / Skill / API 的区别 | 能把名词对号入座 | 不再把所有东西叫“大模型” |
| 上下文窗口有限 | 理解“聊着聊着就忘了”的原因 | 决定你怎么组织材料和规则文件 |
| 前端 / 后端 / 数据库的分工 | 看得懂一次请求的数据流 | 看懂它,就看懂了所有网站 |
| Git 快照与回退 | 理解为什么 AI 时代更需要版本控制 | AI 写得越快,改崩得越快 |
| API Key 与环境变量 | 知道密钥绝不能写进前端 | 这是钱和安全 |
| Token 与成本直觉 | 理解文字用量与费用的关系,材料不是越多越好 | 输入输出越多,越要关注用量与成本 |
| 第三档 · 只需知道存在 · 暂不深究 | ||
| 算力层、GPU、模型训练原理 | 知道有这层即可 | 不影响你今天的使用 |
| RAG、向量数据库、模型本地部署 | 知道“先查资料再回答”这个思路 | 真用到时再学 |
| CI/CD、服务器运维、域名备案 | 知道部署分几级 | 第一个项目用不上 |
| 多 Agent 编排、MCP、自动化 | 知道方向即可 | 平台级玩法,前期不需要 |
不需要全部听完才动手。每听完一部分,就有一件可以立刻做的事。
用任务委托书模板(目标 / 背景 / 产出 / 边界 / 验收)让 AI 帮你完成一次真实任务:备一节课、写一份通知、整理一次问卷。亲身体会“给材料、给边界、给验收”带来的差别。
用纸笔画出你想做的小工具的“八概念”(谁用 / 什么场景 / 痛在哪 / 第一版做什么),再画一页数据流。
把想法走一遍四个 Prompt(澄清 → 访谈 → 砍需求 → PRD),然后让 Coding Agent 只做 MVP 闭环。一次一个 Task,做完就 Commit。
项目变大后,补 AGENTS.md、验证脚本、发布流程。规范跟着规模长——不要提前,也不要缺席。
面对 AI,最常见的混乱是把所有东西都叫“大模型”。其实从你手指点开的 App,到机房里轰鸣的芯片, 中间隔着清晰的层次。这一章先把层次立起来,再逐个讲透那些真正影响你使用效果的概念: 模型、产品、Agent、Skill、API、上下文。
从下到上:算力提供动力,模型提供能力,产品提供体验,入口决定你从哪里接触它。点击任意一层查看解释。
不需要背排名,只需要看懂一个规律:每个公司都在做同一件事——把模型能力包装成不同形态的产品:日常助手、工作 Agent、编程 Agent。
| 公司 | 特点 | 模型 | 日常助手 | 工作 Agent | 编程 Agent |
|---|---|---|---|---|---|
| OpenAI | 综合最强 | GPT 5.6 系列(sol / terra / luna) | ChatGPT | ChatGPT Work | Codex |
| Anthropic | 编程与审美最强 | Claude 5 系列(Mythos / Fable / Opus / Sonnet) | Claude | Claude Work | Claude Code |
| 阿里巴巴 | 走开源路线 | 通义千问 Qwen 3.8 | 模型与生态开源,被广泛集成 | ||
| DeepSeek | 机制性价比 | DeepSeek-V4-Flash / V4-Pro | DeepSeek | DeepSeek Harness | API 被各类工具接入 |
| 字节跳动 | 重社交、影视 | Seed 系列(seed / seedance / seedream) | 豆包 | 豆包工作 | TRAE |
| 腾讯 | 重生态(公众号、微信) | 混元 Hy4 | 元宝 | WorkBuddy | CodeBuddy |
| 月之暗面 | 国产顶级编程与审美 | Kimi K3 | Kimi | Kimi Work | Kimi Code |
| 智谱 AI | 国产顶级编程与性价比 | GLM-5.3 / GLM-5.3-Flash(超便宜) | — | ZCode | |
大模型读过海量文字、代码、图片,训练后形成了一套极其复杂的规律。使用时,它根据当前提供的信息, 不断预测什么样的输出最合适。注意:“预测下一个词”是原理解释,不等于“AI 只会胡乱接龙”—— 现代模型通过这种训练,真实获得了语言理解、知识调用、推理、编码和多模态能力。
但请务必记住它的边界:AI 能力很强,却不能保证正确。它写代码很强,是因为有足够多的训练数据; 它语气很自信,也可能是在一本正经地补全一个错误答案。所以“检查 AI 的结果”不是可选项,是使用方式的一部分。
大模型以 Token(词元)为单位进行计算和收费。一个 Token 可以是一个字、一个词,甚至一个标点。在下面输入一句话,亲眼看看它会被怎样切分。
这是全部 AI 使用中最重要的一个公式:
上下文包括:你这次的提示词、前面的聊天记录、上传的文件、项目文件夹里的资料、规则文件…… 本质上就是“把文字和图片发给 AI,AI 返回结果”。但上下文窗口是有限的——点击下面的按钮,把材料一件件塞进去,看看会发生什么:
API 是程序之间约定好的办事接口。它告诉调用方:可以请求什么服务、信息应该怎么填写,以及结果会怎样返回。AI 只是它的一种用途;查天气、查物流、调用地图,也可以用 API。
你去餐厅吃饭,不需要走进厨房操作锅灶。看菜单、按要求点单,厨房做好后把菜交给你。自己的程序调用别人的服务,也有类似的分工。
提出需求:
“请解释这道题。”
可点什么、怎样下单、
怎样取到结果。
接收请求、进行计算,
把生成的答案送回。
以常见的大模型 API 为例:服务方提供接口文档、请求地址,以及开通调用权限的方式;你的网站后端按文档准备下面这些信息,再发出请求。
使用服务方提供的接口地址;不同地址可能负责对话、图片或其他能力。
常见方式是 API Key,像调用服务的通行证,也可能关联用量与费用。具体认证方式看文档。
按接口要求选择模型或功能,例如用哪个对话模型回答问题。
例如学生的问题、相关题目、必要的背景。服务不会自动知道网页里所有的信息。
例如用什么语气、回答多长、返回文字还是结构化数据。这些设置是否必填、支持哪些选项,都以接口文档为准。
模型是大脑,浏览器、PPT、Word 是工具,Agent 是调度器——它接到任务后自己拆解步骤、调用工具、逐步执行。可以把它理解为一个数字员工。点击“开始执行”,看一个 Agent 如何完成备课任务:
想象你在备课:先让 AI 读课标和教案,再让它上网搜资料,然后做成 PPT,再发给你——这一串你要提好几次要求。 Skill 就是把这串流程打包。做完之后你说一句“帮我把以上过程打包成一个 skill”, 以后只需要说“帮我备课”,它就会自动执行整串操作。Skill 的本质,是一个大的提示词文件。
什么时候才值得做 Skill?当一个流程会反复发生、步骤相对稳定的时候。只做一次的事,不值得打包。 CyberScope 里就沉淀了 11 个这样的 skill:做课、磨课、审课、上架、发布复核、课堂应急……第五章你会看到它们是怎么长出来的。
Markdown(.md)是一种介于 txt 和 Word 之间的格式:比 txt 多了层级信息,比 Word 少了格式负担。它是当下 AI 与人交互最快、最方便的格式。
纯文字,毫无章法。轻量,但 AI 看不出哪里是标题、哪里是重点。
用 # 表示标题、- 表示列表。结构清楚、足够轻量,人和 AI 都能直接读写。推荐
为“给人看”的精细排版而生,格式信息庞大复杂,AI 读起来又重又慢。适合最终交付,不适合工作过程。
所以你在本网站看到的所有 Prompt 模板、需求文档、规则文件、计划文档,全部是 Markdown。CyberScope 项目里就有 384 份 Markdown 文档——它是整个项目的“记忆载体”。
在支持这一约定的 AI 编程工具中,AGENTS.md 用来保存项目的长期工作规则。以 Codex 为例,它会按目录层级读取适用的规则,让 AI 知道这个项目怎样开发、检查和交付。
“在这个项目里,你以后干活都要遵守什么。”
学校有总手册,信息化科有科的手册,组里有组的手册——一定要精简,不然上下文太多。
“这一次我要你干什么。”
临时的、一次性的要求放在 Prompt 里;长期的、反复遵守的规则才写进 AGENTS.md。
AGENTS.md① 全项目README.md项目说明AGENTS.md② 前端细则index.htmlstyles.cssAGENTS.md③ 后端细则main.py例如:这是作业管理平台;不随意删除已有功能;完成修改后说明改了什么、如何验证。
例如:界面使用简体中文;按钮文字清楚;同时检查手机和机房电脑的显示效果。
例如:检查输入是否合法;密钥从环境变量读取;修改提交接口后检查正常与错误输入。
frontend/index.html根目录的共用规则
frontend/ 的界面细则
backend/main.py根目录的共用规则
backend/ 的服务细则
实际使用时,可以问 AI:“请列出你已读取、适用于这次修改的规则文件。”Codex 启动时按项目根到当前工作目录的路径读取,从根目录启动不等于所有子目录规则都已自动加载。参见 OpenAI 官方说明。
# 项目说明 这是一个面向中学信息技术课堂的作业管理平台。 # 用户 - 学生:查看和提交作业 - 教师:发布、查看和批改作业 # 技术栈 - 前端:React - 后端:FastAPI - 数据库:PostgreSQL # 开发规则 - 不要随意增加新的依赖 - 不要未经确认修改数据库结构 - 不要删除已有功能 - 所有界面使用简体中文 - 优先保证机房电脑上的使用体验 # 修改代码后 1. 检查是否影响已有功能 2. 运行测试 3. 修复报错 4. 告诉我修改了哪些文件
对比感受一下规模:CyberScope 的 AGENTS.md 有 278 行,外加 6 份分区手册、47 份架构决策记录——但它是项目长到 25 万行之后才需要的规格。规则文件要和项目的规模相匹配,第一天就写几百行规则是浪费。
用代码操作电脑的方法。本质上,所有电脑操作都可以用终端命令实现:打开某个 App、运行某个指令……ChatGPT 就是通过终端来控制你的电脑的。
有的 AI 只能理解文字;有的能理解文字 + 图像 / 视频;有的还能生成图像和视频。能处理多种信息形式,就是多模态。
大模型本质上也是一个应用程序。开源:可以把 DeepSeek 部署到任何地方,包括学校自己的服务器。闭源:不公开模型权重,只能在 OpenAI 公司的服务器里跑。
“先查资料再回答”:让 AI 先检索本地资料(比如学校的课件库),再基于查到的内容回答问题。能显著减少胡说八道。
用一个“作业答疑网页”把概念串起来。学生输入问题后,前端、后端和模型分别做什么?
选择“信息技术”,输入自己的疑问,点击提交。
提供学科选项、问题输入框和提交按钮;把返回的提示排版显示出来。
先检查问题是否为空、用户是否有权限;再按业务规则计算或查询。需要 AI 时,整理问题与必要材料,调用模型。
后端按任务选择处理路径:普通计算可直接完成;需要生成提示时,再调用 AI。
例如统计交了几份作业、计算平均分;需要保留记录时,再读写数据库。
附带输入、必要上下文与调用凭证,交给外部模型服务。
“域名像通讯录里的名字,IP 地址像号码。你猜 DNS 在中间做了什么?”
模型生成结果 → 后端接收并整理 → 前端显示提示 → 学生继续思考。
这一章回答两个问题:一个软件到底由什么组成?以及在让 AI 动手之前,你自己要先想清楚什么? 全程只用一个案例贯穿:一个信息技术课堂的“学生作业提交与统计平台”。
做软件不是从“功能”开始的,而是从“人”开始的。八个概念串成一条思考链:
其中最关键的是 MVP(最小可用版本):它不是“做得很差的完整系统”,而是只保留最小的完整价值闭环。 老师抱怨“收作业很乱”,真正的问题可能只是:文件散落在微信、QQ、U 盘多个渠道;无法快速知道谁没交。 所以第一版只需要一个闭环——老师创建作业 → 学生提交 → 老师看到已交/未交名单。 注册系统、家长端、AI 批改、积分排行榜,全部不做。
左右对比:左侧是完全不懂产品概念时的说法,右侧是补全八个概念之后的说法。
于是 Vibe Coding 最常见的现象出现了:
“AI 确实做出来了,但不是我想要的。”
网站 = 前端 + 后端 + 数据库。前端是界面(好不好看、顺不顺手);后端是干活的部分(整理数据、调用批改、写入存储);数据库负责存数据(增删改查)。 点击按钮,看一个学生提交作业时发生了什么:
这个系统的输入是什么?文字、图片、视频?怎么上传?—— 主要是前端的事
数据存在本地还是云端?数据库怎么设计?—— 存储设计
用什么算法和技术架构?要调用 AI 处理吗?—— 主要是后端的事
处理完怎么展示?显示什么内容?—— 又回到前端
组成软件的所有代码文件。
所有内容组成的文件夹体系——代码、文档、素材各就各位。
复杂功能不必自己重写:别人写好的软件包下载进项目目录就能调用。大型系统会有成百上千个依赖。
API Key、密码等重要内容不写进代码,保存在本地 .env 文件里,不上传。谁下载代码都要自己再配一份。
Git 是版本控制系统:记录文件随时间的变化,随时可以回退。它对 Vibe Coding 尤其重要—— 因为 AI 写代码速度越快,把东西改崩的速度也越快。点击按钮,体验一次“改崩 → 回退”:
不需要会写测试代码,但需要会问这些问题——它们中的任何一个,都可能在第一节课就变成真事故:
用户名密码正确,能不能登录?
密码错误怎么办?提示什么?
名单为空怎么办?1000 个学生怎么办?名字有 20 个字怎么办?
学生能不能看到别人的成绩?
刷新页面,数据还在吗?
手机能用吗?机房的老电脑能用吗?
网络断了怎么办?API 挂了怎么办?
实际结果与预期不一致 = Bug;找到为什么不一致 = Debug。
第五章你会看到,这些问题不是假设:CyberScope 的“半开 TCP 卡死全班群控”“演示班一夜烧光 AI 余额”都是真实发生、然后被固化成规则的事故。
只有自己电脑上能运行。适合开发调试、“自己先用起来”。
所有人都能打开,但没有后端和数据库。适合展示静态页面和原型。
租服务器 + 租域名 + 备案,前后端全部上线,所有人都能真正使用。
作者的域名是 ericlab.cn,所有项目都挂在它的子域名下——CyberScope 的公开演示站就是 cyberscope.ericlab.cn。但它的主战场其实不在公网:它是跑在机房局域网里的,这一点第四章细讲。
Vibe Coding 不是“随口说个想法,AI 一次生成完整软件”,而是用自然语言管理一个软件项目。 这一章是可带走的操作手册:六个阶段,每个阶段都有可直接复制使用的 Prompt 模板。
最终要得到什么。
对象、材料、现状和原因。
格式、长度、受众和质量标准。
不能做什么、必须核什么、何时问你。
目标告诉 AI 去哪里,边界告诉 AI 不要去哪里,验收标准告诉 AI 什么时候停。另外记住最重要的一条工作习惯:复杂任务不要让 AI 一上来就干——先让它复述理解、指出缺失信息、提出方案,你确认范围之后再执行。
先定义问题、明确需求,而不是直接设计功能——你以为需要的功能不一定需要。以解决需求为目标,而不是以做出功能为目标。
我有一个产品想法: [写你的想法] 先不要设计页面,也不要写代码。 请作为资深产品顾问,使用“grill-me”这个 skill 向我发起多轮提问, 帮助我把这个想法想清楚。重点分析: 1. 谁可能会使用它; 2. 用户现在是怎么完成这件事情的; 3. 当前过程中最麻烦的地方是什么; 4. 这个产品真正应该解决的核心问题是什么; 5. 哪些可能只是我想象中的需求,而不是真实需求; 6. 这个想法是否真的值得做成软件; 7. 如果不开发软件,有没有更简单的解决方法。 最后用一句话定义: “我们要为【什么用户】,解决【什么问题】。”
grill-me 是最重要的一个 skill:它让 AI 反过来“拷问”你,直到想法经得起推敲。
我准备开发: [产品] 目前我的想法还不成熟。暂时不要写代码。 你现在作为产品经理采访我。请通过连续提问帮助我把需求想清楚。 重点追问:谁使用;什么场景使用;用户现在怎么做;最大痛点; 核心流程;必须功能;可选功能;数据;权限;异常情况;UI; 使用设备;使用规模;隐私;部署方式;未来可能扩展的方向。 根据我的回答继续追问。如果发现我前后需求矛盾,也要指出来。 直到你认为需求已经足够清楚,再整理成完整需求说明。 在我确认之前不要开始开发。
下面是我目前想到的全部功能: [功能] 请不要继续增加功能。现在帮我尽可能“砍需求”。 目标是做一个真正能够被用户使用的最小可行版本 MVP。 请把功能分成: A. MVP 必须有 —— 没有它核心流程无法完成 B. 第二阶段 —— 有明显价值,但第一版可以没有 C. 锦上添花 —— 暂时不要做 D. 建议删除 —— 复杂度明显高于价值 判断时优先考虑:1. 是否解决核心问题;2. 用户是否真的会使用; 3. 开发复杂度;4. 数据和安全风险;5. 是否可以以后增加。 最终给出第一版 MVP 的明确边界,做成一份 md 文档保存到文件夹。
根据我们已经确认的内容,生成一份适合小型 Vibe Coding 项目的需求文档。 包括:1. 产品背景;2. 要解决的问题;3. 目标用户;4. 核心场景; 5. 产品目标;6. 非目标;7. 用户故事;8. 功能需求;9. 用户流程; 10. 数据需求;11. 权限要求;12. 异常情况;13. MVP 范围; 14. Out of Scope;15. 验收标准;16. 待确认问题。 要求:不要擅自增加需求;不要用模糊语言;有歧义的位置明确标记; 尽量让另一个完全没参与讨论的 Coding Agent 只读这份需求文档就能理解项目。 最后做成一份 md 文档保存到文件夹。
这份文档放到项目文件夹里,以后进入这个文件夹的 AI 都知道你的详细需求——它就是项目最重要的上下文之一。
需求确定后,先设计再开发:用户怎么操作?有哪些页面?什么风格?用什么技术?系统怎么组装?
产品:[产品] 用户:[用户] 核心任务:[任务] 请设计用户从进入系统到完成任务的完整 User Flow。 每一步说明: 用户看到什么 → 用户做什么 → 系统发生什么 → 系统反馈什么 → 下一步是什么 同时考虑:第一次使用;正常使用;操作失败;用户取消;返回;权限不足;数据为空。 优先减少步骤和用户思考成本。 不要为了“功能丰富”增加不必要页面。
基于需求文档,请根据用户任务设计 Information Architecture。 告诉我: 1. 系统需要哪些页面; 2. 页面之间是什么关系; 3. 主导航应该有哪些入口; 4. 哪些页面应该合并; 5. 哪些功能不值得单独做一个页面; 6. 每个页面最核心的任务是什么。 请输出:页面 → 页面目的 → 核心用户 → 主要操作 → 前往哪里 要求:一页尽量服务一个明确任务。做成一份 md 文档保存到文件夹。
为以下产品设计界面及美学风格: 产品:[产品] 主要用户:[用户] 核心任务:[任务] 设备:[电脑 / 手机 / 平板] 请先分析用户使用场景,然后设计页面。 要求: 1. 页面视觉层级清楚; 2. 用户进入页面 3 秒内知道要做什么; 3. 核心操作突出; 4. 次要功能降低视觉权重; 5. 不堆砌卡片; 6. 不为了“高级感”过度增加装饰; 7. 落一份详细好看的设计系统; 8. 制作一个原型页面展现你的设计。 (可以加你喜欢的风格,比如“高级、精致、有科技感的色彩搭配”; 对审美有要求时,也可以去搜集不同风格的提示词,或让 AI 复刻某个你欣赏的网站)
我要开发:[项目] 用户规模大约:[规模] 团队情况:我主要通过 AI Coding Agent 开发,本人技术经验有限。 核心需求:[需求] 请帮我选择尽可能简单、成熟、有良好文档和 AI 支持的技术方案。 分别考虑:前端;后端;数据库;用户认证;文件存储;部署;域名;日志;备份。 原则: 1. 优先减少技术栈数量; 2. 不为未来不存在的问题过度设计; 3. MVP 优先使用托管服务; 4. 明确免费方案的限制; 5. 告诉我什么时候才需要升级技术架构。 请比较 2~3 套方案,最后明确推荐一套。
根据这个项目:[需求文档 + 技术栈] 请用适合非专业开发者理解的方式,解释整个系统架构。 说明:用户 → 前端 → API / 后端 → 数据库 → Storage → Auth → 第三方 API 分别负责什么。 同时说明: 1. 数据从哪里产生;2. 经过哪里;3. 存在哪里; 4. 谁可以访问;5. 哪些操作发生在浏览器;6. 哪些必须发生在服务器端。 最后在项目文件夹落一份 Mermaid 架构图。
不要想到哪写到哪。让 AI 作为技术负责人,把项目拆成阶段,明确每个阶段做什么、交付什么、如何验收——以及每个阶段的 Prompt。
我们已经完成这个项目的需求分析和初步技术设计。 去文件夹中寻找:【PRD】【MVP 范围】【主要页面 / 用户流程】【技术栈】【系统架构】 现在不要开始写业务代码。 请你作为这个项目的技术负责人,为整个项目制定一份项目开发计划。 目标不是规划某一个功能,而是回答: “这个项目从空目录到正式上线,应该按照什么顺序完成?” 请完成以下工作: 1. 把整个项目拆分成若干阶段;2. 明确每个阶段的核心目标; 3. 说明每个阶段具体需要完成哪些事情;4. 说明这一阶段的主要交付物; 5. 指出阶段之间的依赖关系;6. 哪些基础设施必须先完成; 7. 哪些功能可以并行开发;8. 哪些功能必须后做; 9. 每个阶段如何验收;10. 每个阶段结束时项目应该处于什么状态; 11. 给出每个阶段的 prompt。 规划时遵循: - 优先完成基础能力;优先跑通核心用户流程; - 每个阶段完成后系统都应尽可能处于可运行状态; - 避免同时开发过多相互依赖的功能; - 不要为了未来可能存在的需求过度设计; - 不增加需求文档中没有确认的新功能。 输出最终的 Project Roadmap.md 文件。 最后告诉我:如果今天正式开始开发,第一阶段应该做什么。
先搭框架 → 再实现基本功能 → 设计好数据库 → 调用合适的 API → 调试。按 Roadmap 的阶段顺序来,一次只做一件事。
测试每一个功能能不能用;思考数据安全防范与权限设计;对照验收标准逐项打勾。
自己用 → 本地部署;前端展示 → Netlify;上线公开 → GitHub + 云服务器。
开发阶段的本质,是下面这个循环——你不是在“问”AI,你是在“管理”AI:
没有人能一步跳到“掌控大系统”,但每一步都有明确的标志。对照这张表,你可以知道自己在哪里、下一步是什么。
| 阶段 | 你学会了什么 | 标志 | CyberScope 的对应时期 |
|---|---|---|---|
| 阶段一 · 会把任务说清楚 | 单次对话就能拿到可用结果:给目标、给材料、给验收 | 一份能直接用的课堂方案 | 2026 年 4 月初:还只是和 AI 对话 |
| 阶段二 · 会组织工作区 | 项目文件夹 + 任务文件 + 简版规则,AI 跨对话不丢上下文 | 新开一个对话,AI 仍能接着干 | 4 月 5 日:建立项目文件夹,第一次提交 |
| 阶段三 · 会管理开发循环 | 需求文档、拆 Task、跑测试、Commit,出问题能回退 | 平台改崩了,三分钟退回完好版本 | 5 月起:AGENTS.md、验证脚本、spec 四件套 |
| 阶段四 · 会运营一个系统 | 安全网、成本护栏、发布流程,事故复盘变成规则 | 真实课堂 50 人稳定使用 | 7–9 月:压测、护栏、演示站、开学实战 |
关键心法:不是“学完所有知识再开始”,而是每长到一个阶段,就把那个阶段的规范补上。CyberScope 的规范没有一条是提前写好的,全是规模到位后长出来的。
CyberScope(智瞰)是一个高中机房里的课堂操作系统:教师机跑后端,约 50 台学生机用浏览器访问—— 它是本地局域网课堂平台,不是 SaaS。作者是一位工程师转岗的信息技术教师, 全平台由他一人借助 AI 编程开发。这一章回答三件事:它由什么组成、每个部分干什么、为什么这么设计。
平台的 AGENTS.md 开篇就写死了优先级——所有设计决策都可以从这张排序里推导出来:
课堂 45 分钟不能出事故,所以稳定性压过一切;老师要能控住全场;学生是未成年人,数据安全是红线;而全平台只有一个人维护,所以“看得懂、改得动”本身就是架构目标。
先看课堂运行,再看内容和开发流程。教师端与学生端在浏览器中打开,共同连接教师机上的后端。
一次开课、一份作品、一个 AI 问题,都沿着这张图找到去处。
先看教师端和学生端,再看教师机里的后端与数据;只有需要 AI 时,后端才调用外部模型。
教师与学生使用的网页
选课开课、控制课堂
查看学情、评价作品与回看
进入课程、完成活动与训练
向小信提问、提交作品
局域网课堂的中心
身份、班级、课次与权限
课堂控制、提交与评价、AI 请求
学生、班级、课次、任务与控制
作品正文、版本、提交回执与评价
训练记录与课堂数据
课程 JSON、HTML、JS、媒体
题库与作品任务定义
按需连接公网
为小信问答、课件 AI 和评价提供模型推理。
后端按功能组织、处理上下文,再发给模型。数据库保存在教师机;调用 AI 时,问题或评价所需的课堂内容仍可能出网。
这里画的是局域网课堂。公网演示站使用独立环境。
教师把教学意图组织成课程。
学生端呈现课程内容;后端读取任务定义。
问题 / MVP / PRD
README / AGENTS.md
Skills / 脚本
测试 / Git / 同一 SHA
代码与课堂数据分开
这些约定支撑系统的维护与发布,不是课堂请求要经过的五台服务器。
作品能力贯穿整个平台。学生提交、教师评价、数据库保存版本、教师按权限展示作品,因此不再单列“统一作品库”。
按 2026 年 9 月 4 日的本地开发版校准。作品相关功能已完成本机验证,真实模型容量与 Windows / Edge 机房验收仍待完成;本图不代表公网演示站已同步这些更新。
课程大厅(初/高中分厅)、canvas 互动课件、全屏展台纪律、成长档案(跟自己比,不排名)。
Frontend/app/“一屏不滚动”的课堂指挥面板:选班开课、锁屏/倒计时锁、聚焦到某节某屏、2×2 学情仪表盘、谁需要我、课后复盘、花名册。
Frontend/teacher/学生问答只引导不给答案;连错自动救援;教师可“派小信”给卡住的学生。走 DeepSeek API,带内容守门与出网脱敏。
Backend/routes/chat.py必修一 28 门、必修二 18 门、会考复习 3 门、拓展 2 门、校本《生成式 AI》16 门。canvas 是唯一课型;学生只看到“显式上架”的课。
Frontend/courses/课件里一行代码就能调 AI;开放题由服务端按量规权威判分——AI 评分不发生在学生浏览器里,防止被改。
Backend/routes/course_llm.py学生在浏览器里运行真正的 Python(Pyodide),教师机不执行学生代码;50 题题库、题单闭环、教师实时钻取、AI 诊断。
Backend/gym/锁屏(含倒计时)、教学聚焦、强制登出、单一在课班、群控回执 N/M、版本号防倒退——WebSocket 实时群控。
Backend/ws_manager.py未成年人保护:自伤/心理危机关键词预警,与普通数据物理隔离存放,教师人工闭环;全部埋点匿名化。
Backend/routes/teacher_crisis.py一键拉起 50 个“模拟学生”用于压测和演示;默认关闭、限时限 AI 次数——它是被一次真实事故逼出来的(见第五章)。
Backend/demo_orchestrator.py全交互埋点可匿名导出 CSV/JSON(稳定假名),直接支撑论文与课题研究。
docs/data-dictionary.md学生端故障自动记录现场,课后一条命令导出定位——让“课堂上说不清的死机”可复盘。
Backend/routes/fault.pydisplay.html 投黑板:课件画布 + 匿名学情墙 + 学生作品;observe.html 让听课老师只读走课、上帝视角看全班。
Frontend/display.html架构图是静态的,课堂是活的。跟着一节课走一遍,你就理解每个模块什么时候上场。
教师机双击「开始上课.cmd」,后端启动;学生机浏览器打开教师机 IP,进入课程大厅——只能看到已上架的课。
教师端选班级、选课程,点“开课”;全班锁屏并聚焦到第一屏,大屏同步投出课件。
学生在 canvas 课件里边看边操作;卡住可以问 AI 学伴“小信”,它只引导不给答案;教师的控制台是一块“一屏不滚动”的仪表盘:本小节学习情况、AI 助教建议、谁需要我、各节掌握度,四格实时更新;发现谁卡住,一键“派小信”过去;Python 课则进入训练馆——学生在自己浏览器里运行真正的 Python,教师实时看到每个人的代码。
一键下课,全班解锁;复盘页看全班数据;所有交互埋点可匿名导出,直接支撑教研论文;如果课堂上有机器出过故障,“黑匣子”已经自动记下现场,课后一条命令导出定位。
课堂上老师的注意力在学生身上,只能分给屏幕“余光”。所有关键信息必须一屏装下、不能滚动——这是 4.1 里“课堂稳定性 > 一切”那条优先级在界面上的直接体现。
它是学伴,不是答题机。它的角色设定里写死了苏格拉底式引导规则——先反问、再给提示、绝不直接给答案;而且开放题评分在服务端按量规完成,学生就算会改浏览器也改不了分数。AI 能做什么、不能做什么,由后端规则决定,不靠模型自觉。
50 个学生的代码如果在教师机上执行,一个死循环就能让全班瘫痪。Pyodide 让 Python 跑在学生自己浏览器的沙箱里——教师机零风险,学生拿到的却是真正的 Python 环境。这是“用架构消灭一整类事故”的典型例子。
如果时间只够讲一部分,就讲这一节。每个决策背后都是一条可以迁移到任何项目的经验。
课堂 45 分钟不能赌公网质量;学生机没有装软件的权限;学生数据不应离开校园。三个约束叠加,答案就是“教师机即服务器”。代价是教师机必须可靠——所以配套了双目录(dev 验候选 / live 跑稳定)、更新前自动备份、一键启动脚本。
AGENTS.md 原话:刻意没有前端构建管道。没有 React、没有打包器——浏览器直接运行的文件就是源文件。对单人维护者,这意味着零构建故障、零依赖升级地狱、改完刷新即所见;对课堂,这意味着启动快、出错面小。技术选型不是选最先进的,是选“一个人五年后还维护得动”的。
数据库是一个单文件 SQLite(WAL 模式),备份 = 复制一个文件;后端必须单进程运行,因为“谁在在线”的表存在进程内存里(ADR-0003)。50 人的课堂规模,这套“玩具级”组合绰绰有余——不为未来不存在的问题过度设计,规模到了再升级,这正是第二章技术选型原则的真实执行。
4 月作者曾做一个可视化备课工具 Studio;6 月发现“两种做课方式”会让课程质量失控,于是整个删掉(ADR-0017/0018),确立 canvas 画布为唯一课件形态、课程由扫描自动注册。敢删自己的功能,比敢加功能更难也更重要——这是“课程作者一致性”这条优先级的体现。
学生是未成年人,AI 不能裸奔:内容守门拦截不当话题;出网前把学生身份信息脱敏;开放题评分放在服务端按量规执行,学生改浏览器也改不了分数;学生问答固定在便宜的 deepseek-v4-flash 档位。AI 能力被允许做什么、花多少钱,全部由后端规则决定,而不是由模型自觉。
项目有一套写给 AI 的“法律”:278 行 AGENTS.md 总纲 + 6 份分区手册;47 份 ADR 记录每个重大决策的“为什么”;49 个 spec 目录,每个改动按“规格 → 计划 → 任务 → 验证”四件套推进;还有 Python 写的机器护栏(hooks)拦截危险操作,11 个 skill 封装高频流程。第五章会专门讲这套体系是怎么长出来的。
67 门课“在库”不等于学生可见——课程必须显式上架(published)才出现在大厅;演示班默认关闭;默认教师口令只允许本机登录;名单制默认开启。所有默认值都站在安全一侧,这三条默认值改动本身就是一次专门的安全决策(ADR-0035)。
数据库只有一个文件(lab_data.db),但里面的表各司其职——看表名就能猜出平台在关心什么:
users 学生档案 · active_sessions 在线心跳 · class_period 第几节课 · class_controls 锁屏/聚焦状态(带版本号防倒退)
action_logs 全交互埋点(研究地基)· student_course_scores 形成性评分唯一真相 · gym_attempts 训练馆记录
chat_logs AI 对话留档 · ai_config 教师可配的模型与密钥(掩码存储)· crisis_alerts 危机预警(物理隔离)
client_faults 课堂黑匣子 · app_settings 全局开关 · 版本化迁移表——数据库结构的每次变更都有记录
AI 调用全部走 OpenAI 兼容协议,集中在后端四个位置:学生问答(chat.py)、课件评分(course_llm.py)、学情分析(teacher_analytics.py)、训练馆诊断(gym/)。前端从不直接碰 API Key。
教师机运行后端,学生访问 http://教师机IP:8000。Windows 教师机用双目录制:CyberScope-dev 验证候选版本、CyberScope-live 跑稳定版本;数据库放在仓库之外;更新前先在线备份。配套一组一键 .cmd 脚本:开始上课 / 首次安装 / 更新稳定版 / 验证候选版 / 备份数据库。
cyberscope.ericlab.cn:阿里云服务器 + Nginx 反代 + HTTPS 证书,按时间戳目录切换发布。2026 年 7 月 6 日首次上线,迄今发布 5 次。服务常驻内存约 64 MB——一个完整教学平台可以这么轻。
按传统开发方式估算,这大致相当于一个 3–4 人小团队半年到一年的产出——而它出自一位教师 + AI 之手,用时五个月。
这一章是完整的 Git 提交史复盘。讲它不是为了展示成果,而是为了证明两件事: 平台可以从小到大——先有最小可用版本,再一步步长大; 发展必须有章法——平台越大,越不能想到什么做什么,规范要跟上规模。
* 9 月数据仅为前 3 天。4 月起步,5 月立规矩,6 月体系化爆发,7 月铺满内容并上线,8 月被真实世界倒逼修正,9 月开学实战。
很多人以为规范是项目第一天就设计好的。CyberScope 的真实顺序恰恰相反——每一步都是被上一步的混乱逼出来的:
4 月 5 日 first commit:52 行后端,一个接口直调 DeepSeek。两天后第一次大跳跃:完整后端骨架 + 教师控制台 + 第一门课《域名与 DNS》(+6201 行)。4 月 9 日做了可视化备课端(后来在 6 月被自己删掉);4 月 20 日写下第一份产品需求文档。
43ad961 first commit75b36ea 平台骨架b12f2cf 首份 PRD5 月 4 日引入 AGENTS.md,确立工程纪律;5 月 13 日引入最小验证脚本和真相文档;中旬完成安全加固(教师/学生鉴权);月底做了一次逐链路大审计,产出 54 条 bug 清单,并确立 ADR + spec 四件套工作法。
47dfaec 引入 AGENTS.md875e716 验证脚本fccbc68 ADR 体系确立AI 通用化 + 未成年人合规上线;首次 50 人课堂压测 17/17 通过;删掉 4 月做的备课端,确立 canvas 唯一课型;P1–P10 成熟化连环落地(真 Python 进浏览器、学情看板、诊断式小信、展示端/观摩端);在 golden 安全网保护下把 3174 行的“上帝文件”拆成 8 个模块。
978ce4f 50 人压测7059363 删备课端c7616e2 golden 安全网批量做课:必修一、必修二、会考复习、校本 AI 课共 64 门入库。7 月 6 日演示站首次上线 ericlab.cn;7 月 10 日用 60 个 AI 审查员做五维审计,当天 70+ 次提交清缴技术债,平台功能封版;7 月 18 日第一次正式发布到 main 分支;下旬把三项默认值改到安全一侧。
b4277f7 演示站上线468b766 功能封版71bf650 首次正式发布8 月 3 日,线上演示班忘下课连跑约 15 小时,30 个模拟学生打了 44,044 次真实 AI 调用,耗尽 DeepSeek 余额。止血方案当天上线:每次演示最多 12 次真实 AI 采样 + 最长 1 小时 + 超限额明确报错。月底:8 个真实班级、247 份学生档案导入,准备开学。
5cb5f96 AI 成本护栏开学准备 · 真实花名册9 月 1 日《开学第一课·看懂数字系统》真实开课,当天出了事故(学生无法单人退出),次日收编修复并上线;两天内做出 Python 训练馆(50 题题库、浏览器内真 Python);补上双平台 CI;课堂 AI 并发提升到 60 路。平台进入“边上课边进化”的阶段。
20260901 开学第一课发布bab4031 双平台 CI这是这份说明书里最值钱的部分。每个坑都按“案发 → 根因 → 规则”讲——规则不是想出来的,是赔出来的。
案发:第一次提交就推上去 2310 个文件、46 万行——因为把整个 Python 虚拟环境一起传了;更糟的是,DeepSeek 的 API 密钥直接写死在代码里。
根因:没有 .gitignore 的概念,也没有“密钥不能进代码”的意识——这是每个新手的第一天。
留下的规则:虚拟环境、密钥、数据库永不入库;密钥进 .env 环境变量。这条规则后来写在 AGENTS.md 硬规则里,还有机器护栏拦截。
案发:一次改动后,所有静态检查都通过,页面也能打开——但学生一登录就崩。原因是一个看似无害的导出写法没有真正建立绑定。
根因:“检查通过”不等于“能跑”。静态工具看不到运行时的行为。
留下的规则:收尾必须真实运行验证脚本(doctor + smoke),“不做完 = 任务没完”写进 AGENTS.md 的收尾硬门。
案发:课堂上全班群控突然失灵——不是断线也不是正常连接,而是“半开”连接把消息通道卡死(事故编号 id=132)。
根因:机房网络环境下,连接状态比想象中脆弱;没有心跳和回执,就永远不知道对面“活着没有”。
留下的规则:在线心跳水位 + 群控回执 N/M——教师端永远显示“50 台机器,48 台确认”,而不是假装一切正常。
案发:把学生名字直接拼进 HTML 渲染——如果学生把名字改成一段脚本,脚本就会在老师屏幕上执行(事故编号 id=97/123,存储型 XSS)。
根因:把“用户输入”当“可信内容”渲染,是经典安全错误;课堂里“用户”就是 50 个好奇心旺盛的学生。
留下的规则:所有用户输入一律转义后渲染;安全审查 skill 常驻。
案发:代码改了,文档没改。下一次 AI 进来,照着过期文档理解系统,改出了新的 bug。
根因:AI 协作里,文档就是上下文;过期文档比没有文档更危险——它让 AI 自信地走错路。
留下的规则:收尾必须过一张 14 项的“文档同步表”:改了契约必须同步契约文档,改了视觉必须同步设计规范,逐项打勾才算完成。
案发:线上演示班忘了下课,连跑约 15 小时;30 个模拟学生打出 44,044 次真实 AI 调用,DeepSeek 余额耗尽。
根因:演示功能默认放行真实 API,没有任何限额——“假学生”花的是真钱。
留下的规则:成本三道闸——每次演示最多 12 次真实 AI 采样、最长 1 小时自动下课、超限返回明确的 402 错误。
案发:第一次面对 50 个真实学生的课堂上,出现了一个此前压测没覆盖的问题:单个学生无法被单独退出。
根因:模拟学生再逼真,也模拟不出真实课堂的全部混乱;50 个真人的行为分布比脚本宽得多。
留下的规则:次日修复并发布;建立“课堂应急”skill——课堂上出问题走极窄的应急通道,课后必须收编成正式修复。能进能退:当天还撤回了一套刚做好的 Windows 自动部署系统(5 个 revert commit),不合适的方向要敢于整体撤回。
案发:4 月花力气做了一个可视化备课工具 Studio,6 月发现“两种做课方式”会让课程质量失控——于是整个删掉,上千行代码。
根因:功能多不等于平台好;每条做课路径都要维护,课程作者的一致性被稀释。
留下的规则:canvas 成为唯一课型,课程由扫描自动注册(ADR-0017/0018)。“敢删”比“敢加”更难,也更重要。
八条规则没有一条来自教科书,全部来自真实课堂和真实事故。这就是“发展必须有章法”的另一面:章法不是用来约束你的,是用来让你敢继续往前走的。
CyberScope 的起点是 52 行代码和一个写死在代码里的密钥。它不是因为一开始就设计完美才长大,而是先把最小闭环跑通,再让规模拉着规范一层层长出来。你想做的那个“作业平台”“报修平台”,也可以这样开始。
平台越大,掺和的事情越多,越难随意操作:需求要文档化、决策要留 ADR、改动要走 spec、收尾要跑验证、密钥绝不入库。章法不是官僚,是让 AI 能持续帮你干活的唯一方式。
讲完之后的“防遗忘卡片”。每个概念一句话。
应该反过来:先让大家亲手得到一个“不太能用”的结果,再回头讲概念。
Prompt 是拿来改的不是拿来抄的。一次只给一条,让大家带回去反复用。
展示失败和回退(比如那次改崩的版本 4),比展示成功更有教学价值。
能跑通闭环、通过验收标准才算完成。好看是最后一步。
厂商地图一页就够。老师需要的是一款稳定主工具,不是排行榜。
AGENTS.md 是上下文不是保险柜。真正的安全靠权限、密钥管理和验收流程。