项目快照:rohitg00/ai-engineering-from-scratch,约 55,019 个 Star,9,671 个 Fork;最新推送时间 2026-09-07T11:42:35Z。本文基于仓库公开资料撰写。
项目地址:https://github.com/rohitg00/ai-engineering-from-scratch · https://aiengineeringfromscratch.com

项目速览(TL;DR)
ai-engineering-from-scratch 是一个以“从头构建人工智能工程能力”为目标的开源课程与参考资料仓库,主要使用 Python,并采用 MIT 许可证。仓库 README 将其定位为一套端到端课程:学习者不仅阅读概念,还要通过每课产出可复用的提示词、技能、智能体或模型上下文协议(Model Context Protocol,MCP)服务器等工件。
根据提供的 GitHub 元信息,仓库默认分支为 main,获得 55019 个 Star、9671 个 Fork。README 标注课程包含 523 节课、20 个阶段、约 342 小时内容,覆盖 Python、TypeScript、Rust 和 Julia;这些规模数据属于仓库资料中的项目描述,不等同于运行性能、服务容量或交付承诺。
“You don't just learn AI. You build it. End-to-end. By hand.”
来源:README
定位与目标用户
该项目的核心定位不是一个可直接部署的人工智能(Artificial Intelligence,AI)服务,而是一套课程化、分阶段的工程学习材料。课程从开发环境和数学基础开始,延伸到机器学习、大语言模型(Large Language Model,LLM)工程、工具与协议、智能体工程,以及面向实际仓库的编码智能体使用路径。
目标用户需要把仓库当作学习路线、实验索引和代码实践入口,而不是把它当作已经封装好的 Python 软件包。根据 README,课程强调每节课产生可复用工件,因此阅读者应关注“输入是什么、通过哪一阶段处理、最终得到什么可复用结果”,而不只是阅读文字说明。
- 已有 Python 基础、希望补足数学和机器学习基础的学习者,可从第 1 阶段开始。
- 希望构建生产级 LLM 应用的学习者,可从第 11 阶段的 LLM Engineering 路径开始。
- 希望理解智能体循环、工具调用和工作流的学习者,可进入第 14 阶段的 Agent Engineering。
- 希望使用编码智能体处理真实代码仓库的学习者,可选择 Agent-Assisted Engineering 路径。
课程组织与学习入口
课程入口采用“目标驱动”方式,而不是要求所有人先线性阅读全部 523 节课。README 提供 GitHub 目录和官网课程页两类入口,两者使用同一套课程代码;官网页面通过路径参数定位具体课程。
这种组织方式的实际价值在于,读者可以先根据交付目标选择阶段,再回补前置知识。若读者无法判断自己是否具备前置条件,应优先从第 0 阶段“Setup and Tooling”开始;官方资料没有提供统一的先修知识量化标准,不能据此推断某一阶段的完成时间。
- 基础环境:README 指向
phases/00-setup-and-tooling/。 - 数学基础:README 指向
phases/01-math-foundations/。 - LLM 工程:README 指向
phases/11-llm-engineering/。 - 智能体工程:README 指向
phases/14-agent-engineering/。 - MCP 路径:README 指向
phases/13-tools-and-protocols/README.md中的 MCP path。
核心功能
从环境准备到人工智能基础
第 0 阶段用于开发环境和工具准备,第 1 阶段用于数学基础。根据 README 的入口说明,学习者可以先从开发环境开始,也可以在已经掌握 Python 的情况下直接进入线性代数直觉等基础内容。
其工作机制是按阶段把抽象知识拆成可执行课程:前置阶段解决工具和基础概念,后续阶段再使用这些知识构建模型应用。资料没有给出每一课的完整输入、输出格式或统一命令,因此不能把阶段目录推导成固定的自动化流水线。
LLM 工程路径
第 11 阶段名为 LLM Engineering,README 将“Prompt Engineering”列为该阶段的官网起始课。由资料可确认,这条路径至少覆盖提示工程相关学习入口,但提供的材料没有列出模型供应商、模型名称、API 参数、依赖包或调用接口。
因此,课程产物可以理解为面向 LLM 应用的工程练习和可复用工件,而不能据此声称仓库内置某个模型服务、默认 API 或特定推理后端。需要实际运行模型调用时,应以对应课程页面和最新 README 中的说明为准。
智能体工程与编码智能体
第 14 阶段名为 Agent Engineering,README 将“The Agent Loop”列为官网入口。该内容方向聚焦智能体的循环过程;资料没有提供具体循环实现、状态对象、工具调用协议或错误重试策略,所以不能为其补写接口签名。
仓库还提供 Agent-Assisted Engineering learning path,并将真实代码仓库中的编码智能体使用作为独立目标。README 同时提到“模型为何失败”和“成果优先于输出”等课程入口,这说明该路径不仅关注生成代码,也涉及任务定义和交付判断;具体评价规则仍需查看对应课程原文。
工具、协议与 MCP
README 将 Model Context Protocol(MCP)列为独立学习路线,并指向第 13 阶段的 MCP fundamentals 课程。由此可确认,项目把工具与协议作为单独的课程主题,而不是只把工具调用作为 LLM 章节中的附属内容。
资料没有说明 MCP 服务器的传输方式、监听端口、配置格式、认证方法或示例工具名称。实际接入时,触发条件、输入输出和依赖组件应以 phases/13-tools-and-protocols/README.md 及对应课程代码为准。
多语言落地页与翻译分支
README 提供西班牙语、法语、葡萄牙语、德语、意大利语、简体中文、日语、韩语、印地语、阿拉伯语、俄语和土耳其语入口。README 明确说明英文是规范版本,课程页面的机器翻译位于 translations 分支;这意味着翻译页适合辅助阅读,但不应在存在差异时替代英文规范内容。
翻译机制只在资料中被描述为已提交的落地页与机器翻译课程页,未提供翻译质量保证、同步周期或人工审校承诺。涉及代码、路径和安全边界时,应以英文规范内容和仓库当前文件为准。
系统架构与关键模块
从仓库资料能够确认的架构是“课程阶段—学习路径—课程页面—可复用工件”的内容架构,而不是一个已经公开完整的运行时系统架构。课程以 20 个阶段组织,部分目标又通过 JSON learning path 进行定向编排。
| 模块或入口 | 资料中可确认的作用 | 触发方式 | 资料边界 |
|---|---|---|---|
| 阶段目录 | 承载课程阶段和课程序列 | 访问对应 phases/ 目录 |
未提供统一构建命令 |
| 学习路径 | 按目标筛选课程组合 | 读取 learning-paths/*.json 或官网路径参数 |
资料只明确提及部分路径文件 |
| 官网课程页 | 展示与 GitHub 使用同一套课程代码的课程内容 | 通过官网 lesson URL 的 path 参数定位 |
未提供前端部署和接口文档 |
| 可复用工件 | 课程学习结果,包括提示词、技能、智能体或 MCP 服务器 | 随课程实践产生 | 每类工件的统一格式未提供 |
| 国际化目录 | 提供多语言 README 落地页 | 访问 i18n/ 下的语言目录 |
英文为规范版本 |
从工程选型角度看,这个架构适合以课程目标为入口逐步学习;如果需求是寻找一个带固定安装命令、稳定 API 和部署清单的应用框架,则当前资料不足以证明仓库具备这些属性。这里的判断是对仓库形态的解释,不是仓库作者对替代方案的比较。
依赖与运行环境
仓库元信息仅明确给出主要语言为 Python,并在 README 的课程描述中提到 Python、TypeScript、Rust 和 Julia。资料没有提供 Python 版本、包管理器、依赖文件、操作系统要求、数据库要求、容器镜像或 GPU 要求。
因此,不能根据“主要语言为 Python”直接写出 pip install、poetry install、uv sync 或其他安装命令。以下环境信息应以最新仓库文件为准:
- Python 版本:官方仓库未提供该信息,建议以最新 README 为准。
- TypeScript、Rust、Julia 的具体版本:官方仓库未提供该信息。
- 第三方依赖名称和版本:官方仓库未提供该信息。
- 操作系统、CPU、GPU 和内存要求:官方仓库未提供该信息。
- 网络访问、模型服务和 API 服务要求:官方仓库未提供该信息。
快速开始
提供的资料支持“获取仓库并核验默认分支”这一最小闭环,但没有提供项目安装、应用启动和业务验证命令。为避免虚构不存在的入口,下面的命令只执行本地仓库获取与核验,不宣称它会启动课程网站或模型服务。
获取与核验仓库
git clone https://github.com/rohitg00/ai-engineering-from-scratch.git
cd ai-engineering-from-scratch
git branch --show-current
git remote -v其中仓库地址和默认分支名称来自项目资料。若当前分支显示为 main,可以与仓库元信息中的默认分支进行核对;git remote -v 用于确认本地副本指向的仓库地址。
本地内容验证
test -f README.md
test -f LICENSE
grep -n "MIT License" LICENSE这组命令只检查仓库中是否存在 README 和 LICENSE,并确认许可证文件包含 MIT License 文本。官方资料没有给出更完整的测试命令,因此不能把该检查替代项目测试套件,也不能据此证明所有课程代码均可运行。
关于“安装—运行—验证”闭环
当前资料没有出现 requirements.txt、pyproject.toml、package.json、Docker 配置、启动脚本或统一测试命令。因而,项目级的安装、运行、服务端口和结果验证步骤均应标记为“官方仓库未提供该信息,建议以最新 README 为准”,不能用通用 Python 命令冒充该项目的启动方式。
配置说明
提供的 README 片段没有配置章节,也没有提供环境变量示例、配置文件样例、模型密钥字段或端口字段。下表用于明确资料核查结果,避免把未经来源确认的字段写成项目配置。
| 字段名 | 类型 | 默认值 | 作用 |
|---|---|---|---|
| 模型 API Key | 未提供 | 未提供 | 资料未说明模型服务认证方式 |
| 服务端口 | 未提供 | 未提供 | 资料未提供本地服务启动说明 |
| Python 版本 | 未提供 | 未提供 | 资料只给出主要语言为 Python |
| 依赖文件路径 | 未提供 | 未提供 | 提供的文件资料中未列出依赖清单 |
| MCP 配置 | 未提供 | 未提供 | README 只提供 MCP 学习入口,未给出运行配置 |
如果课程页面要求输入第三方服务密钥,应只在本地测试环境中通过课程明确规定的方式配置,并使用占位符替换真实密钥。提供的资料未定义任何可确认的环境变量名称,因此不应自行创建变量名后声称它们被项目读取。
进阶用法
进阶使用的合理方式是围绕目标选择路径,再回到具体阶段验证课程代码和产物。README 明确给出了 Agent-Assisted Engineering 与 Product Judgment and Delivery 两条学习路径文件,它们适合与单纯按阶段浏览结合使用。
- 先确定交付目标,例如学习 LLM 应用、智能体、编码智能体或 MCP。
- 打开对应阶段目录或
learning-paths/JSON 文件,确认课程顺序和实际文件内容。 - 逐课保存课程产生的提示词、技能、智能体或 MCP 服务器等工件,并记录其输入、输出和适用边界。
- 在本地隔离环境中运行课程代码;若课程没有提供运行命令,不自行推断入口。
- 完成后将工件与真实需求对照,检查是否包含错误处理、权限控制、日志和数据保护措施。
根据本文作者的经验判断,课程型仓库的进阶价值不在于一次性复制全部目录,而在于把每个课程工件放入可复现的实验记录中。该判断属于使用建议,不是 README 中声明的官方工作流。
可观测性与运维
提供的资料没有说明日志格式、指标名称、链路追踪、健康检查、告警规则、备份策略、升级流程或服务等级协议(Service Level Agreement,SLA)。因此,不能声称该项目内置生产运维能力,也不能给出默认端口、探针路径或监控后端。
若学习者把课程产物部署到本地实验环境,应至少单独记录课程版本、代码提交、输入样例、输出结果和异常信息。涉及 LLM 或智能体时,还应保存工具调用顺序和人工确认点;这些是工程实践建议,并非仓库已经提供的运维模块。
- 运行记录:记录执行时间、课程路径和本地 Git 提交。
- 输入输出:移除敏感数据后保存可复现样例。
- 错误处理:明确区分依赖缺失、网络失败、模型响应错误和课程代码错误。
- 变更管理:翻译分支与英文规范内容发生差异时,优先核对英文版本。
安全与合规边界
该项目资料涉及 LLM、智能体、编码智能体和 MCP 等能力,但提供的内容没有列出具体攻击功能、越狱教程、账号自动化、支付流程或未授权目标操作。所有课程实验都应限定在拥有明确授权的本地、测试或组织内部环境中。
如果课程代码接触代码仓库、文件系统、外部工具或模型 API,使用者应先确认数据授权和最小权限范围。不要把生产密钥、个人信息、客户数据、私有源码或内部凭据直接粘贴进课程实验;资料没有提供隐私保护、数据留存、审计或合规认证承诺。
- 授权边界:只操作本人或组织明确授权的仓库、服务和数据。
- 隔离边界:优先使用测试账户、测试仓库和独立运行环境。
- 密钥边界:真实 API Key 不写入课程代码、提交记录或公开 issue。
- 工具边界:为智能体授予最小必要权限,并对写入、删除和外部请求增加人工确认。
- 合规边界:根据所在地区和组织政策处理个人数据、跨境数据和第三方模型输入。
许可证与商用条款
仓库许可证为 MIT License,LICENSE 文件版权声明为 Copyright (c) 2026 Rohit Ghumare。MIT License 授予获得软件及相关文档的人员使用、复制、修改、合并、发布、分发、再许可和销售副本的许可,但必须遵守许可证文件中的条件。
结合 LICENSE 文件,可以确认商业使用不被许可证禁止;分发软件或其重要部分时,需要保留版权声明和许可声明。许可证同时明确软件按“现状”提供,不提供适销性、特定用途适用性和不侵权保证,作者不承担文件所列范围之外的责任。
上述说明仅解释提供的 MIT License 文本,不代表对其他第三方依赖、课程示例、模型服务条款或外部数据许可的判断。实际分发时应检查仓库中每个组件的许可与 NOTICE 要求,并以仓库 LICENSE 为准。
局限性与已知限制
当前资料足以说明课程范围和学习入口,但不足以还原完整的可执行工程环境。最重要的限制是:没有提供依赖版本、运行命令、服务端口、配置字段、测试结果、性能基准、并发能力或部署拓扑。
- 不能根据 Star、Fork 或课程小时数推导代码质量、稳定性或学习效果。
- 不能根据“生产级 LLM 应用”这一学习目标推导仓库本身是生产级服务。
- 不能根据 README 中的 MCP 路径推导存在可直接启动的 MCP 服务器。
- 不能根据多语言 README 推导所有课程页面均已人工翻译或保持完全同步。
- 不能根据 Python 主语言字段推导所有课程代码只需要 Python 环境。
- README 中的读者数和页面浏览量是生成统计字段,标注为截至 2026-08-29;它们不是应用性能指标。
如果这些限制会影响选型,建议在目标提交上逐项检查课程目录、依赖文件和运行说明。缺失信息应继续保留为“官方仓库未提供该信息”,不应使用经验值填补。
适合谁
该项目适合把学习目标拆成阶段和实践产物的读者,尤其适合希望同时理解基础知识、LLM 应用、智能体和工具协议的人。以下信号可以帮助判断是否匹配:
- 你愿意使用 Python,并能接受课程还涉及 TypeScript、Rust 或 Julia 的内容边界。
- 你的目标是构建提示词、技能、智能体或 MCP 服务器等学习产物,而不是立即获得一个固定 API 的成品服务。
- 你需要数学、机器学习、LLM 工程和智能体工程之间的连续学习路线。
- 你希望按“完整基础”“生产 LLM 应用”“智能体”“编码智能体”或“MCP”目标选择路径。
- 你能够在本地或测试环境中自行核对依赖、权限和课程代码的实际运行要求。
不适合谁
如果需求重点是稳定部署、明确接口和现成运维能力,当前资料不能证明该仓库满足这些条件。以下信号表明需要谨慎,或应先寻找具有完整运行文档的替代材料:
- 你必须在没有阅读课程代码的情况下,通过一个固定命令启动生产服务。
- 你要求官方提供明确的 Python 版本、依赖锁定、容器镜像、端口、SLA 或性能基准。
- 你的团队需要已经完成隐私评估、审计、合规认证和供应商责任承诺的商业产品。
- 你只允许单一语言和单一技术栈,而课程覆盖范围包含多种语言和 AI 工程主题。
- 你的目标是直接获得模型推理 API、托管智能体平台或生产 MCP 基础设施,而不是通过课程自行构建和验证。
这里的“不适合”是基于提供资料作出的选型判断,不是对仓库内容质量的评价。README 没有列出替代项目,因此本文不对未被资料提及的方案做对比。
常见问题与排查(FAQ / Troubleshooting)
这个仓库安装后会启动一个 AI 应用吗
提供的资料没有这样描述。README 将项目定义为包含 523 节课、20 个阶段和可复用工件的课程体系,未给出统一应用入口、启动脚本或服务端口。
应该从哪一课开始
没有统一答案。新手可从第 0 阶段 Setup and Tooling 开始;已掌握 Python 并希望补足数学与机器学习基础的读者可从第 1 阶段开始;LLM、智能体、编码智能体和 MCP 则分别对应 README 给出的目标入口。
为什么找不到依赖安装命令
提供的文件资料没有包含依赖文件或安装章节。请检查最新 README、目标阶段目录和对应课程文件;不要把通用的 Python 包管理命令当作项目官方命令。
官网和 GitHub 内容是否不同
README 说明两者使用同一套课程代码,但英文是规范版本,课程页翻译位于 translations 分支。遇到路径、代码或术语不一致时,应核对英文规范内容和当前提交。
Star 数能否作为技术选型依据
不能单独作为依据。55019 个 Star 和 9671 个 Fork 是仓库元信息,无法替代依赖审查、代码审查、测试验证、许可证审查和部署评估。
如何排查课程代码运行失败
- 先记录当前 Git 提交和具体课程路径。
- 核对课程页面是否要求额外语言、依赖或外部服务。
- 确认是否误用了翻译页面、旧分支或错误的学习路径。
- 检查是否把未提供的环境变量、端口或 API 参数自行写入配置。
- 若最新 README 仍未提供解决方法,应在授权的测试环境中保留最小复现信息,并以仓库维护流程为准。
项目地址与资源
以下链接均来自提供的仓库资料,访问时应留意当前分支、课程页面和翻译内容的同步状态。



