ai-engineering-from-scratch
由智慧养成的习惯,能成为第二天性。——培根
https://github.com/rohitg00/ai-engineering-from-scratch
当一门课程不满足于教你“会用 AI”,它开始逼你亲手造 AI:ai-engineering-from-scratch 观感全记录
有些 AI 学习项目像导游,带你走马观花;有些像讲师,给你一堆概念;还有一些,像不讲情面的工头,卷起袖子把你拽进工地,指着钢筋水泥说:别只看,自己上手。
ai-engineering-from-scratch 就是最后这一种。
它的 GitHub description 很短,却有一种很利落的狠劲:Learn it. Build it. Ship it for others. 这不是一句温柔的学习口号,更像是三记连续出拳。先学明白,再亲手做出来,最后还要把它变成别人也能用的东西。它不接受“懂一点原理、会一点调用、做几个 demo 就算入门”的安慰剂式学习路径,而是直奔更严肃的问题:如果你真的想做 AI 工程师,你能不能从零开始,把东西搭起来、交出去、跑起来、复用起来。(github.com)
而这个仓库最有魅力的地方,恰恰在于它不像一个只会喊理想的热血少年,它更像一个已经把课程表、工具箱、验收标准、输出格式、上线清单全部排好的人,然后回头对你说:来,我们不空谈,现在正式开工。(github.com)
它不是在教你“怎么更好地使用 AI 工具”,而是在教你怎么成为 AI 工程的搭建者
README 一开头就给出了一个非常扎心、也非常现实的判断:84% 的学生已经在使用 AI 工具,但只有 18% 觉得自己已经为职业化使用做好准备。这个 curriculum 的存在,就是为了补上这道鸿沟。 这句话像一面镜子,照出了今天很多人的真实状态:会问、会调、会套模板,但一到要落地为产品、系统、工作流、可交付资产时,手就开始发虚。(github.com)
所以 ai-engineering-from-scratch 干脆不绕弯子。它告诉你,这不是一个“带你了解 AI 趋势”的资源合集,而是一套完整课程:473 节课、20 个阶段、约 320 小时,覆盖 Python、TypeScript、Rust、Julia。更重要的是,每一课都会产出一个可复用的工件:prompt、skill、agent 或 MCP server。 这一下,味道就完全不一样了。(github.com)
很多课程结束时,学生得到的是“我学过”;而这个项目想让你最后拿到的是“我做过,而且我留下了东西”。这是一种非常工程师化的价值观。知识不是在脑子里打转,而是要变成文件、变成目录、变成脚本、变成工作流、变成别人也能继续拿去用的东西。(github.com)
如果把一般教程比作带你参观厨房,那么 ai-engineering-from-scratch 更像直接给你围裙、锅铲、食材、出餐单和卫生检查表,然后说:今天别点评别人做得好不好,今天你自己掌勺。
这门课最可怕也最迷人的地方,是它特别“不碎片化”
README 里对很多 AI 学习材料做了一个很精准的总结:现在市面上大量内容都是碎片化的,东一篇论文解读,西一篇 fine-tuning 教程,中间再夹一个炫目的 agent demo。看着热闹,学着也容易上头,但真正落到系统构建时,就会发现自己像捡了一堆高级零件,却不会组装成一台能启动的机器。(github.com)
而这个仓库最用力的一件事,就是反碎片化。
它没有把 AI 工程拆成散落在时间线里的热词,而是按 phase 组织,按课程节奏推进,按产物沉淀。你不是今天学一点 prompt engineering,明天看一眼 RAG,后天又被 Agent、MCP、eval、memory、tool use、diffusion、RLHF 拽走;在这里,它们不是互相抢戏的流量词,而是按施工顺序进场的工种。有人打地基,有人走水电,有人封墙,有人验收,最后要的是一栋房子,而不是一堆看起来很先进的建材。(github.com)
这也是为什么它读起来特别像一门真正意义上的“工程课程”,而不是一份“AI 时代不能错过的学习清单”。
它的核心态度很鲜明:你不是只学 AI,你要手工把 AI 一层层搭出来
README 里有一句非常能代表项目气质的话:You don’t just learn AI. You build it. End-to-end. By hand. 这句话简直像焊在仓库气质上的总开关。(github.com)
“Learn it” 还比较常见。
“Build it” 已经开始提高要求。
“End-to-end. By hand.” 才是真正露出锋芒的部分。
它不想让你停留在“会用框架、会调 SDK、会接 API”的舒适区,而是把你往更底层的理解和更完整的交付上推。它像一个有点严格但真心为你好的老师,站在工位旁边说:你当然可以直接套现成服务,但你至少要知道里面的骨架长什么样;你当然可以依赖平台,但你得有能力从头把一条链路重新搭一遍。(github.com)
这种学习方式最难的地方,不是知识量大,而是它要求你形成一种“产出习惯”。每一节课都不是看完就算,它默认你要把东西做出来,留下痕迹,能被后续系统读取,能被 agent 继续利用,能被 workflow 复用。时间久了,你会发现它在训练的不只是 AI 技术,而是一种现代 AI 工程师非常关键的肌肉:把思路变成资产,把实验变成模块,把个人经验变成团队可消费的基础设施。(github.com)
这个仓库最聪明的一点,是它不把“作业”当终点,而把“可复用资产”当终点
README 里有个特别重要的部分叫 The toolkit。这里它直接亮出了课程的产出结构:每一课都会生成可复用工件,最终你会得到 outputs/prompts/ 和 outputs/skills/。前者装的是各类 AI 任务的 prompt 模板,后者装的是给 AI coding agents 使用的 SKILL.md 文件。 (github.com)
这意味着什么?
意味着这套课程不是在让你做“学习型作品”,而是在逼你形成“生产型产物”。
普通课程很像一次性的烟花,课堂上很亮,课后就散。这个仓库则更像一间手工铺子,每上一节课,桌面上都多一把磨好的工具。今天做 prompt 模板,明天做 skill,后天做 agent,再后天做 MCP server。你不是在堆笔记,而是在慢慢组装一套属于自己的 AI 工程工具库。(github.com)
这很像一个特别懂长期主义的项目在对学习者耳提面命:别把知识学成一阵风,要把它学成仓库、目录、脚本和标准。今天你为一节课写下的 SKILL.md,明天可能就会进入 Claude、Cursor、Codex 或其他 agent 的工作流里继续发光。(github.com)
知识在这里不再是“看过”,而是“被安装过、被调用过、被复用过”。
它连“怎么把课程成果接到真实 Agent 里”都替你铺好了路
这个仓库最让人拍案的一点,是它不是停留在“课程内部自洽”,而是把输出结果和真实 Agent 生态打通了。
README 写得很明确:仓库内已经带有 382 个 skills 和 99 个 prompts,分布在 phases/**/outputs/ 里。而这些成果可以直接通过 npx skills add 安装到支持 SKILL.md / AGENTS.md 的 Agent 工具中,比如 Claude、Cursor、Codex、OpenClaw、Hermes 等。(github.com)
这一步非常关键。
很多课程像在训练场里跑步,跑得再快也还在场内;ai-engineering-from-scratch 则像跑到一半突然把训练场大门打开,对你说:别只在这里练,把你练出来的东西带到真实比赛里去。(github.com)
它不是要你在课程结束后再自己想办法迁移成果,而是一开始就把“课程产出如何接入实际 agent 工作流”写进了设计里。这个仓库在这件事上像一个经验老到的产品经理,特别清楚学习者最容易卡在哪里,所以索性把最后一公里也一起修好。
最让人兴奋的快速开始,往往就藏在最朴素的命令里
如果一个仓库真想让人动手,它的快速启动一定不能虚。ai-engineering-from-scratch 在这方面很干脆,README 直接给出了最实用的用法。
一次性安装整个课程的 skill 到你的 Agent 里
1 | npx skills add rohitg00/ai-engineering-from-scratch |
只安装某一个 skill
1 | npx skills add rohitg00/ai-engineering-from-scratch --skill agent-loop |
只安装某一个 phase 的内容
1 | npx skills add rohitg00/ai-engineering-from-scratch --phase 14 |
README 还特别说明,skills 会自动写入你的 Agent 可识别目录,比如 .claude/skills/、.cursor/skills/、.codex/skills/、OpenClaw 的 skills 文件夹、Hermes 的 bundle 路径,或者任何支持 SKILL.md 的目标路径。默认还会拒绝覆盖已存在内容,并在发生冲突时退出;你可以用 --dry-run 预演,用 --force 覆盖。每次非 dry-run 安装还会写一个 manifest.json,按类型和 phase 记录完整清单。(github.com)
这一整段设计很有一种“课程成果不是展示品,而是要进生产工具箱”的严肃感。它不满足于你知道有多少技能,而是希望这些技能真的住进你的日常工作流里,成为你和 Agent 协作时的长期搭档。(github.com)
如果把别的课程比作“发讲义”,这个仓库更像在课后直接往你工具箱里塞一整排能上岗的扳手、钳子和测试仪。
它甚至把“Agent 工作台”整个打包给了你
README 提到,Phase 14 的 capstone 提供了一个可复用的 Agent Workbench pack,包括 AGENTS.md、schemas,以及 init / verify / handoff 脚本。更妙的是,它还给出了脚手架命令,你可以把这整套工作台直接 scaffold 到自己的仓库中:(github.com)
1 | python3 scripts/scaffold_workbench.py path/to/your-repo |
这一幕特别像什么呢?
像一位经验丰富的前辈,不只是把自己工位上的工作方法讲给你听,而是干脆把整张工桌、抽屉标签、交接模板、检验单、工具摆放规则一起搬给你。你不是从零摸索“团队里的 Agent 协作环境应该怎么搭”,而是可以直接拿到一套已经被课程打磨过的工作台。(github.com)
这说明这个项目的野心并不止于教学,它还在输出方法论和团队级协作资产。它教的不是“做一个 AI demo”,而是“如何把 AI 工程作为一整套可以迁移、可以复制、可以交接的体系来搭建”。
它还很认真地管理课程本身,像在维护一个产品,而不是一份资料包
越看 README,越能感觉这个仓库对“课程即产品”这件事有多认真。
它提到有一个 catalog.json,而且这个 catalog 是从文件系统派生出来的,不是从 README 手工统计出来的,所以数量始终和磁盘上的真实内容一致。这可以用于网站构建、下游工具,或者校验 README 中的统计数字有没有漂移。与此同时,仓库里还有一个 GitHub Action curriculum.yml,会在每次 PR 时重建 catalog.json,如果提交的文件是旧的,CI 会直接失败。README 还明确提醒:修改任何 lesson 后,要运行 python3 scripts/build_catalog.py 并提交结果,否则 CI 会拒绝 PR。(github.com)
这一段看似是维护细节,实际上特别能说明这个项目的底色。
它不是“我先写一堆内容,再慢慢补文档”的松散型仓库,而是像一个很讲秩序的管理员,手里拿着清单、目录、索引和门禁卡,确保每一个 lesson 都能被发现、被计数、被验证、被追踪。它知道,一个 473 课时、20 phase 的大项目如果没有系统化治理,很快就会变成一座看起来壮观、进去却容易迷路的仓库迷宫。(github.com)
所以它主动把“目录治理”“构建校验”“提交一致性”都写进了日常维护里。这种做法非常工程,也非常成熟。
它连最容易被忽略的“课程代码别坏掉”这件事都做了防守
README 还提供了一个非常实用的脚本:scripts/lesson_run.py。它的作用是对每个 lesson code/ 目录下的 .py 文件进行字节编译检查。默认模式只做语法检查,不执行代码,不需要 API key,也不需要沉重的机器学习依赖,主要是为了抓住贡献者最容易带进来的回归问题,比如缩进错了、f-string 写坏了、顺手改出语法错误之类。(github.com)
用法也非常直接:
1 | python3 scripts/lesson_run.py |
1 | python3 scripts/lesson_run.py --phase 14 |
1 | python3 scripts/lesson_run.py --json |
1 | python3 scripts/lesson_run.py --strict |
1 | python3 scripts/lesson_run.py --execute |
README 还说明,--execute 会运行每节课的 code/main.py 或第一个 .py 文件,并设置 10 秒超时;如果入口文件开头有 # requires: pkg1, pkg2 这样标注非标准库依赖的注释,这节课就会被跳过,并标记为 needs <deps>。整个脚本只依赖 Python 3.10+ 标准库,而且默认并未接入 CI,属于手动启用的检查工具。(github.com)
这很像课程仓库里自带了一个巡逻保安。它不负责教课,但它会在夜里挨个教室拧门把手,确保窗没坏、灯没炸、白板没塌。很多开源教育项目容易在增长后失去质量控制,而这里显然是想尽量把最常见的“低级损坏”挡在门外。(github.com)
它和那些“学完就散”的课程最大不同,是它真的想把你送到交付现场
从 description 到 README,这个仓库不断重复一个核心逻辑:不是只“学”,而是“构建”,不是只“构建”,而是“交付给别人使用”。这最后一步特别关键。(github.com)
因为很多人学 AI,最容易忽略的是“可交付性”。自己本地跑通不等于工程完成;Notebook 里一时漂亮不等于系统可靠;给自己看的 prompt 不等于团队能复用的 asset。ai-engineering-from-scratch 对这件事很清醒,所以它从一开始就把“ship it for others”写进项目灵魂里。(github.com)
也就是说,这门课不是想让你成为“很懂 AI 的使用者”,而是想把你训练成“会把 AI 能力组织成产品、资产和工作流的人”。这听起来像只是多了一层要求,实际上是整套学习哲学的区别。
一个只关注自己会不会的人,会停留在体验层。
一个知道最终要交给别人用的人,才会开始关心稳定性、目录结构、规范、校验、文档、安装方式、兼容路径、冲突处理、可发现性。
而这个仓库几乎把这些关键词全都覆盖到了。(github.com)
那些引用的经典论文,不是在装点门面,而是在悄悄标注路线图
README 里还列出了一组非常有代表性的论文与对应 phase,比如:
- Attention Is All You Need → Phase 7
- GPT-3 → Phase 10
- DDPM → Phase 8
- InstructGPT / RLHF → Phase 10
- Direct Preference Optimization → Phase 10
- Chain-of-Thought → Phase 11
- ReAct → Phase 14
- Model Context Protocol → Phase 13 (github.com)
这些名字一摆出来,能看出这个项目不是把工程和研究割裂开来。它并没有说“我们这里只做实战,不谈理论”,也没有反过来堆一堆论文让你自己悟。它更像一位很会排兵布阵的教练,把经典研究节点按学习旅程嵌入进去,让你知道:你今天在课程里搭的东西,不是从空气里冒出来的,它们背后是这些思想链条一路长出来的。(github.com)
这就让整个仓库多了一种纵深感。你不是在跟着一个短期热点起舞,而是在沿着 AI 演化史中的关键脉络,一边学原理,一边做工程,一边留下可复用资产。
如果要用拟人化的方式来形容这个仓库,它像一个特别有执行力的总工程师
它站在你面前,不会先递给你鸡汤,而是先递给你施工图。
它看着那些只会“问模型要答案”的学习方式,像看见一群只会站在厨房门口点评火候的人,于是皱皱眉,把围裙塞进你怀里:别光闻香味,自己下锅。
它又很像一个仓储管理员,手里永远有账本。多少 lessons、多少 phases、多少 prompts、多少 skills、哪些文件漂移了、哪些 catalog 该更新、哪段代码语法坏了,它心里全有数。你会觉得它有点严格,但正是这种严格,让这门课不像一场热闹的展会,而像一条真的能跑出产品和人才的流水线。(github.com)
它还像一个经验丰富的老师傅,从不迷信“我讲过了你就会了”。它知道真正会,必须是你自己装过、拆过、试过、错过、修过、验过、交付过。所以它不厌其烦地让每一课都产出工件,让每一种能力都留在目录里,让每一份学习都变成未来可以继续工作的部件。(github.com)
这个项目的吸引力,在于它让“AI 工程”终于不再像一句空话
这几年,“AI 工程”几乎已经成了一个谁都能说两句的词。有人拿它指代调 API,有人拿它指代 prompt,有人拿它指代 agent orchestration,也有人把一切和模型沾边的开发都归进去。
但 ai-engineering-from-scratch 提供了一种更扎实的定义方式:如果它真是工程,那就应该有课程结构、有阶段目标、有实际代码、有可复用产物、有安装路径、有质量检查、有 CI 约束、有能交给别人继续用的工作台。(github.com)
它像在说:别把工程只理解成“代码写得多”,工程是把能力组织起来,把结果沉淀下来,把过程标准化,把产物交付出去。
这也是为什么这个仓库会让人产生一种很强的信任感。它不是靠话术说服你,而是靠结构说服你。只要你认真看一遍 README,你就能感受到这里不是在搭一个“看起来很完整”的知识橱窗,而是在修一条真正能把学习者送进 AI 工程现场的路。(github.com)
它适合谁
如果你只是想快速知道几个 AI 热词、摸几个现成平台、体验几个酷炫 demo,这个仓库对你来说可能有点太硬了。473 课、20 phases、约 320 小时,这不是一个周末轻松打卡型项目,它更像一段正式的远征。(github.com)
但如果你正处在下面这些状态里,它会非常有价值:
- 你已经在用 AI 工具,但总觉得自己离“职业化使用”还差点什么
- 你不想只会调模型,而想搞清楚从 prompt 到 skill、从 agent 到 MCP server、从理论到交付的完整链路
- 你想让学习结果真正沉淀为文件、脚本、工作流和可复用资产
- 你希望你的 AI 学习不是“看过很多”,而是“做出了很多”
- 你想建立自己的 Agent 工具箱,而不是永远借住在别人的 demo 里 (github.com)
对这样的人来说,这个仓库像一座不花哨但特别结实的训练营。门口没有太多营销词,里面却摆满了真正能练出肌肉的器械。
结尾
ai-engineering-from-scratch 是那种很容易让人看完 README 就产生敬意的项目。
不是因为它把自己说得多神,而是因为它非常清楚自己在做什么:它在试图把“AI 学习”从零散、浅层、一次性的体验,重新拉回到系统化、可交付、可复用、真正工程化的轨道上。它用 473 节课、20 个阶段和一整套可安装、可验证、可运行、可迁移的工件,认真回答了一个问题:
如果我们不满足于“会用 AI”,而是想真正“成为能造 AI、交付 AI、沉淀 AI 资产的人”,那应该怎么学。(github.com)
这个仓库给出的答案很朴素,也很有力量:
别只围观。
别只调用。
别只收藏。
自己搭。
一路搭到底。
然后把它交到别人手里,让它继续工作。 (github.com)
这大概就是它最迷人的地方。
它不像一门课,更像一座正在施工、但已经灯火通明的工厂。你走进去的时候,机器已经启动,工位已经摆好,工具已经编号,清单已经贴墙,门口还站着一个不苟言笑却很可靠的老师傅。
他看你一眼,递给你安全帽,说:
欢迎来学。
不过在这里,学的意思是,真的把它做出来。
