nanobot 学习路线图

本文档提供了一个可视化的学习路线,帮助你系统地掌握 nanobot 项目。

整体学习架构

graph TB
    Start[开始学习] --> Layer1[第一层: 项目结构]
    Layer1 --> Layer2[第二层: 核心概念]
    Layer2 --> Layer3[第三层: Agent核心]
    Layer3 --> Layer4[第四层: 工具系统]
    Layer4 --> Layer5[第五层: 高级特性]
    Layer5 --> Layer6[第六层: 多渠道]
    Layer6 --> Layer7[第七层: 扩展开发]
    
    Layer1 --> |基础| Doc01[01-项目结构与架构]
    Layer1 --> |基础| Doc02[02-CLI命令入口]
    
    Layer2 --> |初级| Doc03[03-配置系统]
    Layer2 --> |初级| Doc04[04-消息总线]
    
    Layer3 --> |中级| Doc05[05-Agent核心循环]
    Layer3 --> |中级| Doc06[06-上下文构建]
    Layer3 --> |中级| Doc07[07-会话管理]
    
    Layer4 --> |中级| Doc08[08-工具系统架构]
    Layer4 --> |中级| Doc09[09-内置工具详解]
    
    Layer5 --> |高级| Doc10[10-技能系统]
    Layer5 --> |高级| Doc11[11-子代理系统]
    Layer5 --> |高级| Doc12[12-记忆系统]
    
    Layer6 --> |高级| Doc13[13-渠道管理]
    Layer6 --> |高级| Doc14[14-定时任务]
    Layer6 --> |高级| Doc15[15-心跳机制]
    
    Layer7 --> |专家| Doc16[16-开发自定义工具]
    Layer7 --> |专家| Doc17[17-开发自定义技能]
    Layer7 --> |专家| Doc18[18-代码对比分析]
    
    style Start fill:#e1f5ff
    style Layer1 fill:#fff4e1
    style Layer2 fill:#e8f5e9
    style Layer3 fill:#fff3e0
    style Layer4 fill:#f3e5f5
    style Layer5 fill:#e3f2fd
    style Layer6 fill:#fce4ec
    style Layer7 fill:#e0f2f1

知识依赖图

graph LR
    A[项目结构] --> B[CLI命令]
    A --> C[配置系统]
    B --> D[消息总线]
    C --> E[Agent核心]
    D --> E
    
    E --> F[上下文构建]
    E --> G[会话管理]
    E --> H[工具系统]
    
    F --> I[记忆系统]
    F --> J[技能系统]
    
    H --> K[子代理]
    H --> L[内置工具]
    
    D --> M[渠道管理]
    M --> N[定时任务]
    M --> O[心跳机制]
    
    H --> P[开发工具]
    J --> Q[开发技能]
    
    style A fill:#ffeb3b
    style E fill:#f44336
    style H fill:#2196f3
    style J fill:#4caf50

学习路径选择

路径 A:快速上手(推荐新手)

journey
    title 快速上手路径 (2-3小时)
    section 第一步
      阅读项目结构: 5: 学习者
      理解架构设计: 3: 学习者
    section 第二步
      学习CLI命令: 4: 学习者
      运行示例: 5: 学习者
    section 第三步
      研究Agent核心: 3: 学习者
      理解ReAct循环: 2: 学习者
    section 第四步
      了解工具系统: 4: 学习者
      尝试自定义工具: 3: 学习者

学习文档顺序

  1. 00-学习指南总览.md - 了解整体
  2. 01-项目结构与架构.md - 熟悉结构
  3. 02-CLI命令入口.md - 掌握使用方式
  4. 05-Agent核心循环.md - 理解核心机制
  5. 08-工具系统架构.md - 了解扩展方式

路径 B:系统学习(推荐研究者)

gantt
    title 系统学习计划 (1-2天)
    dateFormat  HH:mm
    axisFormat %H:%M
    
    section 第一天上午
    项目结构与架构     :a1, 00:00, 1h
    CLI命令入口       :a2, after a1, 1h
    配置系统         :a3, after a2, 1h
    
    section 第一天下午
    消息总线         :b1, 03:00, 1h
    Agent核心循环    :b2, after b1, 2h
    
    section 第一天晚上
    上下文构建       :c1, 06:00, 1h
    会话管理         :c2, after c1, 1h
    
    section 第二天上午
    工具系统架构     :d1, 08:00, 1.5h
    内置工具详解     :d2, after d1, 1.5h
    
    section 第二天下午
    技能系统         :e1, 11:00, 1h
    子代理系统       :e2, after e1, 1h
    记忆系统         :e3, after e2, 1h
    
    section 第二天晚上
    渠道管理         :f1, 14:00, 1h
    总结与实践       :f2, after f1, 2h

学习顺序:文档 00 → 01 → 02 → … → 15

路径 C:扩展开发(推荐开发者)

stateDiagram-v2
    [*] --> 基础学习
    基础学习 --> 核心理解: 文档01-04
    核心理解 --> 实践探索: 文档05-09
    
    实践探索 --> 开发工具: 需要新功能
    实践探索 --> 开发技能: 需要新能力
    
    开发工具 --> 工具系统架构: 文档08
    工具系统架构 --> 开发自定义工具: 文档16
    开发自定义工具 --> 测试验证
    
    开发技能 --> 技能系统: 文档10
    技能系统 --> 开发自定义技能: 文档17
    开发自定义技能 --> 测试验证
    
    测试验证 --> 生产部署
    生产部署 --> [*]

重点文档

  1. 01-项目结构与架构.md
  2. 05-Agent核心循环.md
  3. 08-工具系统架构.md
  4. 10-技能系统.md
  5. 16-开发自定义工具.md
  6. 17-开发自定义技能.md

核心概念依赖关系

graph TD
    subgraph 基础层
        A1[配置加载]
        A2[路径管理]
    end
    
    subgraph 通信层
        B1[消息总线]
        B2[事件定义]
        B3[渠道接口]
    end
    
    subgraph 核心层
        C1[AgentLoop]
        C2[ContextBuilder]
        C3[SessionManager]
        C4[ToolRegistry]
    end
    
    subgraph 扩展层
        D1[Skills]
        D2[Subagent]
        D3[Memory]
    end
    
    subgraph 工具层
        E1[文件工具]
        E2[Shell工具]
        E3[Web工具]
        E4[消息工具]
    end
    
    A1 --> C1
    A2 --> C2
    
    B1 --> C1
    B2 --> B3
    B3 --> C1
    
    C2 --> C1
    C3 --> C1
    C4 --> C1
    
    C2 --> D1
    C2 --> D3
    C1 --> D2
    
    C4 --> E1
    C4 --> E2
    C4 --> E3
    C4 --> E4
    
    E4 --> B1
    D2 --> B1

难度等级说明

级别 说明 预计时间 适合人群
🟢 新手 基础概念,无需编程背景 30分钟 所有人
🔵 初级 需要基础Python知识 1小时 Python初学者
🟡 中级 需要异步编程概念 2小时 有经验的开发者
🟠 高级 需要架构设计经验 3小时 资深开发者
🔴 专家 需要深入的技术理解 4+小时 专家级开发者

各文档难度标注

graph LR
    subgraph 🟢 新手级
        D00[00-总览]
        D01[01-项目结构]
    end
    
    subgraph 🔵 初级
        D02[02-CLI命令]
        D03[03-配置系统]
        D04[04-消息总线]
    end
    
    subgraph 🟡 中级
        D05[05-Agent核心]
        D06[06-上下文构建]
        D07[07-会话管理]
        D08[08-工具系统]
        D09[09-内置工具]
    end
    
    subgraph 🟠 高级
        D10[10-技能系统]
        D11[11-子代理]
        D12[12-记忆系统]
        D13[13-渠道管理]
        D14[14-定时任务]
        D15[15-心跳机制]
    end
    
    subgraph 🔴 专家级
        D16[16-开发工具]
        D17[17-开发技能]
        D18[18-代码对比]
    end

实践检查点

检查点 1:基础理解 ✓

完成文档 00-04 后,你应该能够:

  • 解释 nanobot 的整体架构
  • 运行基本的 CLI 命令
  • 修改配置文件
  • 理解消息总线的作用

检查点 2:核心掌握 ✓

完成文档 05-09 后,你应该能够:

  • 解释 ReAct 循环的工作原理
  • 理解上下文是如何构建的
  • 知道会话如何持久化
  • 能够创建简单的自定义工具

检查点 3:高级应用 ✓

完成文档 10-15 后,你应该能够:

  • 创建自己的技能包
  • 使用子代理处理后台任务
  • 配置多个聊天渠道
  • 设置定时任务

检查点 4:专家级 ✓

完成文档 16-18 后,你应该能够:

  • 独立开发复杂的工具
  • 设计完整的技能系统
  • 理解 nanobot vs Clawdbot 的权衡
  • 为 nanobot 贡献代码

学习建议

📚 阅读策略

  1. 第一遍:快速浏览,了解大致内容
  2. 第二遍:仔细阅读,理解每个概念
  3. 第三遍:对照源码,验证理解

💻 实践方法

  1. 动手操作:每学一个概念就尝试运行相应代码
  2. 修改实验:改变参数,观察行为变化
  3. 调试追踪:使用 logger 和 debugger 追踪执行流程

🤝 寻求帮助

  1. 查看源码:最权威的答案在代码中
  2. 阅读测试:测试用例展示了使用方式
  3. 社区讨论:Discord / 微信群 / GitHub Issues

总估时

学习路径 总时长 覆盖内容
快速上手 2-3 小时 核心概念 + 基本使用
系统学习 1-2 天 所有概念 + 深入理解
扩展开发 3-5 天 深入源码 + 实践开发

下一步

选择最适合你的学习路径,开始你的 nanobot 学习之旅!

  • 🚀 [快速上手] → 从 01-项目结构与架构.md 开始
  • 📖 [系统学习] → 按顺序阅读所有文档
  • 🔧 [扩展开发] → 直接跳到 16-开发自定义工具.md

记住:最好的学习方式是边学边做!🎓