AI 工坊 × CyberScope
AI 工坊 · 交互式学习网站 · 2026 年 9 月

从一个想法,
到一座真实运行的平台

这不是一份 PPT 的网页版,而是一次完整的旅程:先用最朴素的方式看懂 AI、模型、Agent、API、上下文;再理解一个软件由什么组成; 然后走一遍 Vibe Coding 从想法到部署的完整工作流—— 最后,拆开一个真实的教学平台 CyberScope, 看它如何从一个 52 行的脚本,长成今天 25 万行、67 门课的课堂操作系统。

适合读者 几乎不懂 AI 与软件开发的老师 阅读时长 约 60–90 分钟 使用方式 顺序浏览,也可以按讲解路线跳读
向下滚动开始
导读 GUIDE

这份材料怎么用,
以及推荐的讲解顺序

本网站同时服务两个目的:一是让老师自己看懂 AI 与 Vibe Coding 的完整知识地图; 二是作为讲解 CyberScope 平台设计的说明书。两者由一条主线串起来: 所有抽象概念,都用学校里的真实场景讲;所有流程,都用 CyberScope 的真实发展史作证。

0.1推荐讲解顺序

如果你要带着一群人从头讲一遍,建议不要按“先名词后案例”的顺序。最有效的次序是: 先用故事勾住注意力,再建概念地图,然后讲方法,最后拆开平台验证一切。

第一步 · 5 分钟

先讲“它从多小开始”

直接跳到第五章的开头:2026 年 4 月 5 日,CyberScope 的第一个版本只有一个 52 行的后端文件,甚至把整个 Python 环境误传进了仓库、把密钥写死在代码里。让大家先看到“起点可以很低”,后面的规范才有意义。

第二步 · 20 分钟

建立 AI 概念地图(第一章)

用“算力 → 模型 → 产品 → 入口”四层地图开场,重点讲透 API、Agent、Skill、上下文四件事。每讲一个概念,都用 CyberScope 里的对应物举例:API 就是“小信老师”背后的那条请求链路;上下文就是“为什么 AI 有时答非所问”。

第三步 · 15 分钟

看懂软件由什么组成(第二章)

用“学生提交一次作业”这个动画讲清前端、后端、数据库的分工;用 Git 的版本演示解释“为什么 AI 写得越快,越需要版本控制”。

第四步 · 20 分钟

走完 Vibe Coding 工作流(第三章)

把“想清楚 → 设计清楚 → 规划清楚 → 开发 → 测试 → 部署”六个阶段完整走一遍,每个阶段的 Prompt 模板都可以现场复制。这一章是老师们回去之后能直接用的部分。

第五步 · 25 分钟

解剖 CyberScope(第四章)

现在再讲平台本身:它是什么、由哪些模块组成、为什么这么设计。因为前面铺好了概念,这时讲“单 worker”“无前端构建”“显式上架”这些决策,大家才听得懂“为什么”。

第六步 · 10 分钟

回到成长史,落在两个信念上(第五章)

最后用 5 个月、756 次提交的完整时间线收束:平台可以从小到大;发展必须有章法。规范不是第一天就有的,是随着规模一层一层长出来的——这正是每个人都可以复制的路径。

0.2如果时间有限,这几张图必须看

AI 四层地图

第一章开头。一张图分清算力、模型、产品、入口,之后所有名词都有了位置。

→ 第 1.1 节
API 请求模拟器

看懂“自己的网页怎么用上大模型”,以及一次请求到底打包了什么。

→ 第 1.6 节
一次作业的数据流

前端、后端、数据库如何接力。看懂这一张,就懂了所有网站。

→ 第 2.3 节
Vibe Coding 六阶段全景

从想法到部署的完整工作流,以及每个阶段该对 AI 说什么。

→ 第 3 章开头
CyberScope 全局架构图

整个平台只有一台教师机、一个数据库、一群浏览器——看懂它的克制。

→ 第 4.2 节
成长时间线

从 52 行脚本到 67 门课的五个月。规范是长出来的,不是天生的。

→ 第 5.3 节
给讲解者的提醒
讲概念时最容易犯的错,是先把所有名词讲完再让大家动手。更好的节奏是: 先让大家亲手得到一个“不太能用”的 AI 结果,再回头解释为什么—— 只有先失败一次,任务定义、上下文、验收标准这些概念才有附着点。

0.3学什么、学到什么程度

三个小时不可能什么都学会,也不需要。下面这张表说明每一项内容需要学到什么程度——第三档的内容,今天只需要知道“它存在”。

内容要学到什么程度为什么
第一档 · 必须会用 · 动手级
把任务说清楚:目标、背景、产出、边界、验收今天回去就能用这是与 AI 协作的基本功,所有场景的根
给 AI 喂材料、组织上下文能判断“它缺什么信息”AI 答非所问,九成是上下文问题
检查 AI 的结果会核对事实、逻辑、格式、可用性AI 很自信,但自信不等于正确
用 MVP 思维砍需求能说出“第一版只做什么、不做什么”想做的功能九成不需要第一版有
第二档 · 需要理解 · 概念级——看得懂、不被忽悠、知道问什么
模型 / 产品 / Agent / Skill / API 的区别能把名词对号入座不再把所有东西叫“大模型”
上下文窗口有限理解“聊着聊着就忘了”的原因决定你怎么组织材料和规则文件
前端 / 后端 / 数据库的分工看得懂一次请求的数据流看懂它,就看懂了所有网站
Git 快照与回退理解为什么 AI 时代更需要版本控制AI 写得越快,改崩得越快
API Key 与环境变量知道密钥绝不能写进前端这是钱和安全
Token 与成本直觉理解文字用量与费用的关系,材料不是越多越好输入输出越多,越要关注用量与成本
第三档 · 只需知道存在 · 暂不深究
算力层、GPU、模型训练原理知道有这层即可不影响你今天的使用
RAG、向量数据库、模型本地部署知道“先查资料再回答”这个思路真用到时再学
CI/CD、服务器运维、域名备案知道部署分几级第一个项目用不上
多 Agent 编排、MCP、自动化知道方向即可平台级玩法,前期不需要

0.4什么时候可以开始动手

不需要全部听完才动手。每听完一部分,就有一件可以立刻做的事。

今天 · 听完第一章

回去就能做:让 AI 完成一次真实任务

用任务委托书模板(目标 / 背景 / 产出 / 边界 / 验收)让 AI 帮你完成一次真实任务:备一节课、写一份通知、整理一次问卷。亲身体会“给材料、给边界、给验收”带来的差别。

本周 · 听完第二章

先不写代码:把想法画在纸上

用纸笔画出你想做的小工具的“八概念”(谁用 / 什么场景 / 痛在哪 / 第一版做什么),再画一页数据流。

准备好后 · 跟着第三章

走一遍完整工作流,只做 MVP

把想法走一遍四个 Prompt(澄清 → 访谈 → 砍需求 → PRD),然后让 Coding Agent 只做 MVP 闭环。一次一个 Task,做完就 Commit。

长期 · 第四、五章

规范跟着规模长

项目变大后,补 AGENTS.md、验证脚本、发布流程。规范跟着规模长——不要提前,也不要缺席。

今天回去就能做的三件事
① 复制第三章的任务委托书,回去完成一次真实任务; ② 写下你工作里最重复的一件事,用 grill-me 拷问自己“它值不值得做成软件”; ③ 打开演示站 cyberscope.ericlab.cn,以学生身份走一遍《开学第一课》。
第一章 CHAPTER 01

看懂 AI 世界:
先建立一张地图,再往里放名词

面对 AI,最常见的混乱是把所有东西都叫“大模型”。其实从你手指点开的 App,到机房里轰鸣的芯片, 中间隔着清晰的层次。这一章先把层次立起来,再逐个讲透那些真正影响你使用效果的概念: 模型、产品、Agent、Skill、API、上下文

1.1AI 世界的四层地图

从下到上:算力提供动力,模型提供能力,产品提供体验,入口决定你从哪里接触它。点击任意一层查看解释。

交互 · 点击每一层
使用入口
网页端 · 手机 App · 客户端 · API 接入
产品层
ChatGPT · Claude · Kimi · 豆包 · 元宝 …
模型层
GPT · Claude · Gemini · DeepSeek · GLM · Kimi · Qwen · 混元 · Seed
算力层
英伟达 GPU · 华为昇腾 · 芯片 · 电力 · 内存
算力层——训练和运行大模型需要海量计算。美国以英伟达 GPU 为主,中国在发展华为昇腾等自有芯片。这一层离老师最远,但它决定了模型的成本和“能不能自己部署”。
四层之间是“服务与被服务”的关系:上层的一切都建立在下层之上,但你在日常使用中只需要接触最上面一层。

1.2主要厂商:看懂“公司—模型—产品”的对应关系

不需要背排名,只需要看懂一个规律:每个公司都在做同一件事——把模型能力包装成不同形态的产品:日常助手、工作 Agent、编程 Agent。

公司特点模型日常助手工作 Agent编程 Agent
OpenAI综合最强GPT 5.6 系列(sol / terra / luna)ChatGPTChatGPT WorkCodex
Anthropic编程与审美最强Claude 5 系列(Mythos / Fable / Opus / Sonnet)ClaudeClaude WorkClaude Code
阿里巴巴走开源路线通义千问 Qwen 3.8模型与生态开源,被广泛集成
DeepSeek机制性价比DeepSeek-V4-Flash / V4-ProDeepSeekDeepSeek HarnessAPI 被各类工具接入
字节跳动重社交、影视Seed 系列(seed / seedance / seedream)豆包豆包工作TRAE
腾讯重生态(公众号、微信)混元 Hy4元宝WorkBuddyCodeBuddy
月之暗面国产顶级编程与审美Kimi K3KimiKimi WorkKimi Code
智谱 AI国产顶级编程与性价比GLM-5.3 / GLM-5.3-Flash(超便宜)ZCode
一句话记住
模型是“脑子”,助手是“聊天的人”,Agent 是“会动手干活的人”。同一家公司把同一个脑子装进不同的身体里,就有了助手、工作 Agent、编程 Agent 三种产品。

1.3模型:它为什么“什么都会”,又为什么会错

大模型读过海量文字、代码、图片,训练后形成了一套极其复杂的规律。使用时,它根据当前提供的信息, 不断预测什么样的输出最合适。注意:“预测下一个词”是原理解释,不等于“AI 只会胡乱接龙”—— 现代模型通过这种训练,真实获得了语言理解、知识调用、推理、编码和多模态能力。

输入(你的问题 + 材料)
模型根据训练获得的能力进行计算
生成输出

但请务必记住它的边界:AI 能力很强,却不能保证正确。它写代码很强,是因为有足够多的训练数据; 它语气很自信,也可能是在一本正经地补全一个错误答案。所以“检查 AI 的结果”不是可选项,是使用方式的一部分。

1.4Token:AI 的“字数单位”,也是计费单位

大模型以 Token(词元)为单位进行计算和收费。一个 Token 可以是一个字、一个词,甚至一个标点。在下面输入一句话,亲眼看看它会被怎样切分。

交互 · Token 切分演示
这是一个示意性的简化切分——真实分词器更复杂,但直觉是一样的:汉字大多一字一 Token,英文常按词或词片段切分,标点也占 Token。
为什么老师要懂 Token
因为 API 按 Token 计费、上下文窗口按 Token 限量。材料不是越多越好——重复、啰嗦的内容既花冤枉钱, 又会把重点淹没。把真正有关的材料组织清楚,比把整个硬盘塞给 AI 更有效。

1.5上下文:AI 这次工作,到底“知道”什么

这是全部 AI 使用中最重要的一个公式:

AI 本次工作的依据 = 模型本身已有的能力 + 这一次给它的上下文
很多时候不是 AI 不聪明,而是 AI 没有获得足够的上下文。

上下文包括:你这次的提示词、前面的聊天记录、上传的文件、项目文件夹里的资料、规则文件…… 本质上就是“把文字和图片发给 AI,AI 返回结果”。但上下文窗口是有限的——点击下面的按钮,把材料一件件塞进去,看看会发生什么:

交互 · 上下文窗口
窗口是空的 · 已用 0%上下文窗口上限
试着把所有材料都塞进去。你会发现:窗口装满后,最早放入的内容会被挤出去——这就是“聊着聊着 AI 忘了开头”的原因。所以规则文件要精简,材料要挑重点。

1.6API:像点餐一样,向另一个程序“下单”

API 是程序之间约定好的办事接口。它告诉调用方:可以请求什么服务、信息应该怎么填写,以及结果会怎样返回。AI 只是它的一种用途;查天气、查物流、调用地图,也可以用 API。

先用一个生活类比 · 餐厅点单

你去餐厅吃饭,不需要走进厨房操作锅灶。看菜单、按要求点单,厨房做好后把菜交给你。自己的程序调用别人的服务,也有类似的分工。

你的网站点餐的人

提出需求:
“请解释这道题。”

API点单窗口与规则

可点什么、怎样下单、
怎样取到结果。

模型服务负责制作的厨房

接收请求、进行计算,
把生成的答案送回。

这个类比解释的是分工与约定。API 本身不会思考,真正提供能力的是后面的程序或模型;请求也可能因信息不全、权限不足或服务故障而失败。

那调用 API,到底要准备什么?

以常见的大模型 API 为例:服务方提供接口文档、请求地址,以及开通调用权限的方式;你的网站后端按文档准备下面这些信息,再发出请求。

01请求地址
送到哪一家、哪一个窗口?

使用服务方提供的接口地址;不同地址可能负责对话、图片或其他能力。

02身份凭证
谁在调用,有没有权限?

常见方式是 API Key,像调用服务的通行证,也可能关联用量与费用。具体认证方式看文档。

03模型或能力
你点的是哪一道菜?

按接口要求选择模型或功能,例如用哪个对话模型回答问题。

04输入与材料
把这一次的需求说清楚。

例如学生的问题、相关题目、必要的背景。服务不会自动知道网页里所有的信息。

05回答要求与参数
有没有“少辣、不放香菜”这样的要求?

例如用什么语气、回答多长、返回文字还是结构化数据。这些设置是否必填、支持哪些选项,都以接口文档为准。

交互 · 看一次请求怎样送出与返回
你的网站后端 · 替网页发请求
这张“点单单”里带什么?
发往
服务方提供的模型接口地址
认证
后端附带 API Key 仅示意,不展示真实密钥
选择
已开通的对话模型
输入
“为什么域名能找到 IP 地址?”
要求
用学生听得懂的话,先给提示。
模型服务 · 接单并生成结果

接收请求 → 执行推理
返回答案或错误信息
点击按钮,观察一次请求的过程。
这里展示的是请求所需的信息,不是可直接运行的接口代码。不同服务的字段名和必填项可能不同;真实调用需按文档填写。这个演示在本页模拟,不会调用模型或产生费用。
密钥由后端保管
API Key 是调用服务的凭证。不要把它写进发给浏览器的网页代码,应由后端通过环境变量或密钥管理服务读取。 学生只在前端输入问题,由后端附带凭证去请求模型,再把结果送回前端。

1.7Agent:大脑 + 工具 + 调度器

模型是大脑,浏览器、PPT、Word 是工具,Agent 是调度器——它接到任务后自己拆解步骤、调用工具、逐步执行。可以把它理解为一个数字员工。点击“开始执行”,看一个 Agent 如何完成备课任务:

交互 · Agent 如何干活
任务:“帮我准备《信息系统》这节课的课件”
1. 规划用模型思考:要干什么、分几步
2. 调用工具:搜索打开浏览器查资料
3. 模型分析阅读资料,提炼要点
4. 调用工具:写文档生成课堂方案
5. 调用工具:做 PPT生成课件
6. 检查与交付汇总结果交给你
现在所有的 AI 产品,本质上就是拥有不同特点的 Agent:有的会干工作的活(Work),有的会写代码(Code)。产品之间的差距,不只是模型谁更聪明,还在于配了什么工具、Agent 会不会合理拆解任务。聪明的 Agent 知道先搜索再分析;笨的 Agent 搞一堆无效信息,再聪明的模型也做不出好东西。

1.8Skill:把一套熟练流程“打包”

想象你在备课:先让 AI 读课标和教案,再让它上网搜资料,然后做成 PPT,再发给你——这一串你要提好几次要求。 Skill 就是把这串流程打包。做完之后你说一句“帮我把以上过程打包成一个 skill”, 以后只需要说“帮我备课”,它就会自动执行整串操作。Skill 的本质,是一个大的提示词文件。

没有 SKILL —— 每次都要说一遍
  • “先读我文件夹里的课标…”
  • “再上网搜这节课的资料…”
  • “然后做成 PPT…”
  • “最后把文件发给我…”
有了 SKILL —— 一句话触发
“帮我备课,《信息系统》。”
  • 自动读课标与教案
  • 自动搜索资料
  • 自动生成 PPT
  • 自动交付文件

什么时候才值得做 Skill?当一个流程会反复发生、步骤相对稳定的时候。只做一次的事,不值得打包。 CyberScope 里就沉淀了 11 个这样的 skill:做课、磨课、审课、上架、发布复核、课堂应急……第五章你会看到它们是怎么长出来的。

1.9Markdown:AI 时代人与机器“共读的纸”

Markdown(.md)是一种介于 txt 和 Word 之间的格式:比 txt 多了层级信息,比 Word 少了格式负担。它是当下 AI 与人交互最快、最方便的格式。

TXT

纯文字,毫无章法。轻量,但 AI 看不出哪里是标题、哪里是重点。

Markdown

# 表示标题、- 表示列表。结构清楚、足够轻量,人和 AI 都能直接读写。推荐

Word

为“给人看”的精细排版而生,格式信息庞大复杂,AI 读起来又重又慢。适合最终交付,不适合工作过程。

所以你在本网站看到的所有 Prompt 模板、需求文档、规则文件、计划文档,全部是 Markdown。CyberScope 项目里就有 384 份 Markdown 文档——它是整个项目的“记忆载体”。

1.10AGENTS.md:写给 AI 的《教师工作手册》

在支持这一约定的 AI 编程工具中,AGENTS.md 用来保存项目的长期工作规则。以 Codex 为例,它会按目录层级读取适用的规则,让 AI 知道这个项目怎样开发、检查和交付。

AGENTS.md ≈ 学校的《教师工作手册》

“在这个项目里,你以后干活都要遵守什么。”
学校有总手册,信息化科有科的手册,组里有组的手册——一定要精简,不然上下文太多。

Prompt ≈ 今天教务处给你的具体任务

“这一次我要你干什么。”
临时的、一次性的要求放在 Prompt 里;长期的、反复遵守的规则才写进 AGENTS.md。

看文件夹 · 总手册放根目录,细则放对应子目录
作业管理平台/
  • AGENTS.md① 全项目
  • README.md项目说明
  • frontend/ 前端代码
    • AGENTS.md② 前端细则
    • index.html
    • styles.css
  • backend/ 后端代码
    • AGENTS.md③ 后端细则
    • main.py
① 根目录:全项目共用的约定

例如:这是作业管理平台;不随意删除已有功能;完成修改后说明改了什么、如何验证。

② frontend/:界面怎么做

例如:界面使用简体中文;按钮文字清楚;同时检查手机和机房电脑的显示效果。

③ backend/:服务怎么写

例如:检查输入是否合法;密钥从环境变量读取;修改提交接口后检查正常与错误输入。

改学生提交页面frontend/index.html

根目录的共用规则
frontend/ 的界面细则

改作业提交接口backend/main.py

根目录的共用规则
backend/ 的服务细则

子目录规则补充本目录及其下层文件的要求,不会因此约束旁边的另一个目录。有冲突时,在适用范围内采用更具体的目录规则;没有冲突的共用要求继续保留。上图为教学示例,不是必须照搬的项目结构。

实际使用时,可以问 AI:“请列出你已读取、适用于这次修改的规则文件。”Codex 启动时按项目根到当前工作目录的路径读取,从根目录启动不等于所有子目录规则都已自动加载。参见 OpenAI 官方说明

一份简版 AGENTS.md 示例(作业管理平台)
# 项目说明
这是一个面向中学信息技术课堂的作业管理平台。

# 用户
- 学生:查看和提交作业
- 教师:发布、查看和批改作业

# 技术栈
- 前端:React
- 后端:FastAPI
- 数据库:PostgreSQL

# 开发规则
- 不要随意增加新的依赖
- 不要未经确认修改数据库结构
- 不要删除已有功能
- 所有界面使用简体中文
- 优先保证机房电脑上的使用体验

# 修改代码后
1. 检查是否影响已有功能
2. 运行测试
3. 修复报错
4. 告诉我修改了哪些文件

对比感受一下规模:CyberScope 的 AGENTS.md 有 278 行,外加 6 份分区手册、47 份架构决策记录——但它是项目长到 25 万行之后才需要的规格。规则文件要和项目的规模相匹配,第一天就写几百行规则是浪费。

1.11四个一听就懂的小概念

终端

用代码操作电脑的方法。本质上,所有电脑操作都可以用终端命令实现:打开某个 App、运行某个指令……ChatGPT 就是通过终端来控制你的电脑的。

多模态

有的 AI 只能理解文字;有的能理解文字 + 图像 / 视频;有的还能生成图像和视频。能处理多种信息形式,就是多模态。

开源与闭源

大模型本质上也是一个应用程序。开源:可以把 DeepSeek 部署到任何地方,包括学校自己的服务器。闭源:不公开模型权重,只能在 OpenAI 公司的服务器里跑。

RAG

“先查资料再回答”:让 AI 先检索本地资料(比如学校的课件库),再基于查到的内容回答问题。能显著减少胡说八道。

1.12合起来:一个简单的 AI 系统长什么样

用一个“作业答疑网页”把概念串起来。学生输入问题后,前端、后端和模型分别做什么?

一个例子 · 学生问“域名为什么能找到 IP 地址?”
学生提出问题

选择“信息技术”,输入自己的疑问,点击提交。

↓ 使用网页
前端 · 让人输入,也让人看懂结果展示输入界面与回答

提供学科选项、问题输入框和提交按钮;把返回的提示排版显示出来。

界面好不好看、按钮好不好找、手机上能不能舒服地用,都在这里体现。
↓ 提交输入 ↑ 返回处理结果
后端 · 把收到的信息处理好检查输入,安排处理,再返回结果

先检查问题是否为空、用户是否有权限;再按业务规则计算或查询。需要 AI 时,整理问题与必要材料,调用模型。

本例:收到“信息技术 + 学生问题” → 补上回答要求 → 请求模型 → 整理结果返回前端。

后端按任务选择处理路径:普通计算可直接完成;需要生成提示时,再调用 AI。

路径一 · 普通任务
普通功能 · 按既定规则处理后端自己计算或查询

例如统计交了几份作业、计算平均分;需要保留记录时,再读写数据库。

路径二 · 需要 AI 的任务
AI 功能 · 由后端调用模型按 API 约定发送请求

附带输入、必要上下文与调用凭证,交给外部模型服务。

↓ 模型处理 ↑ 模型返回
大模型生成提示

“域名像通讯录里的名字,IP 地址像号码。你猜 DNS 在中间做了什么?”

学生最后看到答案,是怎么回来的?

模型生成结果 → 后端接收并整理 → 前端显示提示 → 学生继续思考。

前端负责呈现与交互,后端负责业务处理并返回结果,大模型承担其中需要 AI 的部分。这里调用外部模型的 API 放在后端,模型密钥由后端保管。
本章小结 · 一句话版本
算力养模型,模型装进产品,产品从各入口触达你;Agent = 大脑 + 工具 + 调度器;Skill = 打包好的流程; API = 程序之间约定好的办事接口;上下文决定 AI 这次知道什么;AGENTS.md 是写给 AI 的长期工作手册。
第二章 CHAPTER 02

软件的构造:
像认识一所学校一样认识一个网站

这一章回答两个问题:一个软件到底由什么组成?以及在让 AI 动手之前,你自己要先想清楚什么? 全程只用一个案例贯穿:一个信息技术课堂的“学生作业提交与统计平台”。

2.1产品经理入门:八个概念,一条链

做软件不是从“功能”开始的,而是从“人”开始的。八个概念串成一条思考链:

谁用
用户
什么时候用
使用场景
痛在哪里
痛点与需求
提供什么能力
功能
怎么一步步完成
用户流程
第一版先做什么
MVP
做什么不做什么
范围
怎样算完成
验收标准

其中最关键的是 MVP(最小可用版本):它不是“做得很差的完整系统”,而是只保留最小的完整价值闭环。 老师抱怨“收作业很乱”,真正的问题可能只是:文件散落在微信、QQ、U 盘多个渠道;无法快速知道谁没交。 所以第一版只需要一个闭环——老师创建作业 → 学生提交 → 老师看到已交/未交名单。 注册系统、家长端、AI 批改、积分排行榜,全部不做。

2.2同一个平台,两种 Prompt 的天壤之别

左右对比:左侧是完全不懂产品概念时的说法,右侧是补全八个概念之后的说法。

✕ 模糊的 Prompt —— AI 只能靠猜
“帮我做一个学生作业管理平台,要好看一点,学生可以交作业,老师可以批改,最好功能丰富一点,用起来方便。”
  • 谁登录?学生和老师是不是两种账号?
  • 作业是上传文件还是在线填写?能补交吗?
  • 老师怎么批改?学生能看到别人作业吗?
  • 数据存哪里?机房电脑能访问吗?

于是 Vibe Coding 最常见的现象出现了:
“AI 确实做出来了,但不是我想要的。”

✓ 想清楚之后 —— AI 可以直接开工
“我要开发一个用于信息技术课堂的学生作业提交平台。用户是学生和任课老师;场景是学校机房,课堂最后 5–10 分钟提交编程作品;痛点是作业散落在微信、QQ,老师要人工统计未交名单。第一版只解决‘收作业’:老师创建作业 → 学生选班级姓名 → 上传文件 → 老师查看已交/未交。不做注册、家长端、AI 批改、排行榜。验收标准:50 人班级能正常提交;刷新后数据不丢;学生互相看不到对方文件……先不要写代码,先帮我检查需求遗漏。”
  • 用户、场景、痛点、需求全部说清
  • MVP 只有一个闭环,明确不做什么
  • 验收标准可以被客观检查
  • 先让 AI 复述和查漏,再让它动手
一句话总结
Vibe Coding 最核心的能力,已经从“写代码”变成了 定义问题 + 描述需求 + 判断结果。 Prompt 写作的完整方法,我们会在第三章展开。

2.3前端、后端、数据库:一次提交作业的完整旅程

网站 = 前端 + 后端 + 数据库。前端是界面(好不好看、顺不顺手);后端是干活的部分(整理数据、调用批改、写入存储);数据库负责存数据(增删改查)。 点击按钮,看一个学生提交作业时发生了什么:

交互 · 数据流演示
前端学生点击“提交作业”
后端接收文件、整理、打分
数据库写入:谁、几点、交了什么
之后老师查看名单时,旅程反过来走一遍:前端搜索 → 后端去数据库找 → 处理 → 前端美美地展示。如果用的人多了,还要加入用户认证:每人有账号,每个账号有不同权限。

设计任何一个系统,只需先回答四个问题

1 数据输入

这个系统的输入是什么?文字、图片、视频?怎么上传?—— 主要是前端的事

2 传输与存储

数据存在本地还是云端?数据库怎么设计?—— 存储设计

3 数据处理

用什么算法和技术架构?要调用 AI 处理吗?—— 主要是后端的事

4 结果输出

处理完怎么展示?显示什么内容?—— 又回到前端

2.4四个工程名词:源码、目录、依赖、环境变量

源码

组成软件的所有代码文件。

项目目录

所有内容组成的文件夹体系——代码、文档、素材各就各位。

依赖

复杂功能不必自己重写:别人写好的软件包下载进项目目录就能调用。大型系统会有成百上千个依赖。

环境变量

API Key、密码等重要内容不写进代码,保存在本地 .env 文件里,不上传。谁下载代码都要自己再配一份。

2.5Git:为什么 AI 写得越快,越需要版本控制

Git 是版本控制系统:记录文件随时间的变化,随时可以回退。它对 Vibe Coding 尤其重要—— 因为 AI 写代码速度越快,把东西改崩的速度也越快。点击按钮,体验一次“改崩 → 回退”:

交互 · 版本回退演示
版本 1能登录
版本 2加入作业功能
版本 3加入 AI 评分
版本 4AI 把系统改崩了
HEAD →
Commit(提交)= 存一个版本快照;Branch(分支)= 从某个版本拉一条岔路做修改,没问题再合并回来。 GitHub 则把整个项目放到云端做版本控制:在任何设备上都能拉回来。CyberScope 就是这样工作的—— 作者在电脑上完成新功能开发就上传到 GitHub,再到教室的教师机上拉取。

2.6测试意识:像教务处检查工作一样检查软件

不需要会写测试代码,但需要会问这些问题——它们中的任何一个,都可能在第一节课就变成真事故:

正常情况

用户名密码正确,能不能登录?

异常情况

密码错误怎么办?提示什么?

边界情况

名单为空怎么办?1000 个学生怎么办?名字有 20 个字怎么办?

权限

学生能不能看到别人的成绩?

刷新

刷新页面,数据还在吗?

跨设备

手机能用吗?机房的老电脑能用吗?

失败恢复

网络断了怎么办?API 挂了怎么办?

Bug 与 Debug

实际结果与预期不一致 = Bug;找到为什么不一致 = Debug。

第五章你会看到,这些问题不是假设:CyberScope 的“半开 TCP 卡死全班群控”“演示班一夜烧光 AI 余额”都是真实发生、然后被固化成规则的事故。

2.7部署:一个项目的三种“公开程度”

本地运行(带后端)

只有自己电脑上能运行。适合开发调试、“自己先用起来”。

Netlify 托管(仅前端)

所有人都能打开,但没有后端和数据库。适合展示静态页面和原型。

云服务器(前后端)

租服务器 + 租域名 + 备案,前后端全部上线,所有人都能真正使用。

作者的域名是 ericlab.cn,所有项目都挂在它的子域名下——CyberScope 的公开演示站就是 cyberscope.ericlab.cn。但它的主战场其实不在公网:它是跑在机房局域网里的,这一点第四章细讲。

本章小结 · 一句话版本
先想清楚“谁用、痛在哪、第一版做什么”,再谈功能;网站 = 前端 + 后端 + 数据库; 密钥放环境变量;用 Git 给每次改动留后悔药;上线前用七种问题检查一遍。
第三章 CHAPTER 03

Vibe Coding 工作流:
从想法到部署,一步都不能跳

Vibe Coding 不是“随口说个想法,AI 一次生成完整软件”,而是用自然语言管理一个软件项目。 这一章是可带走的操作手册:六个阶段,每个阶段都有可直接复制使用的 Prompt 模板。

全景 · 六个阶段(点击任一阶段展开详情与 Prompt)
口诀:想清楚 → 设计清楚 → 规划清楚 → 开发落地 → 测试验收 → 部署上线。前三个阶段一个字代码都不写——这正是新手最容易跳过的部分。

3.1先学通用功:一条好 Prompt 的四个成分

目标 Goal

最终要得到什么。

背景 Context

对象、材料、现状和原因。

产出 Output

格式、长度、受众和质量标准。

边界 Boundaries

不能做什么、必须核什么、何时问你。

目标告诉 AI 去哪里,边界告诉 AI 不要去哪里,验收标准告诉 AI 什么时候停。另外记住最重要的一条工作习惯:复杂任务不要让 AI 一上来就干——先让它复述理解、指出缺失信息、提出方案,你确认范围之后再执行。

3.2阶段一 · 想清楚:四个 Prompt,从模糊想法到正式需求文档

先定义问题、明确需求,而不是直接设计功能——你以为需要的功能不一定需要。以解决需求为目标,而不是以做出功能为目标。

Prompt 1 · 问题澄清
我有一个产品想法:

[写你的想法]

先不要设计页面,也不要写代码。

请作为资深产品顾问,使用“grill-me”这个 skill 向我发起多轮提问,
帮助我把这个想法想清楚。重点分析:

1. 谁可能会使用它;
2. 用户现在是怎么完成这件事情的;
3. 当前过程中最麻烦的地方是什么;
4. 这个产品真正应该解决的核心问题是什么;
5. 哪些可能只是我想象中的需求,而不是真实需求;
6. 这个想法是否真的值得做成软件;
7. 如果不开发软件,有没有更简单的解决方法。

最后用一句话定义:
“我们要为【什么用户】,解决【什么问题】。”

grill-me 是最重要的一个 skill:它让 AI 反过来“拷问”你,直到想法经得起推敲。

Prompt 2 · 需求访谈
我准备开发:

[产品]

目前我的想法还不成熟。暂时不要写代码。

你现在作为产品经理采访我。请通过连续提问帮助我把需求想清楚。

重点追问:谁使用;什么场景使用;用户现在怎么做;最大痛点;
核心流程;必须功能;可选功能;数据;权限;异常情况;UI;
使用设备;使用规模;隐私;部署方式;未来可能扩展的方向。

根据我的回答继续追问。如果发现我前后需求矛盾,也要指出来。

直到你认为需求已经足够清楚,再整理成完整需求说明。
在我确认之前不要开始开发。
Prompt 3 · 砍需求定 MVP
下面是我目前想到的全部功能:

[功能]

请不要继续增加功能。现在帮我尽可能“砍需求”。
目标是做一个真正能够被用户使用的最小可行版本 MVP。

请把功能分成:
A. MVP 必须有 —— 没有它核心流程无法完成
B. 第二阶段 —— 有明显价值,但第一版可以没有
C. 锦上添花 —— 暂时不要做
D. 建议删除 —— 复杂度明显高于价值

判断时优先考虑:1. 是否解决核心问题;2. 用户是否真的会使用;
3. 开发复杂度;4. 数据和安全风险;5. 是否可以以后增加。

最终给出第一版 MVP 的明确边界,做成一份 md 文档保存到文件夹。
Prompt 4 · 生成 PRD
根据我们已经确认的内容,生成一份适合小型 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 都知道你的详细需求——它就是项目最重要的上下文之一。

3.3阶段二 · 设计清楚:流程、页面、UI、技术、架构

需求确定后,先设计再开发:用户怎么操作?有哪些页面?什么风格?用什么技术?系统怎么组装?

设计 Prompt 1 · 用户流程
产品:[产品]
用户:[用户]
核心任务:[任务]

请设计用户从进入系统到完成任务的完整 User Flow。

每一步说明:
用户看到什么 → 用户做什么 → 系统发生什么 → 系统反馈什么 → 下一步是什么

同时考虑:第一次使用;正常使用;操作失败;用户取消;返回;权限不足;数据为空。

优先减少步骤和用户思考成本。
不要为了“功能丰富”增加不必要页面。
设计 Prompt 2 · 信息架构
基于需求文档,请根据用户任务设计 Information Architecture。

告诉我:
1. 系统需要哪些页面;
2. 页面之间是什么关系;
3. 主导航应该有哪些入口;
4. 哪些页面应该合并;
5. 哪些功能不值得单独做一个页面;
6. 每个页面最核心的任务是什么。

请输出:页面 → 页面目的 → 核心用户 → 主要操作 → 前往哪里

要求:一页尽量服务一个明确任务。做成一份 md 文档保存到文件夹。
设计 Prompt 3 · UI 与设计系统
为以下产品设计界面及美学风格:

产品:[产品]
主要用户:[用户]
核心任务:[任务]
设备:[电脑 / 手机 / 平板]

请先分析用户使用场景,然后设计页面。

要求:
1. 页面视觉层级清楚;
2. 用户进入页面 3 秒内知道要做什么;
3. 核心操作突出;
4. 次要功能降低视觉权重;
5. 不堆砌卡片;
6. 不为了“高级感”过度增加装饰;
7. 落一份详细好看的设计系统;
8. 制作一个原型页面展现你的设计。

(可以加你喜欢的风格,比如“高级、精致、有科技感的色彩搭配”;
 对审美有要求时,也可以去搜集不同风格的提示词,或让 AI 复刻某个你欣赏的网站)
设计 Prompt 4 · 技术选型
我要开发:[项目]
用户规模大约:[规模]
团队情况:我主要通过 AI Coding Agent 开发,本人技术经验有限。
核心需求:[需求]

请帮我选择尽可能简单、成熟、有良好文档和 AI 支持的技术方案。
分别考虑:前端;后端;数据库;用户认证;文件存储;部署;域名;日志;备份。

原则:
1. 优先减少技术栈数量;
2. 不为未来不存在的问题过度设计;
3. MVP 优先使用托管服务;
4. 明确免费方案的限制;
5. 告诉我什么时候才需要升级技术架构。

请比较 2~3 套方案,最后明确推荐一套。
设计 Prompt 5 · 系统架构
根据这个项目:[需求文档 + 技术栈]

请用适合非专业开发者理解的方式,解释整个系统架构。
说明:用户 → 前端 → API / 后端 → 数据库 → Storage → Auth → 第三方 API
分别负责什么。

同时说明:
1. 数据从哪里产生;2. 经过哪里;3. 存在哪里;
4. 谁可以访问;5. 哪些操作发生在浏览器;6. 哪些必须发生在服务器端。

最后在项目文件夹落一份 Mermaid 架构图。

3.4阶段三 · 规划清楚:从空目录到上线的路线图

不要想到哪写到哪。让 AI 作为技术负责人,把项目拆成阶段,明确每个阶段做什么、交付什么、如何验收——以及每个阶段的 Prompt

规划 Prompt · 项目开发计划(Roadmap)
我们已经完成这个项目的需求分析和初步技术设计。
去文件夹中寻找:【PRD】【MVP 范围】【主要页面 / 用户流程】【技术栈】【系统架构】

现在不要开始写业务代码。
请你作为这个项目的技术负责人,为整个项目制定一份项目开发计划。

目标不是规划某一个功能,而是回答:
“这个项目从空目录到正式上线,应该按照什么顺序完成?”

请完成以下工作:
1. 把整个项目拆分成若干阶段;2. 明确每个阶段的核心目标;
3. 说明每个阶段具体需要完成哪些事情;4. 说明这一阶段的主要交付物;
5. 指出阶段之间的依赖关系;6. 哪些基础设施必须先完成;
7. 哪些功能可以并行开发;8. 哪些功能必须后做;
9. 每个阶段如何验收;10. 每个阶段结束时项目应该处于什么状态;
11. 给出每个阶段的 prompt。

规划时遵循:
- 优先完成基础能力;优先跑通核心用户流程;
- 每个阶段完成后系统都应尽可能处于可运行状态;
- 避免同时开发过多相互依赖的功能;
- 不要为了未来可能存在的需求过度设计;
- 不增加需求文档中没有确认的新功能。

输出最终的 Project Roadmap.md 文件。
最后告诉我:如果今天正式开始开发,第一阶段应该做什么。

3.5阶段四五六 · 开发、测试、部署:管理 AI,而不是催 AI

Ⅳ 开发落地

先搭框架 → 再实现基本功能 → 设计好数据库 → 调用合适的 API → 调试。按 Roadmap 的阶段顺序来,一次只做一件事。

Ⅴ 测试验收

测试每一个功能能不能用;思考数据安全防范与权限设计;对照验收标准逐项打勾。

Ⅵ 部署上线

自己用 → 本地部署;前端展示 → Netlify;上线公开 → GitHub + 云服务器。

开发阶段的本质,是下面这个循环——你不是在“问”AI,你是在“管理”AI

核心循环 · 每个 Task 都走一遍
需求
让 AI 复述理解
AI 提方案
确认范围
拆 Task
实现一个 Task
运行
测试
Commit
下一个 Task
注意 Commit 的位置:每个 Task 验证通过就存一次快照。这样 AI 下一步把东西改崩时,你永远有一个完好的版本可以回退。

3.6从小白到掌控大系统:四个成长阶段

没有人能一步跳到“掌控大系统”,但每一步都有明确的标志。对照这张表,你可以知道自己在哪里、下一步是什么。

阶段你学会了什么标志CyberScope 的对应时期
阶段一 · 会把任务说清楚单次对话就能拿到可用结果:给目标、给材料、给验收一份能直接用的课堂方案2026 年 4 月初:还只是和 AI 对话
阶段二 · 会组织工作区项目文件夹 + 任务文件 + 简版规则,AI 跨对话不丢上下文新开一个对话,AI 仍能接着干4 月 5 日:建立项目文件夹,第一次提交
阶段三 · 会管理开发循环需求文档、拆 Task、跑测试、Commit,出问题能回退平台改崩了,三分钟退回完好版本5 月起:AGENTS.md、验证脚本、spec 四件套
阶段四 · 会运营一个系统安全网、成本护栏、发布流程,事故复盘变成规则真实课堂 50 人稳定使用7–9 月:压测、护栏、演示站、开学实战

关键心法:不是“学完所有知识再开始”,而是每长到一个阶段,就把那个阶段的规范补上。CyberScope 的规范没有一条是提前写好的,全是规模到位后长出来的。

本章小结 · 一句话版本
前三个阶段不写代码:想清楚(4 个 Prompt)→ 设计清楚(5 个 Prompt)→ 规划清楚(Roadmap); 后三个阶段按“复述 → 方案 → 确认 → 拆 Task → 实现 → 测试 → Commit”的循环推进。 下一章你会看到:CyberScope 就是把这套流程跑了一百多遍之后的样子。
第四章 · 平台说明书 CHAPTER 04

解剖 CyberScope:
一个真实平台由哪些部分组成

CyberScope(智瞰)是一个高中机房里的课堂操作系统:教师机跑后端,约 50 台学生机用浏览器访问—— 它是本地局域网课堂平台,不是 SaaS。作者是一位工程师转岗的信息技术教师, 全平台由他一人借助 AI 编程开发。这一章回答三件事:它由什么组成、每个部分干什么、为什么这么设计。

4.1设计的原点:一张明确的取舍排序

平台的 AGENTS.md 开篇就写死了优先级——所有设计决策都可以从这张排序里推导出来:

课堂稳定性
教师控制权
学生数据安全
课程作者一致性
单人维护可读性

课堂 45 分钟不能出事故,所以稳定性压过一切;老师要能控住全场;学生是未成年人,数据安全是红线;而全平台只有一个人维护,所以“看得懂、改得动”本身就是架构目标

4.2全局架构:一节课如何在系统里流动 必看图表 ①

先看课堂运行,再看内容和开发流程。教师端与学生端在浏览器中打开,共同连接教师机上的后端。

CYBERSCOPE / SYSTEM MAP

浏览器连接课堂,
教师机保存现场。

一次开课、一份作品、一个 AI 问题,都沿着这张图找到去处。

课堂请求与数据往返按需调用外部模型
读图顺序

先看教师端和学生端,再看教师机里的后端与数据;只有需要 AI 时,后端才调用外部模型。

01
前端

教师与学生使用的网页

组织与掌控课堂
教师端

选课开课、控制课堂
查看学情、评价作品与回看

课堂展示与观摩按权限开放;作品投屏不带私密评价。
学习与实践
学生端

进入课程、完成活动与训练
向小信提问、提交作品

查看提交回执、评价反馈与个人学习记录。
HTTP实时通知
WS
02
教师机上的共同服务

局域网课堂的中心

后端服务
FastAPI

身份、班级、课次与权限
课堂控制、提交与评价、AI 请求

同时托管前端页面;实时通知配合心跳补偿,让各端获取当前状态。
课堂数据库
SQLite

学生、班级、课次、任务与控制
作品正文、版本、提交回执与评价
训练记录与课堂数据

课程与资源文件
内容从这里加载

课程 JSON、HTML、JS、媒体
题库与作品任务定义

学生端加载课程内容;后端读取题库与任务定义。
按需API
03
外部模型服务

按需连接公网

AI 能力
大模型 API

为小信问答、课件 AI 和评价提供模型推理。

API Key 由服务端保管;浏览器不直接持有密钥。
哪些内容会出网?

后端按功能组织、处理上下文,再发给模型。数据库保存在教师机;调用 AI 时,问题或评价所需的课堂内容仍可能出网。

课堂与演示分开

这里画的是局域网课堂。公网演示站使用独立环境。

内容如何进入课堂
课程内容设计
课题 · 材料 · 题目 · 活动顺序

教师把教学意图组织成课程。

课程配置与资源文件

学生端呈现课程内容;后端读取任务定义。

让它持续建造,也能稳定上课
开发与运行的支撑
  1. 01
    需求与范围

    问题 / MVP / PRD

  2. 02
    项目规则

    README / AGENTS.md

  3. 03
    可复用流程

    Skills / 脚本

  4. 04
    检查与版本

    测试 / Git / 同一 SHA

  5. 05
    运行边界

    代码与课堂数据分开

这些约定支撑系统的维护与发布,不是课堂请求要经过的五台服务器。

作品能力贯穿整个平台。学生提交、教师评价、数据库保存版本、教师按权限展示作品,因此不再单列“统一作品库”。

按 2026 年 9 月 4 日的本地开发版校准。作品相关功能已完成本机验证,真实模型容量与 Windows / Edge 机房验收仍待完成;本图不代表公网演示站已同步这些更新。

为什么这样设计
机房网络未必通公网、学生机无管理员权限、课堂不能被外部服务波动影响——所以服务器就是教师机本身。 同时这也是最便宜、最快恢复的方案:整台“云”就是一台 Windows 电脑 + 一组一键脚本(开始上课.cmd / 备份数据库.cmd)。

4.3功能模块地图:每个部分是干什么的 必看图表 ②

学生端

课程大厅(初/高中分厅)、canvas 互动课件、全屏展台纪律、成长档案(跟自己比,不排名)。

Frontend/app/
教师控制台

“一屏不滚动”的课堂指挥面板:选班开课、锁屏/倒计时锁、聚焦到某节某屏、2×2 学情仪表盘、谁需要我、课后复盘、花名册。

Frontend/teacher/
AI 学伴“小信”

学生问答只引导不给答案;连错自动救援;教师可“派小信”给卡住的学生。走 DeepSeek API,带内容守门与出网脱敏。

Backend/routes/chat.py
课程引擎 + 67 门课

必修一 28 门、必修二 18 门、会考复习 3 门、拓展 2 门、校本《生成式 AI》16 门。canvas 是唯一课型;学生只看到“显式上架”的课。

Frontend/courses/
课件可编程 LLM

课件里一行代码就能调 AI;开放题由服务端按量规权威判分——AI 评分不发生在学生浏览器里,防止被改。

Backend/routes/course_llm.py
Python 训练馆

学生在浏览器里运行真正的 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.py
展示端 / 观摩端

display.html 投黑板:课件画布 + 匿名学情墙 + 学生作品;observe.html 让听课老师只读走课、上帝视角看全班。

Frontend/display.html

4.4一节课的 45 分钟:平台在真实课堂里怎么转

架构图是静态的,课堂是活的。跟着一节课走一遍,你就理解每个模块什么时候上场。

课前 5 分钟

一键开机,学生进场

教师机双击「开始上课.cmd」,后端启动;学生机浏览器打开教师机 IP,进入课程大厅——只能看到已上架的课。

开课

全班锁定到第一屏

教师端选班级、选课程,点“开课”;全班锁屏并聚焦到第一屏,大屏同步投出课件。

课中 30 分钟

学生在课件里边看边做,教师在仪表盘上巡堂

学生在 canvas 课件里边看边操作;卡住可以问 AI 学伴“小信”,它只引导不给答案;教师的控制台是一块“一屏不滚动”的仪表盘:本小节学习情况、AI 助教建议、谁需要我、各节掌握度,四格实时更新;发现谁卡住,一键“派小信”过去;Python 课则进入训练馆——学生在自己浏览器里运行真正的 Python,教师实时看到每个人的代码。

课后

一键下课,数据留下

一键下课,全班解锁;复盘页看全班数据;所有交互埋点可匿名导出,直接支撑教研论文;如果课堂上有机器出过故障,“黑匣子”已经自动记下现场,课后一条命令导出定位。

4.5深入三个模块:设计背后的“教学理由”

课堂上老师的注意力在学生身上,只能分给屏幕“余光”。所有关键信息必须一屏装下、不能滚动——这是 4.1 里“课堂稳定性 > 一切”那条优先级在界面上的直接体现。

它是学伴,不是答题机。它的角色设定里写死了苏格拉底式引导规则——先反问、再给提示、绝不直接给答案;而且开放题评分在服务端按量规完成,学生就算会改浏览器也改不了分数。AI 能做什么、不能做什么,由后端规则决定,不靠模型自觉。

50 个学生的代码如果在教师机上执行,一个死循环就能让全班瘫痪。Pyodide 让 Python 跑在学生自己浏览器的沙箱里——教师机零风险,学生拿到的却是真正的 Python 环境。这是“用架构消灭一整类事故”的典型例子。

4.6必须知道的七个设计决策,以及“为什么” 讲解重点

如果时间只够讲一部分,就讲这一节。每个决策背后都是一条可以迁移到任何项目的经验。

课堂 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)。

4.7数据存在哪:一张文件级的“课程成绩单”

数据库只有一个文件(lab_data.db),但里面的表各司其职——看表名就能猜出平台在关心什么:

身份与课堂

users 学生档案 · active_sessions 在线心跳 · class_period 第几节课 · class_controls 锁屏/聚焦状态(带版本号防倒退)

学与评

action_logs 全交互埋点(研究地基)· student_course_scores 形成性评分唯一真相 · gym_attempts 训练馆记录

AI 与合规

chat_logs AI 对话留档 · ai_config 教师可配的模型与密钥(掩码存储)· crisis_alerts 危机预警(物理隔离)

运维

client_faults 课堂黑匣子 · app_settings 全局开关 · 版本化迁移表——数据库结构的每次变更都有记录

AI 调用全部走 OpenAI 兼容协议,集中在后端四个位置:学生问答(chat.py)、课件评分(course_llm.py)、学情分析(teacher_analytics.py)、训练馆诊断(gym/)。前端从不直接碰 API Key。

4.8部署:两种形态,各就各位

机房形态(日常教学)

教师机运行后端,学生访问 http://教师机IP:8000。Windows 教师机用双目录制:CyberScope-dev 验证候选版本、CyberScope-live 跑稳定版本;数据库放在仓库之外;更新前先在线备份。配套一组一键 .cmd 脚本:开始上课 / 首次安装 / 更新稳定版 / 验证候选版 / 备份数据库。

公网形态(对外演示)

cyberscope.ericlab.cn:阿里云服务器 + Nginx 反代 + HTTPS 证书,按时间戳目录切换发布。2026 年 7 月 6 日首次上线,迄今发布 5 次。服务常驻内存约 64 MB——一个完整教学平台可以这么轻。

4.9它现在有多大

67
课程在库(5 门已上架)
25 万行
框架 3.4 万 + 课程 21.6 万(另有文档 3.6 万)
47
架构决策记录 ADR
49
spec 四件套工作目录
11
沉淀的开发 Skill
64 MB
线上服务常驻内存

按传统开发方式估算,这大致相当于一个 3–4 人小团队半年到一年的产出——而它出自一位教师 + AI 之手,用时五个月。

本章必看清单(发给对方时请他们优先看)
⓪ 4.4 一节课的 45 分钟(最快的整体感) ① 4.2 全局架构图(一台教师机 = 一所学校的云)② 4.3 模块地图(12 个模块各自干什么) ③ 4.6 的七个设计决策(尤其是“为什么删掉备课端”和“AI 三道闸”)④ 4.9 规模数字。 看完这五块,就理解了 CyberScope 的骨架与灵魂。
第五章 · 成长史 CHAPTER 05

从零到一:
756 次提交,五个月,一个人的平台

这一章是完整的 Git 提交史复盘。讲它不是为了展示成果,而是为了证明两件事: 平台可以从小到大——先有最小可用版本,再一步步长大; 发展必须有章法——平台越大,越不能想到什么做什么,规范要跟上规模。

756
次 Git 提交
5 个月
2026-04-05 → 09-03
52
起点:后端代码只有这么多
1
全部提交来自同一位作者 + AI

5.1五个月的节奏:不是匀速,而是有主题的爆发

16
4 月
87
5 月
284
6 月
181
7 月
61
8 月
128
9 月*

* 9 月数据仅为前 3 天。4 月起步,5 月立规矩,6 月体系化爆发,7 月铺满内容并上线,8 月被真实世界倒逼修正,9 月开学实战。

5.2最关键的一条线:规范是长出来的,不是天生的 必看图表 ③

很多人以为规范是项目第一天就设计好的。CyberScope 的真实顺序恰恰相反——每一步都是被上一步的混乱逼出来的:

起点 · 4 月初
只是对话跟 AI 对话、对话、再对话。代码散落在聊天记录里,没有项目概念。
4 月 5 日
有了项目文件夹第一次提交:52 行后端 + 3 个前端文件。还很野生——误传了整个 Python 环境(2310 个文件),API 密钥写死在代码里,当天赶紧修正。
5 月 4 日
有了 AGENTS.md“工程化接管”:AI 进项目先读工作手册,从此不是随手写,而是按规矩写。这是从“随手写”到“立规矩”的分水岭。
5 月 13 日 → 5 月 31 日
有了验证脚本和 ADR/spec 工作法改完必须跑检查脚本;每个决策写架构决策记录;每个功能按“规格 → 计划 → 任务 → 验证”四件套推进。
6 月 → 7 月
有了安全网与护栏50 人压测、golden 行为快照(重构前先锁死行为)、机器护栏拦截危险操作、11 个开发 skill、失败案例库——把每次事故变成规则。
9 月 2 日
有了双平台 CImacOS 和 Windows 自动验证门。至此,验收流程完全成型——注意:这是项目第 5 个月才补上的。
为什么这个顺序重要
它说明规范不是负担,是解药——感觉到痛,才长出一层规范。第一天的小项目不需要 CI; 但当平台大到“掺和的事越来越多”,没有章法就无法再随意操作。这也是第二章 AGENTS.md 与第三章工作流之所以存在的真实原因。

5.3完整时间线:六个月度阶段,每一步都有据可查 必看图表 ④

阶段 0 · 2026 年 4 月(16 commits)· 从零起步

一个周末长出来的原型

4 月 5 日 first commit:52 行后端,一个接口直调 DeepSeek。两天后第一次大跳跃:完整后端骨架 + 教师控制台 + 第一门课《域名与 DNS》(+6201 行)。4 月 9 日做了可视化备课端(后来在 6 月被自己删掉);4 月 20 日写下第一份产品需求文档。

43ad961 first commit75b36ea 平台骨架b12f2cf 首份 PRD
阶段 1 · 2026 年 5 月(87 commits)· 工程化接管

“有章法”的起点

5 月 4 日引入 AGENTS.md,确立工程纪律;5 月 13 日引入最小验证脚本和真相文档;中旬完成安全加固(教师/学生鉴权);月底做了一次逐链路大审计,产出 54 条 bug 清单,并确立 ADR + spec 四件套工作法。

47dfaec 引入 AGENTS.md875e716 验证脚本fccbc68 ADR 体系确立
阶段 2 · 2026 年 6 月(284 commits)· 体系化爆发

最猛烈的一个月:转向、重构、铺开能力

AI 通用化 + 未成年人合规上线;首次 50 人课堂压测 17/17 通过;删掉 4 月做的备课端,确立 canvas 唯一课型;P1–P10 成熟化连环落地(真 Python 进浏览器、学情看板、诊断式小信、展示端/观摩端);在 golden 安全网保护下把 3174 行的“上帝文件”拆成 8 个模块。

978ce4f 50 人压测7059363 删备课端c7616e2 golden 安全网
阶段 3 · 2026 年 7 月(181 commits)· 铺满内容并上线

64 门课入库,公网演示站开张

批量做课:必修一、必修二、会考复习、校本 AI 课共 64 门入库。7 月 6 日演示站首次上线 ericlab.cn;7 月 10 日用 60 个 AI 审查员做五维审计,当天 70+ 次提交清缴技术债,平台功能封版;7 月 18 日第一次正式发布到 main 分支;下旬把三项默认值改到安全一侧。

b4277f7 演示站上线468b766 功能封版71bf650 首次正式发布
阶段 4 · 2026 年 8 月(61 commits)· 真实世界倒逼

一次事故值多少钱?一晚烧光 AI 余额

8 月 3 日,线上演示班忘下课连跑约 15 小时,30 个模拟学生打了 44,044 次真实 AI 调用,耗尽 DeepSeek 余额。止血方案当天上线:每次演示最多 12 次真实 AI 采样 + 最长 1 小时 + 超限额明确报错。月底:8 个真实班级、247 份学生档案导入,准备开学。

5cb5f96 AI 成本护栏开学准备 · 真实花名册
阶段 5 · 2026 年 9 月前 3 天(128 commits)· 开学实战

第一次面对 50 个真实学生

9 月 1 日《开学第一课·看懂数字系统》真实开课,当天出了事故(学生无法单人退出),次日收编修复并上线;两天内做出 Python 训练馆(50 题题库、浏览器内真 Python);补上双平台 CI;课堂 AI 并发提升到 60 路。平台进入“边上课边进化”的阶段。

20260901 开学第一课发布bab4031 双平台 CI

5.4踩坑实录:八个真实的坑,以及每个坑留下的规则

这是这份说明书里最值钱的部分。每个坑都按“案发 → 根因 → 规则”讲——规则不是想出来的,是赔出来的。

案发:第一次提交就推上去 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)。“敢删”比“敢加”更难,也更重要。

八条规则没有一条来自教科书,全部来自真实课堂和真实事故。这就是“发展必须有章法”的另一面:章法不是用来约束你的,是用来让你敢继续往前走的。

5.5收尾:这段历史想让大家带走的两个信念

信念一 · 平台可以从小到大

CyberScope 的起点是 52 行代码和一个写死在代码里的密钥。它不是因为一开始就设计完美才长大,而是先把最小闭环跑通,再让规模拉着规范一层层长出来。你想做的那个“作业平台”“报修平台”,也可以这样开始。

信念二 · 发展必须有章法

平台越大,掺和的事情越多,越难随意操作:需求要文档化、决策要留 ADR、改动要走 spec、收尾要跑验证、密钥绝不入库。章法不是官僚,是让 AI 能持续帮你干活的唯一方式。

附录 APPENDIX

概念速查表

讲完之后的“防遗忘卡片”。每个概念一句话。

模型Model
提供理解、生成、推理能力的“大脑”。GPT、Claude、DeepSeek、Kimi 都是模型。
产品Product
模型 + 界面 + 工具 + 工作流的完整应用。同一模型可以装进不同产品。
Agent
会自己拆解任务、调用工具、逐步执行的“数字员工” = 大脑 + 工具 + 调度器。
Skill
把一套反复使用的流程打包成的提示词文件,一句话触发整串操作。
API
程序之间约定好的办事接口:怎样发送请求、需要什么信息、怎样返回结果。调用模型是其中一种用途。
Token词元
AI 计算与计费的基本单位,可以是一个字、一个词或一个标点。
上下文Context
AI 本次工作能看到的一切:提示词、聊天记录、文件、规则。窗口有限。
Markdown
介于 txt 和 Word 之间的轻量格式,人与 AI 共读的最佳载体。
AGENTS.md
写给 AI 的项目工作手册,放长期规则;Prompt 是“这一次的具体任务”。
RAG
让 AI 先查本地资料再回答,减少胡说八道。
前端 / 后端 / 数据库
界面 / 干活 / 存数据。一次点击的旅程:前端 → 后端 → 数据库 → 返回 → 展示。
环境变量.env
存放 API Key、密码的本地隐私文件,绝不写进代码、绝不上传。
MVP
最小可行版本:不是做差的完整系统,而是最小的完整价值闭环。
PRD
需求文档:让任何没参与讨论的 AI 只读它就能理解项目。
Git / Commit / Branch
版本控制:快照、回退、分支。AI 写得越快,越需要后悔药。
ADR
架构决策记录:把“为什么这么设计”写下来,防止后来的人(和 AI)重蹈覆辙。
Vibe Coding
用自然语言管理软件项目:定义问题 + 描述需求 + 管理过程 + 判断结果。
grill-me
最重要的 skill:让 AI 反过来拷问你,把模糊想法追问成清晰问题。

A.2给讲解者:六个最常见的教学失误

① 先讲完所有名词再实操

应该反过来:先让大家亲手得到一个“不太能用”的结果,再回头讲概念。

② 一次发几十条 Prompt

Prompt 是拿来改的不是拿来抄的。一次只给一条,让大家带回去反复用。

③ 用完美案例掩盖过程

展示失败和回退(比如那次改崩的版本 4),比展示成功更有教学价值。

④ 把页面漂亮当作开发成功

能跑通闭环、通过验收标准才算完成。好看是最后一步。

⑤ 为了显得先进讲太多公司与版本

厂商地图一页就够。老师需要的是一款稳定主工具,不是排行榜。

⑥ 把规则文件当作安全控制

AGENTS.md 是上下文不是保险柜。真正的安全靠权限、密钥管理和验收流程。