# LearningAgent - AI 智能学习助手 > 基于 HelloAgents 框架的个性化学习助手,通过 AI 对话帮助你创建学习计划、记录知识和追踪学习进度 ## 📝 项目简介 LearningAgent 是一个智能学习助手,旨在帮助学习者: - **系统化学习**:根据领域描述、GitHub 项目或学术论文自动生成个性化学习路径 - **知识管理**:智能分类和标签化学习笔记,支持多种输入方式(文本/文件/URL) - **互动学习**:通过对话和问答巩固知识,提供自由对话和结构化测验两种模式 - **进度追踪**:自动评估学习进度,提供个性化学习建议 **适用场景**:编程学习、技能提升、学术论文研读、开源项目分析等 ## ✨ 核心功能 - [x] **智能学习计划生成** - 基于领域描述、GitHub 仓库或 PDF 论文自动生成学习路径 - [x] **智能知识笔记** - LLM 自动分析、分类和标签化,支持文本/文件/URL 三种输入 - [x] **互动式学习** - Free 模式(自由对话)和 Quiz 模式(结构化测验) - [x] **学习进度评估** - 分析学习计划、知识笔记和会话记录,生成进度报告 - [x] **流式输出** - 实时显示 AI 响应,提升用户体验 ## 🛠️ 技术栈 - **HelloAgents 框架**: - SimpleAgent(MainAgent、SummaryAgent) - ReActAgent(CreatePlanAgent) - ReflectionAgent(VibeLearningAgent) - **专业层智能体**:RepoAnalyzerAgent、PaperAnalyzerAgent、QuizGeneratorAgent - **核心技术**: - 三层 Agent 架构设计 - 混合策略摘要更新(<5个文件完全重写,≥5个增量更新) - 流式输出支持 - **LLM 提供商**:支持 OpenAI、DeepSeek、Qwen、ModelScope 等 10+ 服务 - **开发工具**:pytest、black、mypy、flake8 ## 🚀 快速开始 ### 环境要求 - Python 3.10+ - Conda(推荐)或 venv ### 安装依赖 ```bash # 克隆仓库 git clone https://github.com/Yixiang-Wu/learningAgent.git cd learningAgent # 创建 conda 虚拟环境 conda create -n learning-agent python=3.10 conda activate learning-agent # 安装依赖 pip install -r requirements.txt ``` ### 配置 API 密钥 ```bash # 复制环境变量模板 cp .env.example .env # 编辑 .env 文件,填入你的 API 密钥 # LLM_MODEL_ID=gpt-4o-mini # LLM_API_KEY=your_api_key_here # LLM_BASE_URL=https://api.openai.com/v1 ``` ### 运行项目 ```bash # 启动 LearningAgent REPL python main.py # 在 REPL 中使用命令 > /help # 显示帮助 > /create Python # 创建学习计划 > /add Python # 装饰器模式 # 添加知识笔记 > /vibe Python # 开始互动学习 > /vibe Python --mode quiz # 开始测验模式 > /summary Python # 查看学习总结 > /list # 列出所有学习领域 > /exit # 退出 ``` ## 📖 使用示例 ### 示例 1:创建学习计划 ```bash > /create Python ``` AI 会引导你: 1. 询问学习目标(如:"想在工作中应用"、"想达到研究生水平") 2. 分析领域/GitHub 项目/PDF 论文 3. 搜索最佳学习资源 4. 生成结构化的学习计划(保存到 `~/.learningAgent/{domain}/plan.md`) **生成计划示例**: ```markdown # Python 学习计划 ## 领域概述 Python 是一种高级编程语言... ## 前置知识检查清单 - [ ] 基本计算机概念 - [ ] 逻辑思维能力 ## 分阶段学习路径 ### 阶段 1:Python 基础(2-3周) - 变量和数据类型 - 控制流和函数 ... ## 推荐资源 - 书籍:《Python 编程:从入门到实践》 - 课程:廖雪峰 Python 教程 ... ``` ### 示例 2:添加知识笔记 ```bash # 文本输入 > /add Python # 装饰器模式 > /add 机器学习 决策树是一种监督学习算法... # 文件输入 > /add ~/notes/react-hooks.md # URL 输入 > /add https://blog.example.com/post ``` AI 会自动: 1. 分析内容并识别领域 2. 提取关键概念和标签 3. 生成带时间戳的文件名 4. 保存到 `~/.learningAgent/{domain}/knowledge/` 5. 更新知识摘要文件 **保存示例**: ``` ~/.learningAgent/ ├── Python/ │ ├── knowledge/ │ │ ├── 20250111-算法-Python-装饰器.md │ │ └── 20250111-通用-列表推导式.md │ └── knowledge_summary.md ``` ### 示例 3:互动学习 ```bash # Free 模式 - 自由对话 > /vibe Python # Quiz 模式 - 结构化测验 > /vibe Python --mode quiz ``` **Free 模式**: - AI 生成开放性问题,鼓励讨论 - 动态调整对话方向 - 引导深入思考 **Quiz 模式**: - 结构化测验题 - 自动评估答案 - 难度逐步递增 每次会话自动记录并生成总结。 ### 示例 4:查看学习总结 ```bash > /summary Python ``` 生成进度报告包含: 1. **当前水平评估** - 整体掌握度百分比、所处学习阶段 2. **知识点分析** - 掌握良好的知识点、需要加强的知识点 3. **下一步建议** - 具体学习主题推荐 4. **总体建议** - 鼓励和指导、学习策略调整 ## 🎯 项目亮点 ### 1. 三层 Agent 架构设计 清晰的职责分离: - **协调层**(Layer 1):MainAgent - 意图识别和路由 - **功能层**(Layer 2):CreatePlanAgent、VibeLearningAgent、SummaryAgent - **专业层**(Layer 3):RepoAnalyzerAgent、PaperAnalyzerAgent、QuizGeneratorAgent ### 2. 混合策略摘要更新 优化性能和存储: - **< 5 个文件**:完全重写摘要 - **≥ 5 个文件**:增量更新摘要 ### 3. 流式输出支持 实时显示 AI 响应,提升用户体验: - 自动检测终端能力 - 可配置启用/禁用 - 优雅处理累积块 ### 4. 智能知识管理 - LLM 自动分析和分类 - 支持多种输入方式(文本/文件/URL) - 提取关键概念和标签 - 生成结构化摘要 ### 5. 完整的测试覆盖 - 单元测试 > 80% 覆盖率 - 集成测试 - 真实环境测试 ## 📊 项目结构 ``` learningAgent/ ├── core/ # 核心层(基础设施) │ ├── main_agent.py # 主 Agent(协调层) │ ├── file_manager.py # 文件管理 │ └── summary_manager.py # 摘要管理(混合策略) ├── agents/ # 功能层(业务逻辑) │ ├── create_plan_agent.py # 创建学习计划(ReAct) │ ├── vibe_learning_agent.py # 互动学习(Reflection) │ └── summary_agent.py # 学习总结(Simple) ├── specialist/ # 专业层(专项能力) │ ├── repo_analyzer.py # GitHub 仓库分析 │ ├── paper_analyzer.py # PDF 论文分析 │ └── quiz_generator.py # 测验生成 ├── processors/ # 处理器 │ └── add_knowledge.py # 添加知识笔记 ├── cli/ # 命令行界面 │ └── repl.py # REPL 循环 ├── utils/ # 工具类 │ ├── streaming.py # 流式输出 │ ├── error_handlers.py # 错误处理 │ └── exceptions.py # 异常定义 ├── tests/ # 测试套件 ├── main.py # 入口文件 ├── requirements.txt # 依赖列表 └── README.md # 项目文档 ``` ## 🧪 运行测试 ```bash # 运行所有测试 pytest tests/ -v # 运行特定测试 pytest tests/test_agents/test_create_plan_agent.py -v # 查看测试覆盖率 pytest tests/ --cov=. --cov-report=term-missing ``` ## 🔮 未来计划 - [ ] Web UI 界面(基于 FastAPI + Vue) - [ ] 多语言支持 - [ ] 导出学习报告为 PDF - [ ] 集成更多 LLM 提供商 - [ ] 学习数据可视化 - [ ] 社区学习计划分享 ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request! ### 开发流程 1. Fork 本仓库 2. 创建特性分支(`git checkout -b feature/AmazingFeature`) 3. 提交更改(`git commit -m 'feat: Add some AmazingFeature'`) 4. 推送到分支(`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ### 代码规范 - 使用 `black` 格式化代码 - 使用 `mypy` 进行类型检查 - 使用 `flake8` 检查代码质量 - 编写单元测试 ## 📄 许可证 MIT License ## 👤 作者 - GitHub: [@Yixiang-Wu](https://github.com/Yixiang-Wu) - 项目链接: [learningAgent](https://github.com/Yixiang-Wu/learningAgent) ## 🙏 致谢 - [Datawhale](https://github.com/datawhalechina) 社区 - [Hello-Agents](https://github.com/datawhalechina/hello-agents) 框架 - 所有贡献者和学习者 --- **注意**:本项目作为 Hello-Agents 教程的毕业设计项目,旨在展示如何使用 HelloAgents 框架构建完整的多智能体应用。