# Jaspersoft Learn - AI Agent 开发教学项目 > **目标**:手把手教你从零构建一个完整的 AI Agent 系统 > **教学方式**:代码即文档,每一行代码都有详细解释 > **前置知识**:Python 基础(2年经验足够) --- ## 🎯 学习路径 本项目采用"渐进式构建"方式,从最简单的概念开始,逐步添加复杂度。 ``` 学习顺序: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Step 01 ──▶ Step 02 ──▶ Step 03 ──▶ Step 04 ──▶ Step 05 ──▶ Step 06 ──▶ Step 07 │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ ▼ ▼ Tool基础 State状态 简单Agent Memory RAG检索 自我修正 Multi-Agent 管理 记忆系统 ``` --- ## 📚 每个 Step 的内容 | Step | 主题 | 核心概念 | 完成后你将理解 | |------|------|---------|--------------| | **01** | Tool 工具系统 | 什么是 Tool,为什么需要 Tool | 如何设计可扩展的工具系统 | | **02** | State 状态管理 | 什么是 Agent State | 如何在 Agent 中传递信息 | | **03** | 简单 Agent | LLM + Tool + Loop = Agent | Agent 的核心工作原理 | | **04** | Memory 记忆 | 短期/长期/工作记忆 | 如何让 Agent "记住"上下文 | | **05** | RAG 知识检索 | 检索增强生成 | 如何让 Agent 知道"私有知识" | | **06** | Self-Correction | 自我修正循环 | 如何让 Agent 自动修复错误 | | **07** | Multi-Agent | 多 Agent 协作 | 如何构建 Agent 团队 | --- ## 🚀 快速开始 ### 环境准备 ```bash # 1. 创建虚拟环境 python -m venv venv .\venv\Scripts\activate # 2. 安装依赖 pip install langchain langchain-openai langchain-anthropic python-dotenv # 3. 配置环境变量 cp .env.example .env # 编辑 .env,填入你的 API Key ``` ### 开始学习 ```bash # Step 01: 理解 Tool cd step_01_tools python main.py # Step 02: 理解 State cd ../step_02_state python main.py # ...以此类推 ``` --- ## 📖 学习方法 ### 每一步的结构 ``` step_XX_xxx/ ├── README.md # 本步骤的概念讲解 ├── concept.py # 核心概念代码(有详细注释) ├── exercise.py # 练习题 ├── exercise_answer.py # 练习答案(先自己思考再看) └── main.py # 可运行的示例 ``` ### 如何使用本项目 1. **先读 README**:理解这个 Step 要学什么 2. **再看 concept.py**:跟着代码理解概念 3. **做 exercise.py**:巩固理解 4. **对照答案**:检查自己的理解 5. **运行 main.py**:看完整示例 --- ## 🎓 最终目标 完成所有 Step 后,你将能够: - [ ] 理解 Agent 的核心工作原理 - [ ] 设计可扩展的工具系统 - [ ] 实现状态管理和记忆系统 - [ ] 构建完整的 RAG 知识检索 - [ ] 实现 Agent 自我修正能力 - [ ] 设计多 Agent 协作系统 - [ ] 阅读并理解 jaspersoft 项目的源码 --- ## 🔗 参考资料 - [LangGraph 官方文档](https://langchain-ai.github.io/langgraph/) - [LangChain Tool Calling](https://python.langchain.com/docs/how_to/tool_calling/) - [Prompt Engineering Guide](https://www.promptingguide.ai/zh) --- ## 📝 贡献指南 发现错误或有改进建议?欢迎提交 PR! --- *本项目是学习用途,代码尽量写得清晰易懂,而非追求极致性能。*