你可以用一个下午搭建一个聊天机器人。你可以将 LLM 接入 API,用 React 创建聊天界面,并在晚饭前部署好应用。
然后,有人要求你让它可靠地运行。
它将如何利用公司内部文档回答问题?如果模型调用了错误的工具,会发生什么?如何防止未经授权的数据访问?当 1,000 名用户同时发送请求时,会发生什么?你如何判断新的提示词或模型版本是否让应用的表现变差了?
突然之间,编写提示词成了整个问题中最小的一部分。
在本系列的第 1 部分中,我们探讨了 AI 工程的基础,从数学和机器学习,到 Transformer、LLM 和训练。这些基础知识帮助你理解模型内部发生了什么。
**第 2 部分将更进一步:**学习如何围绕模型构建实用的软件。
我将这 12 个 GitHub 开源仓库组织成了一条学习路径,从 API 集成开始,逐步深入 RAG、工具调用、AI 智能体、应用开发以及生产系统设计。
你不需要精通每一个仓库。你需要理解其中的概念,构建运用这些概念的项目,并学会让这些项目可靠地运行。
AI 工程路线图
这样的顺序是有意安排的。先学会如何调用模型,再加入检索和工具。只有在固定工作流不足以满足需求时,才引入智能体。然后,学习让应用可靠运行所需的架构。
1. OpenAI Cookbook:学习使用 LLM API
仓库:openai/openai-cookbook (https://github.com/openai/openai-cookbook)
难度: 初级到中级
OpenAI Cookbook 提供了使用 OpenAI API 的代码示例和指南。它涵盖了可以应用到你自己项目中的实用实现模式,其中大量示例代码使用 Python 编写。
学什么?
从 API 请求、对话处理、embedding、结构化输出、工具调用,以及智能体和检索相关的示例入手。
尤其要关注错误处理、输入准备,以及应用如何使用模型的响应。
前置知识: 基础编程、HTTP API、JSON 和环境变量。对于调用托管模型的示例,你需要具备相应的 API 访问权限。
动手项目: 创建一个小型 AI 支持助手,对用户请求进行分类,并返回一个经过验证的 JSON 对象,其中包含请求类别、优先级和建议的下一步操作。
完成后,你应该能够将 LLM 集成到后端服务中,并通过程序处理它的输出。
为什么从这里开始? 它让你认识到应用代码与模型之间的边界。当你加入检索、工具和智能体时,这条边界依然很重要。
2. Claude Cookbooks:探索另一种模型集成方式
仓库:anthropics/claude-cookbooks (https://github.com/anthropics/claude-cookbooks)
难度: 初级到中级
Claude Cookbooks 包含演示 Claude 使用方式的 notebook 和实践示例。示例涵盖分类、摘要、检索增强生成和工具使用等能力。大部分代码使用 Python。
学什么?
先探索你在上一个仓库中解决的同一个应用问题,然后研究另一种模型及其 API 如何表示输入、输出和工具交互。
前置知识: 基本的 API 集成和 JSON 处理。
动手项目: 实现一个具有明确输出要求的文档摘要工具。使用多份文档进行测试,并将结果与你的第一个实现进行比较。
完成后,你应该理解 AI 应用中的哪些部分属于应用架构,哪些部分取决于模型提供商。
这也是练习将模型专用代码与业务逻辑分离的好机会。通过提供商适配器,你可以更轻松地测试第二种模型,而不必重写整个应用。
3. Awesome LLM Apps:使用 RAG 构建完整应用
仓库:Shubhamsaboo/awesome-llm-apps (https://github.com/Shubhamsaboo/awesome-llm-apps)
难度: 初级到高级,取决于具体示例
这个合集包含开源 LLM 应用、RAG 实现、AI 智能体、多智能体项目和 MCP 集成。当你想了解各项技术如何组合成可运行的应用时,它尤其有用。
学什么?
从一个回答文档相关问题的基础 RAG 应用开始。
典型的 RAG 流水线如下:
导入文档,并将其拆分为文本块。
生成 embedding,并为文本块建立索引。
针对用户的问题检索相关段落。
将问题和检索到的上下文发送给模型。
返回带有来源引用的答案。
然后,研究检索在哪些情况下会失败。如果检索器返回了不相关的段落,或者遗漏了回答问题所需的信息,模型就无法给出有据可依的答案。
前置知识: LLM API 集成、基础 Python,以及对数据库的一般性了解。
动手项目: 创建一个聊天应用,回答与你自己的技术文档相关的问题,并将每个答案链接到对应来源。
完成后,你应该理解 RAG 应用的主要组件,并能够追踪一个问题在文档导入、检索和生成过程中的处理路径。
重要提示: 将检索质量与答案质量分开评估。区分这两者会让调试容易得多。
4. Hugging Face Agents Course:学习工具与智能体基础
仓库:huggingface/agents-course (https://github.com/huggingface/agents-course)
难度: 中级
Hugging Face Agents Course 是一门结构化课程,从智能体基础逐步深入智能体框架和实践作业。课程涵盖的工具和框架包括 smolagents、LangGraph 和 LlamaIndex,也包含集成 MCP 工具的相关内容。
学什么?
重点理解 LLM、它可以使用的工具,以及控制其执行的应用之间的关系。
例如,客服智能体可能需要查询订单、检查配送状态并起草回复。模型可以选择工具,但你的应用应在执行操作前验证参数并强制执行权限检查。
前置知识: API 集成、Python 和基本的 RAG 概念。
动手项目: 创建一个支持助手智能体,配备两个只读工具:搜索文档和查询订单状态。
完成后,你应该理解工具调用、智能体执行、框架抽象,以及控制智能体能力范围的重要性。
这也是理解 MCP 的良好起点。MCP 为兼容的客户端和服务器提供工具及其他上下文的方式制定了标准。它不会自动保障工具调用的安全,也不会赋予智能体访问所有资源的权限。
5. GenAI Agents:探索智能体架构与多智能体系统
仓库:NirDiamant/GenAI_Agents (https://github.com/NirDiamant/GenAI_Agents)
难度: 中级到高级
这个仓库包含生成式 AI 智能体技术的教程和实现,涵盖从对话机器人到更复杂的多智能体系统。
学什么?
研究智能体如何管理状态、选择工具、协调步骤,以及在操作失败时恢复。然后,探索由不同智能体负责专门任务的多智能体设计。
以一个收集信息、提取证据并撰写报告的研究助手为例。你可以先将它实现为单个智能体,再与一种将研究和审查分别委派给不同智能体的设计进行比较。
前置知识: 工具调用、Python,以及对智能体循环的基本理解。
动手项目: 创建一个包含检索、起草和核验步骤的研究工作流。将固定工作流与能够自行决定何时检索更多信息的智能体进行比较。
完成后,你应该能够比较不同的智能体架构,并判断编排何时能带来价值。
不要假设多个智能体会自动提高质量。它们可能带来额外的模型调用、延迟、协调失败,以及更复杂的调试过程。
6. AI Project Gallery:从 AI 应用项目中学习
仓库:KalyanM45/AI-Project-Gallery (https://github.com/KalyanM45/AI-Project-Gallery)
难度: 初级到中级
这个仓库收录了机器学习、深度学习和生成式 AI 领域的项目。示例包括预测系统、聊天机器人、文档相关工具和智能体工作流。它最适合作为探索方向和选择项目的资源。目录中的每个条目不一定都提供完整实现。
学什么?
观察 AI 技术如何对应到应用问题。将传统预测项目与聊天机器人或智能体工作流进行比较,明确各自对数据、模型和用户界面的要求。
前置知识: 基础编程,以及对通过 API 使用 AI 能力的应用有所了解。
动手项目: 选择一个与你的兴趣相关的项目,实现一个小型、可运行的版本。记录它的输入、输出、失败情形和评估方法。
完成后,你应该更擅长将 AI 概念转化为定义明确的软件项目。
7. System Prompts Leaks:研究提示词模式与安全风险
仓库:asgeirtj/system_prompts_leaks (https://github.com/asgeirtj/system_prompts_leaks)
难度: 中级
这个仓库收集了据称来自各种 AI 助手和编程工具的系统提示词记录。你可以将它作为研究公开可访问的指令设计示例,并思考其安全影响的资源。
学什么?
研究指令如何定义助手的角色、描述可用工具、约束响应,以及设定特定任务下的行为。同时,也要考察提示词注入、指令泄露和工具权限过宽的风险。
前置知识: 基本的提示词编写能力,以及对系统指令如何影响 AI 应用的理解。
动手项目: 为你自己的助手创建一套安全测试。测试内容应包括尝试覆盖其指令、请求未经授权的记录,以及滥用可用工具。
完成后,你应该能够识别提示词层面的常见弱点,并设计防御性测试。
公开的提示词合集并不能证明其中每条提示词都真实或仍然有效。不要试图绕过访问控制或获取私有提示词。在你自己的系统中,应将提示词视为一层防护,而不能用它替代由应用代码强制执行的授权机制。
8. Vibe Coding Playbook:系统地使用 AI 编程助手
仓库:priyanshop754/vibe-coding-playbook (https://github.com/priyanshop754/vibe-coding-playbook)
难度: 初级到中级
Vibe Coding Playbook 专注于结构化的 AI 辅助开发,包括提示词方法、分步实现、质量保证检查清单和团队工作流。
学什么?
使用 AI 编程工具协助实现功能,同时仍然对架构、测试和代码审查负责。
前置知识:
基础软件开发知识,以及对 Git 的了解。
动手项目: 让编程助手为你的 RAG 应用实现一个功能。要求它提供书面计划、采用小步实现、编写测试,并审查最终的 diff。
完成后,你应该掌握一种更容易重复执行的 AI 辅助开发方法,避免盲目接受生成的代码。
Vibe coding 可以加快实现速度。你仍然需要验证安全性、理解生成的代码,并测试正常流程之外的行为。
9. AI System Design Guide:设计生产环境中的 AI 系统
仓库:ombharatiya/ai-system-design-guide (https://github.com/ombharatiya/ai-system-design-guide)
难度: 中级到高级
这份指南专注于 AI 系统设计,包括 RAG 架构、智能体、模型选择、评估和生产工程。它也提供 AI 工程系统设计面试的相关资料。
学什么?
研究如何选择模型、组织推理和检索流水线、衡量质量,以及管理延迟和成本。关注安全边界和可观测性。
前置知识: 对 LLM 应用有实际理解,并具备基本的后端架构知识。
动手项目: 为你的文档助手设计一套生产架构,涵盖身份认证、文档导入、检索、推理、评估、日志记录和故障处理。
完成后,你应该能够明确说明各种权衡并讨论架构选择,而不是先选定框架,再围绕框架调整问题。
10. System Design Primer:学习 AI 底层的基础设施
仓库:donnemartin/system-design-primer (https://github.com/donnemartin/system-design-primer)
难度: 中级到高级
System Design Primer 涵盖通用的分布式系统概念,包括数据库、缓存、负载均衡、异步处理、复制和可扩展性。这些概念可以直接应用于 AI 应用。
学什么?
思考当你设计的文档助手迎来更多流量时,会发生什么。
缓存:在可以安全复用结果时,避免重复执行开销高昂的操作。
队列:将缓慢的文档导入和批处理移出请求—响应路径。
数据库:存储用户、文档、元数据、对话和任务状态。
负载均衡:将请求分配到不同的应用工作进程。
可观测性:追踪检索、模型调用和工具执行各环节中的故障。
前置知识: 基础后端开发,以及对 API 和数据库的了解。
动手项目: 绘制一张支持 1,000 名并发用户的系统图。识别瓶颈,定义超时和重试策略,并决定哪些操作应异步运行。
完成后,你应该理解传统分布式系统设计如何支撑可靠的 AI 服务。
模型的延迟、token 限制和推理成本,为常见的系统设计权衡增加了约束。
11. App Ideas:选择难度合适的项目
仓库:florinpop17/app-ideas (https://github.com/florinpop17/app-ideas)
难度: 初级到中级
App Ideas 根据项目所需的经验和技术,将软件项目划分为不同层级,涵盖面向用户的应用、基于 API 的项目,以及需要后端和数据库的应用。
学什么?
利用这些层级选择一个力所能及的项目,并随着技能提升逐步扩展它。
前置知识: 基础前端或后端开发。
动手项目: 选择一个简单的想法,例如任务管理器,并添加一项 AI 能力:通过自然语言创建任务、语义搜索或自动分类。
完成后,你应该能够为现有产品创意加入 AI,而不让模型负责每一项操作。
12. Project Ideas And Resources:将学习成果转化为作品集
仓库:The-Cool-Coders/Project-Ideas-And-Resources (https://github.com/The-Cool-Coders/Project-Ideas-And-Resources)
难度: 初级到高级,取决于具体项目
这个仓库提供了包含目标、用户故事和开发资源的项目创意。这种结构可以帮助你将一个有趣的想法转化为具体的实施计划。
学什么?
定义问题,将其拆解为用户故事,选择最小范围,并规划如何验证结果。
前置知识: 基础编程。对于 AI 项目,还需要运用前面阶段学到的 API、RAG、智能体和系统设计概念。
动手项目: 交付一个完整的 AI 应用。它应包括可运行的 UI、后端 API、必要的持久化存储、输入验证、测试、评估示例和部署文档。
完成后,你应该拥有一个可以演示并清楚讲解的项目:它解决了什么问题、如何使用模型、如何处理故障,以及架构还有哪些改进空间。
理解进阶过程:从 LLM 到生产环境中的 AI
这些仓库中的概念相互衔接,但解决的是不同的问题。
进阶过程如下:
LLM API → RAG → 工具调用 → 智能体 → 多智能体工作流 → 生产架构
每一步都会引入新的工程问题。
RAG 系统需要可靠的文档导入和检索。智能体引入了操作权限和执行限制。多智能体系统增加了协调问题和更多故障模式。生产架构则将所有这些问题与传统软件基础设施结合起来。
你不需要为每个问题都构建多智能体系统。固定工作流通常更容易测试、运维和维护。当问题确实能从自主决策中受益时,再加入自主能力。
完整的 AI 工程学习路径
这两个部分可以这样衔接:
第 1 部分:理解 AI
数学 → AI/ML → 生成式 AI → 提示词工程 → LLM → Transformer → 训练 → 深度学习研究
第 2 部分:构建 AI 软件
LLM API → RAG → 工具调用 → AI 智能体 → MCP → 多智能体系统 → AI 应用 → 系统设计 → 生产环境
始终遵循_学习 → 构建 → 实验 → 评估_的循环。每个仓库都应该帮助你解答当前项目中的一个问题。将实验规模控制在你能够理解的范围内,并衡量结果,而不是根据几个令人印象深刻的回答来判断整个系统。
最后的思考
理解 LLM 的工作原理是一种技能。围绕 LLM 构建可靠的产品,则是另一种截然不同的技能。
第 1 部分为你理解模型打下基础。第 2 部分帮助你通过检索、工具、智能体、应用开发和系统设计来运用这些知识。
你不需要学完全部十二个仓库才开始做项目。从 OpenAI Cookbook 入手,构建一个小型应用,并在遇到真实需求时逐步增加能力。
你的第一个项目不必是自主多智能体平台。一个能够检索到正确段落、引用来源、处理错误并保护私有数据的文档助手,就已经是一项有意义的工程实践。
选择一个问题,构建最小的实用版本,并让它可靠运行。然后利用下一个仓库来改进它。这就是将 AI 知识转化为 AI 工程经验的方法。
编程愉快!