Add multi-platform learning guide and update README
This commit is contained in:
@@ -1,124 +1,161 @@
|
||||
# Jaspersoft Learn - AI Agent 开发教学项目
|
||||
# JasperSoft Agent Learn
|
||||
|
||||
> **目标**:手把手教你从零构建一个完整的 AI Agent 系统
|
||||
> **教学方式**:代码即文档,每一行代码都有详细解释
|
||||
> **前置知识**:Python 基础(2年经验足够)
|
||||
> AI Agent 开发学习项目 | 从零到一掌握 Agent 核心概念
|
||||
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
[](https://www.python.org/)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 学习路径
|
||||
## 🎯 这是什么?
|
||||
|
||||
本项目采用"渐进式构建"方式,从最简单的概念开始,逐步添加复杂度。
|
||||
一个渐进式的 AI Agent 开发学习项目,通过 **7 个 Step** 带你从零掌握 AI Agent 的核心概念:
|
||||
|
||||
```
|
||||
学习顺序:
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
Step 01 ──▶ Step 02 ──▶ Step 03 ──▶ Step 04 ──▶ Step 05 ──▶ Step 06 ──▶ Step 07
|
||||
│ │ │ │ │ │ │
|
||||
▼ ▼ ▼ ▼ ▼ ▼ ▼
|
||||
Tool基础 State状态 简单Agent Memory RAG检索 自我修正 Multi-Agent
|
||||
管理 记忆系统
|
||||
```
|
||||
| Step | 主题 | 你将学会 |
|
||||
|------|------|---------|
|
||||
| 01 | Tool 工具系统 | 如何定义和注册工具 |
|
||||
| 02 | State 状态管理 | 如何管理 Agent 的状态 |
|
||||
| 03 | Simple Agent | 如何构建 Agent 循环 |
|
||||
| 04 | Memory 记忆 | 如何让 Agent 记住对话 |
|
||||
| 05 | RAG 知识检索 | 如何让 Agent 查阅知识库 |
|
||||
| 06 | Self-Correction | 如何让 Agent 自我修正 |
|
||||
| 07 | Multi-Agent | 如何构建多 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 团队 |
|
||||
### 第 1 周:基础(Step 01-03)
|
||||
- Day 1-2: 理解 Tool 系统
|
||||
- Day 3-4: 掌握 State 管理
|
||||
- Day 5-7: 构建简单 Agent
|
||||
|
||||
### 第 2 周:进阶(Step 04-07)
|
||||
- Day 8-9: 多级记忆系统
|
||||
- Day 10-11: RAG 与知识增强
|
||||
- Day 12-13: 自我修正模式
|
||||
- Day 14: 多 Agent 协作
|
||||
|
||||
---
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
### 环境准备
|
||||
|
||||
### 1. 克隆项目
|
||||
```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
|
||||
git clone https://www.1415243231.top/gitea/panda/jaspersoft-agent-learn.git
|
||||
cd jaspersoft-agent-learn
|
||||
```
|
||||
|
||||
### 开始学习
|
||||
|
||||
### 2. 安装依赖
|
||||
```bash
|
||||
python -m venv venv
|
||||
source venv/bin/activate # Linux/Mac
|
||||
.\venv\Scripts\activate # Windows
|
||||
pip install python-dotenv
|
||||
```
|
||||
|
||||
### 3. 开始学习
|
||||
```bash
|
||||
# Step 01: 理解 Tool
|
||||
cd step_01_tools
|
||||
python main.py
|
||||
|
||||
# Step 02: 理解 State
|
||||
cd ../step_02_state
|
||||
python main.py
|
||||
|
||||
# ...以此类推
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📖 学习方法
|
||||
|
||||
### 每一步的结构
|
||||
每个 Step 都包含:
|
||||
|
||||
```
|
||||
step_XX_xxx/
|
||||
├── README.md # 本步骤的概念讲解
|
||||
├── concept.py # 核心概念代码(有详细注释)
|
||||
├── exercise.py # 练习题
|
||||
├── exercise_answer.py # 练习答案(先自己思考再看)
|
||||
└── main.py # 可运行的示例
|
||||
step_XX_name/
|
||||
├── README.md # 理论 + 架构图(先读)
|
||||
├── concept.py # 详细注释代码(再看)
|
||||
├── exercise.py # 练习题(自己做)
|
||||
├── exercise_answer.py # 参考答案(对照)
|
||||
└── main.py # 运行演示
|
||||
```
|
||||
|
||||
### 如何使用本项目
|
||||
---
|
||||
|
||||
1. **先读 README**:理解这个 Step 要学什么
|
||||
2. **再看 concept.py**:跟着代码理解概念
|
||||
3. **做 exercise.py**:巩固理解
|
||||
4. **对照答案**:检查自己的理解
|
||||
5. **运行 main.py**:看完整示例
|
||||
## 💡 核心概念预览
|
||||
|
||||
### Tool(工具)
|
||||
```python
|
||||
class Tool:
|
||||
name: str # 工具名称
|
||||
description: str # 工具描述
|
||||
execute: Callable # 执行函数
|
||||
```
|
||||
|
||||
### State(状态)
|
||||
```python
|
||||
state = {
|
||||
"messages": [...], # 对话历史
|
||||
"context": {...}, # 上下文
|
||||
"memory": [...], # 记忆
|
||||
}
|
||||
```
|
||||
|
||||
### Agent 循环
|
||||
```python
|
||||
while not done:
|
||||
thought = think(state) # 思考
|
||||
action = decide(thought) # 决策
|
||||
result = execute(action) # 执行
|
||||
observe(state, result) # 观察
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎓 最终目标
|
||||
## 🎓 学习目标
|
||||
|
||||
完成所有 Step 后,你将能够:
|
||||
完成本项目后,你将能够:
|
||||
|
||||
- [ ] 理解 Agent 的核心工作原理
|
||||
- [ ] 设计可扩展的工具系统
|
||||
- [ ] 实现状态管理和记忆系统
|
||||
- [ ] 构建完整的 RAG 知识检索
|
||||
- [ ] 实现 Agent 自我修正能力
|
||||
- [ ] 设计多 Agent 协作系统
|
||||
- [ ] 阅读并理解 jaspersoft 项目的源码
|
||||
- ✅ 理解 Tool 的定义和注册机制
|
||||
- ✅ 掌握 State 的设计模式
|
||||
- ✅ 能够构建简单的 Agent 循环
|
||||
- ✅ 实现多级记忆系统
|
||||
- ✅ 理解 RAG 架构
|
||||
- ✅ 掌握 Self-Correction 模式
|
||||
- ✅ 设计 Multi-Agent 协作系统
|
||||
|
||||
---
|
||||
|
||||
## 🔗 参考资料
|
||||
## 📝 项目结构
|
||||
|
||||
- [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)
|
||||
```
|
||||
jaspersoft-agent-learn/
|
||||
├── LEARN_GUIDE.md # 详细学习指南
|
||||
├── README.md # 项目概览
|
||||
├── .env.example # 环境变量模板
|
||||
│
|
||||
├── step_01_tools/ # 工具系统
|
||||
├── step_02_state/ # 状态管理
|
||||
├── step_03_simple_agent/ # 简单 Agent
|
||||
├── step_04_memory/ # 记忆系统
|
||||
└── step_05_07_advanced/ # RAG/修正/多Agent
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📝 贡献指南
|
||||
## 🔗 相关链接
|
||||
|
||||
发现错误或有改进建议?欢迎提交 PR!
|
||||
- 📂 **详细学习指南**: [LEARN_GUIDE.md](./LEARN_GUIDE.md)
|
||||
- 🏠 **主项目**: [JasperSoft](https://www.1415243231.top/gitea/panda/jaspersoft)
|
||||
- 📊 **日报系统**: [Daily On Work](https://www.1415243231.top)
|
||||
|
||||
---
|
||||
|
||||
*本项目是学习用途,代码尽量写得清晰易懂,而非追求极致性能。*
|
||||
## 🤝 参与贡献
|
||||
|
||||
欢迎提交 Issue 和 PR!
|
||||
|
||||
---
|
||||
|
||||
## 📄 许可证
|
||||
|
||||
MIT License
|
||||
|
||||
---
|
||||
|
||||
**开始你的 AI Agent 学习之旅吧!** 🚀
|
||||
|
||||
Reference in New Issue
Block a user