返回市场
语言图谱-自定进度课程

语言图谱-自定进度课程

作者:ashishpatel268 星标更新:2025-11-20

项目介绍

🦜🕸️ LangGraph 自学课程

LangGraph Python Gemini

欢迎来到 终极 LangGraph 1.0 课程!🚀

本仓库旨在帮助您从完全初学者成长为使用 LangGraph 和 Google Gemini 构建生产级 自主代理 的开发者。


📚 如何学习

本课程遵循 “边做边学” 的理念。每个模块都是一个独立的小项目。

  1. 概念 (concept.md):首先阅读这部分以理解理论。
  2. 项目 (project.py):运行此部分以查看工作示例。
  3. 挑战 (challenge.py):一个损坏或不完整的脚本。您的任务是修复它!
  4. 解决方案 (solution.py):卡住了?检查参考答案。

🛠️ 环境设置

我们使用 uv 进行快速依赖管理。

  1. 安装 uv

    # Windows
    powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
    # macOS/Linux
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  2. 安装依赖项

    uv sync
    
  3. 设置 API 密钥: 将 .env.example 重命名为 .env 并添加您的 Google API 密钥

    cp .env.example .env
    # 编辑 .env 并添加 GOOGLE_API_KEY=...
    

🗺️ 课程概览

1. 基础知识:思维链

文件夹: 01-foundations

学习 节点状态图 的基础知识。我们将构建一个模拟思考过程的系统。

graph LR
    START((开始)) --> 规划者
    规划者 --> 分析者
    分析者 --> 结论者
    结论者 --> END((结束))
    
    style START fill:#f9f,stroke:#333,stroke-width:2px
    style END fill:#f9f,stroke:#333,stroke-width:2px
  • 目标:通过一系列函数传递状态字典。
  • 运行uv run 01-foundations/project.py

2. 状态管理:订单机器人

文件夹: 02-state-management

掌握 状态 模式。学习如何使用 Reducer(如 add_messages)并处理复杂的数据流。

graph LR
    START((开始)) --> 验证器
    验证器 --> 计算器
    计算器 --> 收据
    收据 --> END((结束))
  • 目标:验证订单,计算总价,并打印收据。
  • 运行uv run 02-state-management/project.py

3. 持久性:支持机器人

文件夹: 03-persistence

给您的代理添加 记忆!学习关于 检查点线程ID,以便在重启时记住对话。

graph TD
    START((开始)) --> 机器人
    机器人 --> END((结束))
    
    subgraph "💾 记忆保存器"
    机器人
    end
  • 目标:即使重新启动脚本,聊天机器人也能记住您的名字和问题。
  • 运行uv run 03-persistence/project.py

4. 人机交互:部署经理

文件夹: 04-human-in-the-loop

学习如何使用 interrupt_before 暂停执行以等待人工批准,并使用 命令 继续执行。

graph TD
    START((开始)) --> 准备
    准备 -->|中断| 部署
    部署 --> END((结束))
    
    style 部署 stroke:#f00,stroke-width:4px
  • 目标:一个部署系统,在“部署”代码之前等待您键入“yes”。
  • 运行uv run 04-human-in-the-loop/project.py

5. 工具使用:旅行代理

文件夹: 05-tool-use

构建一个真正的 ReAct 代理。学习如何将工具(函数)绑定到LLM,并让其决定何时调用它们。

graph TD
    START((开始)) --> 代理
    代理 -->|调用工具| 工具
    工具 --> 代理
    代理 -->|最终答案| END((结束))
  • 目标:一个能够搜索航班(并在挑战中查询天气)的代理。
  • 运行uv run 05-tool-use/project.py

6. MCP集成:数据库分析师

文件夹: 06-mcp-integration

使用 模型上下文协议(MCP) 将您的代理连接到世界。我们模拟与SQLite数据库的连接。

graph TD
    START((开始)) --> 代理
    代理 -->|MCP协议| SQLite[SQLite DB]
    SQLite --> 代理
    代理 --> END((结束))
  • 目标:一个能够查询数据库以回答有关用户和订单的问题的代理。
  • 运行uv run 06-mcp-integration/project.py

7. 特别项目:A2A + MCP

文件夹: 07-special-project-a2a-mcp

结合 代理间通信MCP工具

  • 侦察员:查找表。
  • 分析员:查询表。
graph LR
    START((开始)) --> 侦察员
    侦察员 -->|交接| 分析员
    分析员 --> END((结束))
    
    subgraph "分布式工具"
    侦察员 -.-> 列出表
    分析员 -.-> 运行查询
    end
  • 目标:一个管道,其中一个代理将关键信息传递给另一个代理以完成任务。
  • 运行uv run 07-special-project-a2a-mcp/project.py

8. 多代理编排:开发团队

文件夹: 08-multi-agent-orchestration

扩展!使用 监督模式 协调多个专业代理。

graph TD
    START((开始)) --> 监督员
    监督员 -->|路由| 编码员
    监督员 -->|路由| 测试员
    编码员 --> 监督员
    测试员 --> 监督员
    监督员 -->|完成| END((结束))
  • 目标:一个“监督员”,管理“编码员”和“测试员”编写和验证代码。
  • 运行uv run 07-multi-agent-orchestration/project.py

9. 最终项目:自主研究员

文件夹: 09-capstone-project

最终大Boss。将您学到的所有内容整合成一个强大的应用程序。

graph LR
    START((开始)) --> 研究员
    研究员 -->|草稿| 编辑员
    编辑员 -->|审查| END((结束))
    
    subgraph "工具"
    研究员 -.-> 搜索
    end
  • 目标:一个助手,研究主题,撰写草稿,并在最终确定前请求您的批准。
  • 运行uv run 08-capstone-project/main.py

🤝 贡献

如果您发现错误或希望添加更多挑战,请随时打开问题或PR!

祝编程愉快!🤖