langchain-ai/deep-agents-from-scratch

GitHub: langchain-ai/deep-agents-from-scratch

该项目通过五个循序渐进的教程,教授如何使用 LangGraph 从零构建具备任务规划、文件系统上下文卸载和子 Agent 委派能力的深度 AI Agent。

Stars: 757 | Forks: 318

# 🧱 从零构建 Deep Agents Screenshot 2025-08-12 at 2 13 54 PM [Deep Research](https://academy.langchain.com/courses/deep-research-with-langgraph) 与编程一起,成为了首批主要的 agent 用例之一。现在,我们看到了能够用于广泛任务的通用 agent 正在不断涌现。例如,[Manus](https://manus.im/blog/Context-Engineering-for-AI-Agents-Lessons-from-Building-Manus) 在处理长周期任务方面获得了极大的关注和普及;平均每个 Manus 任务会使用约 50 次工具调用!作为第二个例子,Claude Code 也被广泛用于编程之外的任务。仔细研究这些流行的“深度” agent 中的[上下文工程模式](https://docs.google.com/presentation/d/16aaXLu40GugY-kOpqDU4e-S0hD1FmHcNyF0rRRnb1OU/edit?slide=id.p#slide=id.p),可以发现一些共同的方法: * **任务规划(例如 TODO),通常伴随背诵** * **上下文卸载到文件系统** * **通过 sub-agent 委派实现上下文隔离** 本课程将展示如何使用 LangGraph 从零开始实现这些模式! ## 🚀 快速开始 ### 前置条件 - 确保你使用的是 Python 3.11 或更高版本。 - 此版本是与 LangGraph 实现最佳兼容性所必需的。 ``` python3 --version ``` - [uv](https://docs.astral.sh/uv/) 包管理器 ``` curl -LsSf https://astral.sh/uv/install.sh | sh # 更新 PATH 以使用新版本的 uv export PATH="/Users/$USER/.local/bin:$PATH" ``` ### 安装 1. 克隆仓库: ``` git clone https://github.com/langchain-ai/deep-agents-from-scratch.git cd deep-agents-from-scratch ``` 2. 安装包和依赖项(这会自动创建并管理虚拟环境): ``` uv sync ``` 3. 在项目根目录下创建一个 `.env` 文件并填入你的 API 密钥: ``` # 创建 .env 文件 touch .env ``` 将你的 API 密钥添加到 `.env` 文件中: ``` # 带有 external search 的 research agents 所需 TAVILY_API_KEY=your_tavily_api_key_here # model 使用所需 ANTHROPIC_API_KEY=your_anthropic_api_key_here # 可选:用于 evaluation 和 tracing LANGSMITH_API_KEY=your_langsmith_api_key_here LANGSMITH_TRACING=true LANGSMITH_PROJECT=deep-agents-from-scratch ``` 4. 使用 uv 运行 notebook 或代码: ``` # 直接运行 Jupyter notebooks uv run jupyter notebook # 或者如果愿意,可以激活 virtual environment source .venv/bin/activate # On Windows: .venv\Scripts\activate jupyter notebook ``` ## 📚 教程概述 本仓库包含五个循序渐进的 notebook,教你构建高级 AI agent: ### `0_create_agent.ipynb` - 学习如何使用 create_agent 组件。该组件: - 实现了构成许多 agent 基础的 ReAct(Reason - Act)循环。 - 易于使用且设置快捷。 - 作为后续课程的基础。 ### `1_todo.ipynb` - 任务规划基础 学习使用 TODO 列表实现结构化的任务规划。本 notebook 介绍了: - 带状态管理的任务跟踪(pending/in_progress/completed) - 进度监控与上下文管理 - 用于组织复杂多步骤工作流的 `write_todos()` 工具 - 保持专注和防止任务漂移的最佳实践 ### `2_files.ipynb` - 虚拟文件系统 实现一个存储在 agent state 中的虚拟文件系统以进行上下文卸载: - 文件操作:`ls()`、`read_file()`、`write_file()`、`edit_file()` - 通过信息持久化进行上下文管理 - 跨对话轮次启用 agent “记忆” - 通过将详细信息存储在文件中来减少 token 使用量 ### `3_subagents.ipynb` - 上下文隔离 掌握用于处理复杂工作流的 sub-agent 委派: - 创建具有专注工具集的专业 sub-agent - 通过上下文隔离防止混淆和任务干扰 - `task()` 委派工具和 agent 注册表模式 - 针对独立研究流的并行执行能力 ### `4_full_agent.ipynb` - 完整的研究 Agent 将所有技术整合到一个可用于生产环境的研究 agent 中: - 集成 TODO、文件和 sub-agent - 具备智能上下文卸载的真实网络搜索 - 内容摘要和战略思维工具 - 结合 LangGraph Studio 集成的复杂研究任务完整工作流 每个 notebook 都建立在前面的概念之上,最终形成一种能够处理现实世界研究和分析任务的复杂 agent 架构。
标签:AI教程, AI智能体, LangGraph, NoSQL, Python, 上下文工程, 任务规划, 无后门, 逆向工具