项目快照: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

ai-engineering-from-scratch 从代码、运行环境到实践流程的项目封面
ai-engineering-from-scratch 的项目能力与实践流程示意。

项目速览(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 installpoetry installuv sync 或其他安装命令。以下环境信息应以最新仓库文件为准:

  • Python 版本:官方仓库未提供该信息,建议以最新 README 为准。
  • TypeScript、Rust、Julia 的具体版本:官方仓库未提供该信息。
  • 第三方依赖名称和版本:官方仓库未提供该信息。
  • 操作系统、CPU、GPU 和内存要求:官方仓库未提供该信息。
  • 网络访问、模型服务和 API 服务要求:官方仓库未提供该信息。

快速开始

提供的资料支持“获取仓库并核验默认分支”这一最小闭环,但没有提供项目安装、应用启动和业务验证命令。为避免虚构不存在的入口,下面的命令只执行本地仓库获取与核验,不宣称它会启动课程网站或模型服务。

获取与核验仓库

Bash
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 用于确认本地副本指向的仓库地址。

本地内容验证

Bash
test -f README.md
test -f LICENSE
grep -n "MIT License" LICENSE

这组命令只检查仓库中是否存在 README 和 LICENSE,并确认许可证文件包含 MIT License 文本。官方资料没有给出更完整的测试命令,因此不能把该检查替代项目测试套件,也不能据此证明所有课程代码均可运行。

关于“安装—运行—验证”闭环

当前资料没有出现 requirements.txtpyproject.tomlpackage.json、Docker 配置、启动脚本或统一测试命令。因而,项目级的安装、运行、服务端口和结果验证步骤均应标记为“官方仓库未提供该信息,建议以最新 README 为准”,不能用通用 Python 命令冒充该项目的启动方式。

配置说明

提供的 README 片段没有配置章节,也没有提供环境变量示例、配置文件样例、模型密钥字段或端口字段。下表用于明确资料核查结果,避免把未经来源确认的字段写成项目配置。

字段名 类型 默认值 作用
模型 API Key 未提供 未提供 资料未说明模型服务认证方式
服务端口 未提供 未提供 资料未提供本地服务启动说明
Python 版本 未提供 未提供 资料只给出主要语言为 Python
依赖文件路径 未提供 未提供 提供的文件资料中未列出依赖清单
MCP 配置 未提供 未提供 README 只提供 MCP 学习入口,未给出运行配置

如果课程页面要求输入第三方服务密钥,应只在本地测试环境中通过课程明确规定的方式配置,并使用占位符替换真实密钥。提供的资料未定义任何可确认的环境变量名称,因此不应自行创建变量名后声称它们被项目读取。

进阶用法

进阶使用的合理方式是围绕目标选择路径,再回到具体阶段验证课程代码和产物。README 明确给出了 Agent-Assisted Engineering 与 Product Judgment and Delivery 两条学习路径文件,它们适合与单纯按阶段浏览结合使用。

  1. 先确定交付目标,例如学习 LLM 应用、智能体、编码智能体或 MCP。
  2. 打开对应阶段目录或 learning-paths/ JSON 文件,确认课程顺序和实际文件内容。
  3. 逐课保存课程产生的提示词、技能、智能体或 MCP 服务器等工件,并记录其输入、输出和适用边界。
  4. 在本地隔离环境中运行课程代码;若课程没有提供运行命令,不自行推断入口。
  5. 完成后将工件与真实需求对照,检查是否包含错误处理、权限控制、日志和数据保护措施。

根据本文作者的经验判断,课程型仓库的进阶价值不在于一次性复制全部目录,而在于把每个课程工件放入可复现的实验记录中。该判断属于使用建议,不是 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 是仓库元信息,无法替代依赖审查、代码审查、测试验证、许可证审查和部署评估。

如何排查课程代码运行失败

  1. 先记录当前 Git 提交和具体课程路径。
  2. 核对课程页面是否要求额外语言、依赖或外部服务。
  3. 确认是否误用了翻译页面、旧分支或错误的学习路径。
  4. 检查是否把未提供的环境变量、端口或 API 参数自行写入配置。
  5. 若最新 README 仍未提供解决方法,应在授权的测试环境中保留最小复现信息,并以仓库维护流程为准。

项目地址与资源

以下链接均来自提供的仓库资料,访问时应留意当前分支、课程页面和翻译内容的同步状态。