内容

# 高级智能系统强化课程
该存储库包含 O'Reilly 直播课程的代码:[高级智能系统强化课程](https://learning.oreilly.com/live-events/advanced-agentic-systems-intensive/0642572350505/) 和 [AI 工程强化课程](https://www.oreilly.com/live-events/ai-engineering-intensive/0642572375317/0642572375300/)。
这些为期三周的强化课程超越了 RAG 和智能代理的入门级内容,旨在构建高级 AI 工作流、模型和检索系统,具备多跳推理、查询规划等功能。我们涵盖了智能 RAG、MCP、多智能体编排、长期记忆、智能代理、训练后和生产级评估等内容。通过现场编码和生产系统案例研究,您将学习到将演示与可靠、可交付的 AI 系统区分开来的架构模式、评估框架和部署策略。
存储库中包含现场编码的笔记本、共享实用程序和在整个课程中使用的异构基准。
## 安装
### 使用 Python 3.11 虚拟环境
在编写时,我们需要一个 Python 虚拟环境,Python 版本为 3.11 或更高。
#### 步骤 1:创建和激活环境
```bash
python3.11 -m venv .venv
source .venv/bin/activate # macOS/Linux
# .venv\Scripts\activate # Windows
pip install -r requirements.txt
```
#### 步骤 2:配置 API 密钥
复制 `.env.example` 到 `.env` 并至少添加一个 `OPENROUTER_API_KEY`。一个密钥可以访问课程中使用的所有模型(OpenAI、Anthropic、DeepSeek、Llama、Qwen、Grok 等)。
#### 步骤 3:一次性构建语料库
运行 [`notebooks/week1/0_build_corpus.ipynb`](notebooks/week1/0_build_corpus.ipynb)。它会抓取 Beehiiv,拉取维基百科 AI 历史切片,采样 HotpotQA,并将 Chroma 索引 + BM25 索引 + 金标准写入 `notebooks/week1/data/`。这是幂等的 - 一旦缓存,重新运行是无操作的。
#### 步骤 4:打开笔记本 1 并开始
```bash
python3 -m jupyter notebook
```
## 笔记本
### 第一周 - 高级工作流、RAG 和上下文
| # | 笔记本 | 课程部分 |
|-----|-------------------------------------------------------------------------------------------------------|------------|
| 0 | [`0_build_corpus.ipynb`](notebooks/week1/0_build_corpus.ipynb) | 设置(运行一次) |
| 1 | [`1_rag_workflows.ipynb`](notebooks/week1/1_rag_workflows.ipynb) | S1 - 高级工作流 + 简单 RAG 失效的地方 |
| 2 | [`2_multi_hop_and_query_decomposition.ipynb`](notebooks/week1/2_multi_hop_and_query_decomposition.ipynb) | S2 - 多跳检索 + 查询分解 |
| 3 | [`3_hybrid_search_rerank_grade.ipynb`](notebooks/week1/3_hybrid_search_rerank_grade.ipynb) | S3 - 混合搜索、重排序、过滤 |
| 4 | [`4_context_window_optimization.ipynb`](notebooks/week1/4_context_window_optimization.ipynb) | S4 - 上下文窗口优化 |
| 5 | [`5_adaptive_rag_capstone.ipynb`](notebooks/week1/5_adaptive_rag_capstone.ipynb) | S5 - 智能 RAG + 4 路比拼 |
第一周的主线是一个**自适应 RAG 环路**(`检索 -> 重排序 -> 评分 -> 间隙分析 -> 迭代`),与多个 OpenRouter 模型上的三种工具调用智能体变体进行对比。
### 第二周 - 多智能体系统、MCP 和记忆
| # | 笔记本 | 课程部分 |
|-----|-------------------------------------------------------------------------------------------|------------|
| 0 | [`0_supervisor_vs_solo.ipynb`](notebooks/week2/0_supervisor_vs_solo.ipynb) | S1 - 独立 / 监督 / 分层 / 对等拓扑,衡量 |
| 1 | [`1_mcp_orchestration.ipynb`](notebooks/week2/1_mcp_orchestration.ipynb) | S2 - MCP + 工具编排:四种布线模式,比拼 |
| 2 | [`2_memory_systems.ipynb`](notebooks/week2/2_memory_systems.ipynb) | S3 - 长期记忆:语义、情景、程序 |
| 3 | [`3_context_compression.ipynb`](notebooks/week2/3_context_compression.ipynb) | S4 - 上下文压缩:五种策略比拼下的规则生存 |
| 4 | [`4_checkpointing_resumable.ipynb`](notebooks/week2/4_checkpointing_resumable.ipynb) | S5 - 检查点:崩溃恢复、历史、时间旅行、HITL |
| — | [`apps/sdr_multi_agent/`](apps/sdr_multi_agent/) | S6 - 顶点:监督 + 记忆 + 检查点在一个 Flask/Celery 应用中 |
生产代码位于 [`src/`](src/)(`multi_agent/`、`mcp_demo/`、`memory/`、`middleware/`、`shared/`);笔记本是调用它的薄薄的演练。顶点将相同的基元连接到一个使用 `USE_SUPERVISOR=1` 和 `USE_MEMORY_AGENT=1` 的真实 SDR 应用中。有关运行顺序、成本和架构,请参见 [`notebooks/week2/README.md`](notebooks/week2/README.md)。
### 第三周 - 评估、扩大记忆和顶点智能体
| # | 笔记本 | 课程部分 |
|-----|---------------------------------------------------------------------------------------------------|------------|
| 1 | [`1_judge_meta_eval.ipynb`](notebooks/week3/1_judge_meta_eval.ipynb) | S1 - 作为评估系统的 LLM 评委:协议、流畅度 / 置信度 / 格式 / 搜索证据偏差 |
| 2 | [`2_dspy_judge_optimization.ipynb`](notebooks/week3/2_dspy_judge_optimization.ipynb) | S2 - 使用 DSPy `BootstrapFewShotWithRandomSearch` 在探测加权指标上优化评委 |
| 3 | [`3_memory_benchmarks.ipynb`](notebooks/week3/3_memory_benchmarks.ipynb) | S3 - 语义 / 情景 / 程序记忆基准:召回、延迟、成本、及时技能召回 |
| 4 | [`4_plan_act_bakeoff.ipynb`](notebooks/week3/4_plan_act_bakeoff.ipynb) | S4 - 计划-然后-行动 vs. 直接行动 vs. 轨迹探测路由:在 5 种策略下进行配对 McNemar |
| 5 | [`5_agent_workflow_api.ipynb`](notebooks/week3/5_agent_workflow_api.ipynb) | S5 - 将智能体工作流作为真实服务交付(部署 + 测试 `agent_api` 应用) |
| — | [`apps/agent_api/`](apps/agent_api/) | S5 配对应用 - 具有 SerpAPI + Firecrawl、Prometheus 指标、SQLite 工件存储和 FastMCP 包装器的 FastAPI 计划/研究/反映/工件工作流 |
| — | [`apps/forge/`](apps/forge/) | S6 - 顶点:Forge,一个端到端的编码智能体(Electron UI + FastAPI 后端),具有 3 层记忆,每个线程的 LLM 评委评估,异步反射,MCP 安装/卸载和持久 + 短暂的子智能体 |
第三周的主线是 **评估即产品**:关于评委、记忆层或规划策略的每个声明都需要配对比较和探测加权指标,而不是凭直觉。笔记本 1-2 暴露评委的偏差,然后优化它;笔记本 3-4 将这种视角转向记忆和计划-行动选择;笔记本 5 + 两个应用将这些经验教训交付到一个真实的服务和一个真实的智能体中。有关运行顺序、成本和架构,请参见 [`notebooks/week3/README.md`](notebooks/week3/README.md) 和 [`apps/forge/README.md`](apps/forge/README.md)。
## 先决条件
- 中级到高级 Python(异步、类、多文件项目)。
- 熟悉 LLM API(OpenAI / Anthropic / OpenRouter)。
- 有 RAG 经验(嵌入、向量数据库、基本管道)。
- 熟悉至少一种智能体框架(LangChain、LangGraph、CrewAI 等)。本课程 **不涵盖** 智能体基础知识。
## 推荐准备
- 阅读:Sinan Ozdemir 的 *Building Agentic AI* - [O'Reilly](https://learning.oreilly.com/library/view/building-agentic-ai/9780135489710/) · [Amazon](https://a.co/d/eaTeURV)
- 阅读:Sinan Ozdemir 的 *Quick Start Guide to Large Language Models*(第 2 版)- [O'Reilly](https://learning.oreilly.com/library/view/quick-start-guide/9780135346570/) · [Amazon](https://www.amazon.com/Quick-Start-Guide-Language-Models-dp-0135346568/dp/0135346568)
- 观看:Sinan Ozdemir 的 [Quick Start Guide to Large Language Models: ChatGPT, Llama, Embeddings, Fine-Tuning and Multimodal AI](https://learning.oreilly.com/videos/-/9780135384800/)
- 探索:Sinan Ozdemir 的 [AI Unveiled Expert Playlist](https://learning.oreilly.com/playlists/0c7b9a4a-de71-4235-864e-c23c64473276/)
- [`oreilly-langgraph`](https://github.com/sinanuozdemir/oreilly-langgraph) - 本课程建立在其基础上的入门课程
- [`oreilly-ai-agents`](https://github.com/sinanuozdemir/oreilly-ai-agents) - 更广泛的智能体框架调查
## 推荐后续学习
- 观看:Sinan Ozdemir 的 [Designing and Optimizing LLM Pipelines](https://learning.oreilly.com/live-events/designing-and-deploying-llm-pipelines/0642572014796/)
- 观看:Sinan Ozdemir 的 [Modern AI Agents](https://learning.oreilly.com/course/modern-ai-agents/9780135882634/)
## 存储库布局
```
notebooks/
week1/
0_build_corpus.ipynb
1_..ipynb ... 5_adaptive_rag_capstone.ipynb
llm.py # OpenRouter 模型注册 + 工厂
corpus.py # 预建索引 + 金标准的加载器
retrievers.py # 混合(BM25 + 密集 + RRF),交叉编码器重排序
judges.py # Pydantic 规则 + LLM 评委助手
eval_harness.py # 多变体 x 多模型评估运行器
data/ # gitignored:语料库缓存,Chroma DB,金标准,结果
week2/
0_supervisor_vs_solo.ipynb ... 4_checkpointing_resumable.ipynb
_path_setup.py # 将存储库根添加到 sys.path,以便笔记本导入 src/
data/ # gitignored:记忆存储,检查点 SQLite,比拼 CSV
week3/
1_judge_meta_eval.ipynb ... 5_agent_workflow_api.ipynb
bakeoff_lib.py # 配对 McNemar 套件,用于计划/行动比拼
judge_eval.py # 探测加权运行器,对抗评委金标准
plan_act_alts.py # 测试中的替代策略
data/ # 跟踪金标准 + 优化的评委提示;时间戳运行 CSV gitignored
src/ # 在第 2/3 周的笔记本 + 应用中共享的生产代码
multi_agent/ # 独立 / 监督 / 分层 / 对等拓扑
mcp_demo/ # 教学 MCP 服务器 + 4 个客户端布线模式
memory/ # 语义 / 情景 / 程序 + 反射
middleware/ # 会话压缩 AgentMiddleware 类
shared/ # 检查点工厂 + OpenRouter + Ollama LLM 助手
apps/
sdr_multi_agent/ # 第二周顶点:Flask + Celery + MCP + 监督
agent_api/ # 第三周 S5:FastAPI 计划/研究/反映/工件 + FastMCP 包装器
forge/ # 第三周顶点:Electron + FastAPI 编码智能体
# forge/ Python 后端(引擎、记忆、评估、MCP、服务器、TUI)
# electron/ React/TS UI(聊天、记忆、评估、智能体、MCP、设置)
# mcp_servers/ 内置 fs/git/shell/code/repo_rag MCP 服务器
## 讲师
**Sinan Ozdemir** 是 Crucible 的创始人,这是一个 AI 工厂平台,帮助团队将现有工作流转换为自定义模型。他是 Y Combinator 校友,Tola Capital 的 AI 和 LLM 顾问,数据科学和机器学习领域多本畅销书的作者,包括 *Building Agentic AI*、*Quick Start Guide to LLMs* 和 *Principles of Data Science*。Sinan 曾是约翰霍普金斯大学的数据科学讲师,Kylie.ai 的创始人(2014 年被收购)。他拥有约翰霍普金斯大学的纯数学硕士学位,现居住在加利福尼亚州旧金山。
连接信息
猜你喜欢
暂无推荐服务器