自主代理开发课程

这是一个使用LangGraph和Google Gemini从零开始构建生产级自主代理的自学课程,采用'边做边学'的方法,包含多个模块化项目。

  • by ashishpatel26
  • Python
  • 本地部署
  • 17 星标
  • 更新于
在 GitHub 查看 ashishpatel26/Langgraph-SelfPaced-Course

使用说明

🦜🕸️ LangGraph自主学习

欢迎来到 终极语言图谱1.0课程! 🚀

此存储库旨在将您从完全的初学者带到构建生产就绪 自治代理 使用LangGraph和谷歌Gemini。


📚 如何学习

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

  1. 概念(concept.md):请先阅读此内容以了解 理论.
  2. 项目(project.py):运行此命令以查看 工作实例.
  3. 挑战(challenge.py):一个破碎/不完整的剧本。 你的工作就是修复它!
  4. 解决方案(solution.py):卡住了?检查参考答案。

🛠️ 设置

我们使用 紫外线 用于快速依赖管理。

  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
    # Edit .env and add GOOGLE_API_KEY=...
    

🗺️ 课程概述

1.基础:思维链

文件夹: 01-foundations

学习以下基础知识 节点, 边缘,以及 状态图我们构建了一个模拟思维过程的系统。

graph LR
    START((Start)) --> Planner
    Planner --> Analyst
    Analyst --> Concluder
    Concluder --> END((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

大师 State 模式。学习如何使用 归约器 (比如 add_messages)并处理复杂的数据流。

graph LR
    START((Start)) --> Validator
    Validator --> Calculator
    Calculator --> Receipt
    Receipt --> END((End))
  • 目标:验证订单,计算总额,并打印收据。
  • 跑: uv run 02-state-management/project.py

3.坚持:支持机器人

文件夹: 03-persistence

添加 记忆 给你的代理人!了解 检查点 和 线程ID 记住重启时的对话。

graph TD
    START((Start)) --> Bot
    Bot --> END((End))
    
    subgraph "💾 MemorySaver"
    Bot
    end
  • 目标:一个聊天机器人,即使你重新启动脚本,它也会记住你的名字和问题。
  • 跑: uv run 03-persistence/project.py

4.循环中的人:部署管理器

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

学习如何 暂停 使用以下方式执行人工批准 interrupt_before 并继续 Command.

graph TD
    START((Start)) --> Prepare
    Prepare -->|Interrupt| Deploy
    Deploy --> END((End))
    
    style Deploy stroke:#f00,stroke-width:4px
  • 目标:一个部署系统,等待您在“部署”代码之前键入“yes”。
  • 跑: uv run 04-human-in-the-loop/project.py

5.工具使用:旅行社

文件夹: 05-tool-use

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

graph TD
    START((Start)) --> Agent
    Agent -->|Call Tool| Tools
    Tools --> Agent
    Agent -->|Final Answer| END((End))
  • 目标:一个可以搜索航班(以及挑战中的天气!)的代理。
  • 跑: uv run 05-tool-use/project.py

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

文件夹: 06-mcp-integration

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

graph TD
    START((Start)) --> Agent
    Agent -->|MCP Protocol| SQLite[SQLite DB]
    SQLite --> Agent
    Agent --> END((End))
  • 目标:可以查询数据库以回答有关用户和订单的问题的代理。
  • 跑: uv run 06-mcp-integration/project.py

7.特殊项目:A2A+MCP

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

合并 代理人对代理人 与…沟通 主控程序 工具。

  • 侦察兵:查找表。
  • 分析师:查询表格。
graph LR
    START((Start)) --> Scout
    Scout -->|Handoff| Analyst
    Analyst --> END((End))
    
    subgraph "Distributed Tools"
    Scout -.-> ListTables
    Analyst -.-> RunQuery
    end
  • 目标:一个代理将关键信息传递给另一个代理以解决任务的管道。
  • 跑: uv run 07-special-project-a2a-mcp/project.py

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

文件夹: 08-multi-agent-orchestration

扩大规模!使用 主管模式.

graph TD
    START((Start)) --> Supervisor
    Supervisor -->|Route| Coder
    Supervisor -->|Route| Tester
    Coder --> Supervisor
    Tester --> Supervisor
    Supervisor -->|Finish| END((End))
  • 目标:一个“主管”,管理一个“程序员”和一个“测试员”来编写和验证代码。
  • 跑: uv run 07-multi-agent-orchestration/project.py

9.Capstone:自主研究者

文件夹: 09-capstone-project

最后的老板。将你所学到的一切整合到一个强大的应用程序中。

graph LR
    START((Start)) --> Researcher
    Researcher -->|Draft| Editor
    Editor -->|Review| END((End))
    
    subgraph "Tools"
    Researcher -.-> Search
    end
  • 目标:研究主题、撰写草稿并在定稿前征求您批准的助理。
  • 跑: uv run 08-capstone-project/main.py

🤝 贡献

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

快乐编码! 🤖