Files
mimiclaw/useage.md
Z.To c260265841
Some checks failed
Build / idf-build (push) Has been cancelled
添加 mimiclaw 启动模块流程图
2026-04-01 22:21:39 +08:00

117 lines
9.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 使用说明
## 编译
```shell
idf.py fullclean
idf.py set-target esp32s3
```
## MimiClaw 启动顺序图
┌─────────────────────────────────────────────────────────┐
│ app_main() 开始 │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 1. 核心基础设施初始化 │
│ ┌───────────────────────────────────────────────┐ │
│ │ • 初始化NVS (非易失性存储) │ │
│ │ • NVS安全检查 │ │
│ │ • 创建默认事件循环 │ │
│ │ • 初始化SPIFFS (文件系统) │ │
│ └───────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 2. 子系统初始化 │
│ ┌───────────────────────────────────────────────┐ │
│ │ • 消息总线 (message_bus_init) │ │
│ │ • 内存存储 (memory_store_init) │ │
│ │ • 技能加载器 (skill_loader_init) │ │
│ │ • 会话管理器 (session_mgr_init) │ │
│ │ • WiFi管理器 (wifi_manager_init) │ │
│ │ • HTTP代理 (http_proxy_init) │ │
│ │ • Telegram机器人 (telegram_bot_init) │ │
│ │ • 飞书机器人 (feishu_bot_init) │ │
│ │ • LLM代理 (llm_proxy_init) │ │
│ │ • 工具注册表 (tool_registry_init) │ │
│ │ • 定时服务 (cron_service_init) │ │
│ │ • 心跳服务 (heartbeat_init) │ │
│ │ • 代理循环 (agent_loop_init) │ │
│ └───────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 3. 串口CLI启动 (无WiFi依赖) │
│ ┌───────────────────────────────────────────────┐ │
│ │ • 串口CLI初始化 (serial_cli_init) │ │
│ └───────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 4. WiFi连接阶段 │
│ ┌───────────────────────────────────────────────┐ │
│ │ • 启动WiFi管理器 (wifi_manager_start) │ │
│ │ • 扫描附近AP并打印 │ │
│ │ • 等待WiFi连接 (30秒超时) │ │
│ └───────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
┌───────────────┐
│ WiFi连接成功? │
└───────────────┘
┌───────────────────┼───────────────────┐
│ │ │
▼ │ ▼
┌─────────────────────┐ │ ┌─────────────────────┐
│ 5a. 连接成功路径 │ │ │ 5b. 连接失败路径 │
│ • 获取IP地址 │ │ │ • 进入WiFi配置门户│
│ • 初始化时间同步 │ │ │ (wifi_onboard_start)│
│ (time_sync_init) │ │ │ • 重启设备 │
└─────────────────────┘ │ └─────────────────────┘
┌─────────────────────┐
│ 启动管理门户(可选) │
│ (wifi_onboard_start)│
└─────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 6. 网络服务启动 │
│ ┌───────────────────────────────────────────────┐ │
│ │ • 创建出站调度任务 (outbound_dispatch_task) │ │
│ │ • 启动代理循环 (agent_loop_start) │ │
│ │ • 启动Telegram机器人 (telegram_bot_start) │ │
│ │ • 启动飞书机器人 (feishu_bot_start) │ │
│ │ • 启动定时服务 (cron_service_start) │ │
│ │ • 启动心跳服务 (heartbeat_start) │ │
│ │ • 启动WebSocket服务器 (ws_server_start) │ │
│ └───────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ MimiClaw 启动完成 │
│ "Type 'help' for CLI commands" │
└─────────────────────────────────────────────────────────┘
关键启动点和依赖关系
时间依赖
1. *时间同步 (time_sync_init)*只在WiFi连接成功后初始化
2. 网络服务所有网络服务Telegram、飞书、WebSocket等都在WiFi连接成功后启动
无依赖启动
1. 串口CLI最早启动即使没有WiFi也能工作
2. 核心基础设施NVS、SPIFFS等必须首先初始化
条件分支
1. WiFi连接失败进入配置门户模式阻塞直到配置成功并重启
2. WiFi连接成功继续启动所有网络服务
并行启动
- 多个子系统初始化是顺序执行的但一旦启动它们会在各自的FreeRTOS任务中并行运行
- 出站调度任务在启动网络服务前创建,以避免丢失早期响应
这个启动顺序确保了核心功能在没有网络时也能部分工作如CLI命令同时网络相关服务在连接建立后按顺序启动。