🦜🕸️ LangGraph自主学习
  
欢迎来到 终极语言图谱1.0课程! 🚀
此存储库旨在将您从完全的初学者带到构建生产就绪 自治代理 使用LangGraph和谷歌Gemini。
______________________________________________________________________
📚 如何学习
本课程遵循 “边做边学” 哲学。每个模块都是一个独立的小项目。
- 概念(
concept.md):请先阅读此内容以了解 *理论*. - 项目(
project.py):运行此命令以查看 *工作实例*. - 挑战(
challenge.py):一个破碎/不完整的剧本。 你的工作就是修复它! - 解决方案(
solution.py):卡住了?检查参考答案。
______________________________________________________________________
🛠️ 设置
我们使用 紫外线 用于快速依赖管理。
- 安装uv:
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh- 再进行:
uv sync- 设置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!
快乐编码! 🤖
