近期,GitHub 上有一个项目迅速走红,名称非常直接:AI Engineering from Scratch。粗略浏览后发现,它并非那种“接入几个大模型 API,搭个聊天机器人就结束”的速成内容,也不是单纯抛出一堆论文链接和概念讲解的资源包。
这套内容更像是一张完整的 AI 工程训练路线图。从最基础的数学、机器学习、深度学习开始,逐步延伸到 Transformer、LLM、RAG、Agent、MCP,最终落到生产部署、安全与对齐。项目资料显示,它被拆分为 20 个阶段、435 节课,总时长约 320 小时,并且涵盖 Python、TypeScript、Rust、Julia 等多种编程语言。关键在于,每节课并非“看懂就行”,而是要求你真正编写代码、运行逻辑,并输出一个可复用的成果——可能是一个 Prompt、一个 Skill、一个 Agent,或一个 MCP Server。
这类项目之所以值得测试开发人员重点关注,并非因为它 Star 数多或又是一个热门开源库,而是因为它揭示了一个越来越现实的痛点:
如今很多团队已经将 AI 应用于实际工作——编写测试用例、生成脚本、搭建知识库问答、甚至接入 Agent 工具链。但一旦进入真正的工程落地阶段,问题往往卡在“模型能否回答”之外,而在于更底层的环节:
系统链路能否复现?生成结果能否验证?工具调用能否追踪?知识库的回答能否回放?Agent 执行失败能否定位?AI 生成的测试资产能否真正融入研发流程?
这些问题,已经不再是单纯会使用几个 AI 工具就能解决的。它们开始切入测试开发最熟悉的领域:工程质量、链路治理、自动化验证和平台化沉淀。
这个项目真正有价值的地方
说实话,当前市面上的 AI 资料很多,但普遍存在一个问题:知识点是零散的。今天刷到一篇 Transformer 解析,明天收藏一个 RAG 项目,后天跑一个 Agent Demo,再过几天又看到一个 MCP 工具接入方案。每一个单独看都不难,但一旦试图将它们整合成一个能在企业里交付的系统,问题就全部浮现。
举个例子:你能跑通一个聊天机器人,但解释不清楚为什么某些问题会触发幻觉;能接上向量数据库,但不知道切片、召回、重排到底该如何测试;能让 Agent 调用一个工具,但不知道调用失败后应该如何回滚、重试和记录上下文;能让 AI 生成自动化脚本,但判断不了这批脚本是否稳定、可维护、可回归。
很多 AI 项目从 Demo 到生产,真正卡住的不是模型能力,而是工程链路。
这个项目的价值就在这里。它不仅告诉你“某个技术存在”,而是把 AI 工程拆成了一条从底层到交付的完整路径:从数学基础、机器学习、深度学习,到 Transformer、LLM、RAG、工具调用、MCP、Agent、多智能体,再到生产部署和评测。
更关键的是,每一节课都要求你“产出”。项目提到,每节课最终会形成可复用的成果,沉淀为 Prompts、Skills 等资产,并且可以集成到 Claude、Cursor、Codex 等工具链中。这个设计思路,对测试开发团队尤其有参考价值——因为测试开发最怕的不是学了多少概念,而是学完之后没有任何资产沉淀。
普通 AI 教程为什么很难撑起工程落地
很多 AI 教程学完之后,容易让人产生一种错觉:AI 应用似乎很简单。一个 API Key、一个 Prompt、一个向量库、一个前端页面,再加一个工具调用函数,Demo 就出来了。
但真实项目并非如此。企业里的 AI 应用一旦进入业务流程,立刻要面对一堆工程问题:输入不稳定、输出不可控、知识库更新频繁、权限边界复杂、模型版本频繁变化、上下文长度受限、工具调用经常失败、多轮任务状态容易丢失、用户问题完全不可预测、评测标准难以统一。这些问题,绝不是“提示词写好一点”就能解决的。
比如一个 RAG 问答系统,表面上看就是“用户提问 → 检索文档 → 拼接 Prompt → 模型回答”。但站在测试视角,至少要拆解为:文档解析是否正确、切片是否合理、向量召回是否命中关键证据、重排是否把有效内容排到前面、Prompt 是否引导模型基于证据回答、回答是否引用了正确来源、没有答案时能否拒答、知识更新后历史问题是否回归正常。这已经不是一个单纯的“AI 功能”,而是一条完整的质量链路。
同样,一个 Agent 系统,表面上是“用户给任务 → 拆解 → 调工具 → 出结果”。但真正需要测试的包括:任务理解是否准确、计划拆解是否合理、工具选择是否正确、参数生成是否符合 schema、工具失败后能否处理、是否陷入无效循环、是否存在越权调用、最终结果能否验证、执行轨迹能否回放。
因此,AI 工程落地的核心不是“会接模型”,而是要求团队把 AI 的不确定性拆解成一个个可观察、可验证、可回归的工程问题。
测试开发人应该从哪里看这个项目
测试开发人员在看这个项目时,不建议把它当作算法课从头硬啃。更合理的做法,是把它看作一张 AI 工程能力地图。
你不需要从第一天就去自己训练大模型,但至少应该能看懂几个关键问题:大模型应用的请求链路是什么?RAG 的召回和生成如何分开评估?Agent 的执行轨迹怎么记录?MCP 的工具描述会不会影响模型调用质量?AI 生成的测试资产如何做规则校验和回归验证?模型版本变化后,怎么判断业务效果是否退化?
这些问题和传统测试开发的能力其实并不冲突。过去我们测试的是接口、页面、App、数据库、微服务,现在要测试的变成了:模型输出、知识库链路、工具调用、智能体任务、多模态理解、AI 生成的代码和测试平台。测试对象变了,但底层能力仍然是工程能力。
AI 工程链路里,测试最容易被忽略的部分
很多团队做 AI 项目,前期最关注的是“效果”——能不能答出来?能不能生成代码?能不能帮我写用例?能不能自动执行任务?这些当然重要,但从测试开发的角度看,只看效果远远不够。真正影响上线质量的,往往是下面几个方面。
可复现性
AI 系统最大的问题之一,是同一个问题多次提问,结果可能不同。这在 Demo 阶段没问题,在生产环境就很麻烦。比如同一个需求文档,今天生成 80 条用例,明天生成 95 条;同一个接口定义,第一次生成了异常场景,第二次漏掉了鉴权;同一个知识库问题,不同模型版本给出的结论不一致;同一个 Agent 任务,有时调用工具,有时直接编答案。
测试开发要做的,不是要求 AI 每次逐字一致,而是要定义可接受的稳定性范围。例如:关键场景是否稳定覆盖、核心断言是否一致、引用证据是否正确、高风险问题是否拒答、工具调用路径是否符合预期、输出结构是否满足下游系统消费。AI 系统的回归测试,不应该只比对文本,而应该比对结构、证据、行为和业务结果。
可观测性
传统系统出问题,可以看日志、查数据库、抓接口、看调用链。AI 系统如果没有观测设计,问题定位将非常困难。用户只会说一句“它答错了”,但研发和测试需要知道:用户原始问题是什么、系统改写后的问题是什么、检索到了哪些文档、哪些文档进入了上下文、最终 Prompt 是什么、模型返回了什么、是否调用了工具、工具返回了什么、后处理逻辑做了什么、最终答案为什么会变成这样。如果这些信息没有记录,AI 问题就很难复盘。
因此,测试开发在 AI 项目里,一定要推动 Trace 设计。不是只记录接口日志,而是记录完整的推理链路中的工程事件。
可验证性
AI 很擅长生成内容,但生成内容不等于结果正确。尤其在测试场景里,问题会更加明显。AI 生成的测试用例,常见问题包括:用例重复、前置条件缺失、步骤不可执行、预期结果模糊、边界值遗漏、异常场景不足、与需求字段对不上、无法导入测试管理平台。AI 生成的自动化脚本,问题包括:选择器不稳定、断言过弱、等待机制粗糙、异常处理缺失、环境依赖写死、数据清理缺失、脚本能跑通一次但无法长期维护。AI 生成的接口测试代码,问题包括:只覆盖正常流、缺少鉴权测试、缺少错误码校验、缺少幂等验证、缺少并发场景、缺少数据隔离、没有契约变更检查。
所以,AI 生成的内容后面必须接校验层。可以是规则校验,也可以是执行校验,还可以是评测集对比。没有校验层的 AI 生成,只能算辅助草稿,不能算工程交付。
可回归性
AI 项目一旦进入迭代,会频繁变化:Prompt 会改、模型会换、知识库会更新、切片策略会调整、工具描述会优化、Agent 规划逻辑会变、后处理规则会升级。每次变化都可能影响历史效果。这时就必须有回归集,比如:标准问题集、标准需求文档、标准接口定义、标准页面结构、标准缺陷样本、标准业务流程、高风险越权问题、历史线上问题样本。每次改动后,要能跑一遍评测,看核心指标是否退化。AI 系统如果没有回归集,后期会越改越不敢动——这一点和传统自动化测试非常相似。
从 RAG、Agent 到 MCP,质量问题怎么拆
如果从测试开发视角看,AI 工程可以拆成三条主线。
RAG:重点不是“能回答”,而是证据链是否可靠
RAG 系统最容易出现的问题,是答案看起来合理,但证据并不可靠。测试时不能只问“回答对不对”,还要拆开看:文档有没有解析成功、切片有没有切断关键信息、召回有没有命中正确段落、重排有没有把关键证据放前面、Prompt 有没有要求基于证据回答、答案有没有引用正确来源、没有证据时是否拒答、不同问法是否能命中同一知识点。RAG 的测试指标也不能只看准确率,更应该关注:召回命中率、引用正确率、答案忠实度、拒答准确率、知识更新生效时间、多轮追问一致性、相似问题稳定性。这部分很适合测试团队做成评测平台。
Agent:重点不是“能执行”,而是过程是否可控
Agent 比普通 LLM 应用复杂得多,因为它不是一次问答,而是一个多步骤执行过程。测试 Agent 时,不能只看最终输出,还要看执行轨迹。至少要记录:任务理解、计划拆解、工具选择、参数生成、工具返回、中间状态、失败处理、最终总结。常见问题包括:任务拆解过细导致步骤膨胀、工具选择错误调用了不相关能力、参数生成错误导致接口返回失败、工具失败后继续编造结果、多轮执行中上下文丢失、反复尝试同一条无效路径、最终答案掩盖了中间错误。Agent 系统的测试,很像过去测试复杂工作流系统,只是现在工作流不是完全由代码写死,而是由模型动态生成——这也是测试难度上升的地方。
MCP:重点不是“接上工具”,而是工具边界是否清楚
MCP 让模型可以调用外部工具,这对测试开发很重要。因为测试团队手里本来就有很多工具:接口测试平台、自动化测试平台、测试数据平台、缺陷系统、CI/CD、日志平台、数据库查询工具、浏览器自动化、App 自动化、性能测试平台。这些工具一旦封装成 MCP Server,AI 就可以参与到真实的测试流程里。但这里有一个关键问题:工具不是接上就完事了。需要测试:工具描述是否清晰、参数 schema 是否严谨、默认值是否安全、错误信息是否可理解、权限是否最小化、敏感数据是否脱敏、调用日志是否可审计、失败结果是否能被模型正确处理。很多 Agent 调用失败,不是模型不行,而是工具描述和接口设计对模型不友好。这部分正好是测试开发可以发挥作用的地方。
测试开发人的学习路径,不应该从“追热点”开始
面对这种大项目,最容易犯的错误是从头收藏,然后从来不学。或者今天看 RAG,明天看 Agent,后天看 MCP,最后每个都知道一点,但都做不深。对测试开发人来说,更适合按工程问题来学。
第一层:先看懂 LLM 应用链路。不需要一开始就训练模型,先搞清楚:请求如何进入模型、Prompt 如何拼接、上下文如何管理、结构化输出如何约束、函数调用如何触发、模型参数如何影响结果、流式输出如何处理、模型异常如何降级。这一层解决的是“看懂系统”。
第二层:把 RAG 当成一个可测试系统。重点看文档解析、切片策略、向量召回、重排、上下文拼接、答案生成、引用溯源、拒答策略。这一层解决的是“回答为什么对,为什么错”。
第三层:把 Agent 当成一个动态工作流。重点看任务拆解、工具选择、工具调用、状态管理、失败处理、执行轨迹、权限边界、任务完成率。这一层解决的是“过程是否可控”。
第四层:把 MCP 当成测试工具接入层。重点看工具封装、参数设计、错误处理、权限控制、日志审计、客户端兼容、工具调用评测。这一层解决的是“AI 如何进入真实测试流程”。
第五层:做评测和回归。重点看标准测试集、黄金答案、行为断言、结构校验、批量评测、版本对比、线上问题回放、质量看板。这一层解决的是“系统能不能长期维护”。
回到工程本身:AI 项目的质量问题,最后还是工程问题
这个项目值得关注,不是因为它把 AI 知识点列得很全,而是因为它的组织方式很工程化。它没有停留在“知道一个概念”,而是要求你:把算法写出来、把代码跑起来、把结果测出来、把能力封装起来、把组件交付出去。这套方式和测试开发的工作习惯是接近的。
测试开发真正要补的,也不是“多背几个 AI 名词”,而是把下面几件事想清楚:AI 系统的输入边界在哪里、输出如何验证、执行过程如何观测、失败如何定位、质量如何度量、能力如何沉淀到团队工具链里。
过去我们做自动化测试,核心不是写几条脚本,而是让测试能力进入研发流程。现在做 AI 测试开发,也不是简单让大模型帮忙写点东西,而是要把 AI 能力纳入工程体系。
这中间有很多具体工作:给 Prompt 做版本管理、给 RAG 做评测集、给 Agent 做执行轨迹、给 MCP 工具做权限边界、给生成的代码做静态检查、给生成的用例做规则校验、给模型切换做回归测试、给线上问题做样本沉淀。这些事情看起来不炫,但决定了 AI 项目能否真正上线、能否长期维护。
所以,测试开发人看这类项目,不用只盯着“从零训练模型”。更应该关注它背后的工程方法:怎么拆模块、怎么留证据、怎么做验证、怎么沉淀资产、怎么把一次性 Demo 变成可维护系统。这才是对测试开发更有价值的部分。
AI 工具会继续变快,模型能力也会继续变强。但企业项目里,真正麻烦的通常不是“有没有模型”,而是模型进入业务流程以后,谁来保证它稳定、可控、可验证。这正是测试开发可以切进去的位置。未来很多 AI 应用,表面上是模型能力竞争,底层其实还是工程质量竞争。谁能把 RAG、Agent、MCP、评测、回归、观测、权限这些环节串起来,谁就更容易把 AI 从 Demo 推到生产。
对测试开发人来说,接下来值得投入的方向,不是单纯学习某一个工具,而是建立一套新的判断能力:看到一个 AI 功能,能拆出链路;看到一个 Agent,能看懂执行轨迹;看到一个 RAG 系统,能判断证据链是否可靠;看到一个 MCP 工具,能识别权限和参数边界;看到一批 AI 生成结果,能设计校验和回归方案。这就是 AI 工程进入测试开发之后,真正会拉开差距的地方。
