291 lines
6.4 KiB
Markdown
291 lines
6.4 KiB
Markdown
# JasperSoft Agent Learn - 多平台学习指南
|
||
|
||
> 专为多平台分发设计的学习资料包 | 包含完整理论 + 代码 + 练习
|
||
|
||
---
|
||
|
||
## 📚 项目简介
|
||
|
||
**JasperSoft Agent Learn** 是一个面向 AI Agent 开发的学习项目,通过循序渐进的方式带你掌握 AI Agent 的核心概念。
|
||
|
||
### 核心模块
|
||
|
||
| 模块 | 内容 | 难度 |
|
||
|------|------|------|
|
||
| Step 01 | Tool - 工具系统 | ⭐ 基础 |
|
||
| Step 02 | State - 状态管理 | ⭐ 基础 |
|
||
| Step 03 | Simple Agent - 简单 Agent | ⭐⭐ 入门 |
|
||
| Step 04 | Memory - 记忆系统 | ⭐⭐ 中级 |
|
||
| Step 05 | RAG - 知识检索 | ⭐⭐⭐ 进阶 |
|
||
| Step 06 | Self-Correction - 自我修正 | ⭐⭐⭐ 进阶 |
|
||
| Step 07 | Multi-Agent - 多 Agent 协作 | ⭐⭐⭐⭐ 高级 |
|
||
|
||
---
|
||
|
||
## 🎯 学习路径
|
||
|
||
```
|
||
第1周 → Step 01~03(工具、状态、简单 Agent)
|
||
第2周 → Step 04(记忆系统)
|
||
第3周 → Step 05~07(进阶内容)
|
||
```
|
||
|
||
---
|
||
|
||
## 📦 文件结构说明
|
||
|
||
```
|
||
jaspersoft-agent-learn/
|
||
├── README.md # 你在这里!
|
||
├── LEARN_GUIDE.md # 学习指南(通用)
|
||
├── .env.example # 环境变量模板
|
||
│
|
||
├── step_01_tools/ # ★ Step 01: 工具系统
|
||
│ ├── README.md # 理论 + 架构图
|
||
│ ├── concept.py # 核心概念(详细注释)
|
||
│ ├── exercise.py # 练习题
|
||
│ ├── exercise_answer.py # 参考答案
|
||
│ └── main.py # 运行演示
|
||
│
|
||
├── step_02_state/ # ★ Step 02: 状态管理
|
||
│ ├── README.md
|
||
│ ├── concept.py
|
||
│ ├── exercise.py
|
||
│ ├── exercise_answer.py
|
||
│ └── main.py
|
||
│
|
||
├── step_03_simple_agent/ # ★ Step 03: 简单 Agent
|
||
│ ├── README.md
|
||
│ ├── concept.py
|
||
│ └── main.py
|
||
│
|
||
├── step_04_memory/ # ★ Step 04: 记忆系统
|
||
│ ├── README.md
|
||
│ └── concept.py
|
||
│
|
||
└── step_05_07_advanced/ # ★ Step 05-07: 进阶
|
||
├── README.md
|
||
└── concept.py
|
||
```
|
||
|
||
---
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 1. 环境准备
|
||
|
||
```bash
|
||
# 克隆项目
|
||
git clone https://gitea.1415243231.top/panda/jaspersoft-agent-learn.git
|
||
cd jaspersoft-agent-learn
|
||
|
||
# 创建虚拟环境(Python 3.9+)
|
||
python -m venv venv
|
||
source venv/bin/activate # Linux/Mac
|
||
# 或
|
||
.\venv\Scripts\activate # Windows
|
||
|
||
# 安装依赖
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### 2. 配置环境变量
|
||
|
||
```bash
|
||
cp .env.example .env
|
||
# 编辑 .env,填入你的 API Key
|
||
```
|
||
|
||
### 3. 开始学习
|
||
|
||
```bash
|
||
# Step 01: 工具系统
|
||
cd step_01_tools
|
||
python main.py
|
||
|
||
# Step 02: 状态管理
|
||
cd ../step_02_state
|
||
python main.py
|
||
|
||
# Step 03: 简单 Agent
|
||
cd ../step_03_simple_agent
|
||
python main.py
|
||
|
||
# Step 04: 记忆系统
|
||
cd ../step_04_memory
|
||
python main.py
|
||
|
||
# Step 05-07: 进阶(RAG / Self-Correction / Multi-Agent)
|
||
cd ../step_05_07_advanced
|
||
python main.py
|
||
```
|
||
|
||
---
|
||
|
||
## 📖 每个 Step 的学习方法
|
||
|
||
每个模块都包含:
|
||
|
||
| 文件 | 用途 | 学习顺序 |
|
||
|------|------|---------|
|
||
| `README.md` | 理论 + 架构图 | 1️⃣ 先读 |
|
||
| `concept.py` | 详细注释的代码 | 2️⃣ 再看 |
|
||
| `exercise.py` | 练习题 | 3️⃣ 自己做 |
|
||
| `exercise_answer.py` | 参考答案 | 4️⃣ 对照 |
|
||
| `main.py` | 运行演示 | 5️⃣ 运行 |
|
||
|
||
---
|
||
|
||
## 🔧 代码设计特点
|
||
|
||
### 1. 渐进式复杂度
|
||
|
||
```
|
||
Step 01: 工具 → 函数调用
|
||
Step 02: 状态 → 数据流
|
||
Step 03: 循环 → 自主决策
|
||
Step 04: 记忆 → 上下文
|
||
Step 05: RAG → 知识增强
|
||
Step 06: 修正 → 自我改进
|
||
Step 07: 协作 → 多Agent
|
||
```
|
||
|
||
### 2. 详细的代码注释
|
||
|
||
每个 `concept.py` 都包含:
|
||
- 为什么这样设计
|
||
- 核心概念解释
|
||
- 常见陷阱提醒
|
||
- 实际应用场景
|
||
|
||
### 3. 零依赖入门
|
||
|
||
- Step 01~03: 仅需 Python 标准库
|
||
- Step 04+:仅标准库(如需 LLM 调用,见 `config.py` 加载 `.env`)
|
||
- 无需 LangChain、LangGraph 等框架
|
||
|
||
---
|
||
|
||
## 💡 关键概念速查
|
||
|
||
### Tool(工具)
|
||
|
||
```python
|
||
# 工具的定义
|
||
class Tool:
|
||
name: str # 工具名称
|
||
description: str # 工具描述
|
||
parameters: dict # 参数定义
|
||
execute: Callable # 执行函数
|
||
```
|
||
|
||
### State(状态)
|
||
|
||
```python
|
||
# 状态管理
|
||
state = {
|
||
"messages": [...], # 对话历史
|
||
"context": {...}, # 上下文信息
|
||
"memory": [...], # 记忆
|
||
}
|
||
```
|
||
|
||
### Agent(Agent)
|
||
|
||
```python
|
||
# Agent 核心循环
|
||
while not done:
|
||
# 1. 思考 (Think)
|
||
thought = llm.think(state)
|
||
|
||
# 2. 行动 (Act)
|
||
action = llm.decide(thought)
|
||
result = tool.execute(action)
|
||
|
||
# 3. 观察 (Observe)
|
||
state.update(result)
|
||
```
|
||
|
||
---
|
||
|
||
## 📝 练习题示例
|
||
|
||
### Step 01 练习
|
||
|
||
```python
|
||
# 练习:创建一个计算器工具
|
||
# 1. 定义工具名称和描述
|
||
# 2. 实现加减乘除函数
|
||
# 3. 注册到工具注册表
|
||
# 4. 测试调用
|
||
|
||
def calculator_tool(operation: str, a: float, b: float) -> float:
|
||
"""计算器工具"""
|
||
# 你的代码
|
||
pass
|
||
```
|
||
|
||
### Step 02 练习
|
||
|
||
```python
|
||
# 练习:实现状态快照
|
||
# 1. 创建状态管理类
|
||
# 2. 实现状态保存/恢复
|
||
# 3. 添加状态版本追踪
|
||
|
||
class StateManager:
|
||
def save_snapshot(self, state):
|
||
# 你的代码
|
||
pass
|
||
```
|
||
|
||
---
|
||
|
||
## 🎓 学习目标
|
||
|
||
完成本项目后,你将掌握:
|
||
|
||
- [x] 理解 Tool 的定义和注册机制
|
||
- [x] 掌握 State 的设计模式
|
||
- [x] 能够构建简单的 Agent 循环
|
||
- [x] 实现多级记忆系统
|
||
- [x] 理解 RAG 架构
|
||
- [x] 掌握 Self-Correction 模式
|
||
- [x] 设计 Multi-Agent 协作系统
|
||
|
||
---
|
||
|
||
## 🔗 相关资源
|
||
|
||
### 内部项目
|
||
- **JasperSoft 主项目**: 同组织下的 `jaspersoft` 仓库 - LangGraph 实现参考
|
||
- **日报系统**: 同组织下的 `daily_on_work` 仓库 - 自动化工作流
|
||
|
||
### 外部资源
|
||
- [LangGraph 文档](https://langchain-ai.github.io/langgraph/)
|
||
- [RAG 最佳实践](https://www.pinecone.io/learn/rag/)
|
||
- [OpenAI Function Calling](https://platform.openai.com/docs/guides/function-calling)
|
||
|
||
---
|
||
|
||
## 🤝 贡献指南
|
||
|
||
欢迎提交 PR!贡献方式:
|
||
|
||
1. **发现 bug?** → 提 Issue 或直接修
|
||
2. **添加练习?** → 在对应 Step 添加
|
||
3. **完善注释?** → 提 PR
|
||
4. **分享笔记?** → 在 Issue 区分享
|
||
|
||
---
|
||
|
||
## 📄 许可证
|
||
|
||
MIT License - 欢迎自由使用、修改和分发
|
||
|
||
---
|
||
|
||
**开始学习吧!** 🚀
|
||
|
||
> 提示:建议从 Step 01 开始,循序渐进。每个模块都有练习题,推荐先自己思考,再看答案。
|