🧠 RemindAI 架构全景图


开源桌面 AI 助手 — 不只是对话,而是真正的工具外壳 (ToolShell)



一、系统全景脑图


mindmap root((RemindAI)) 🚀 启动引导 AppSettings 配置加载 AppLogger 日志系统 WindowManager 窗口管理 DatabaseHelper SQLite配置 QdrantService 向量库配置 NotificationService 通知 CustomFontLoader 字体 ShortcutConfig 快捷键 PetEconomy 宠物经济 ToolRegistry 工具注册表 🎨 应用层 MaterialApp 主题国际化 WindowWrapper 窗口包装 TrayManager 系统托盘 SplashScreen 闪屏 FloatingPet 全局宠物 🧩 UI功能层 对话 Chat 多Agent MultiAgent 指挥部 CommandCenter 工作区 AgentWorkspace 浏览器 AgentExplorer 技能管理 SkillsPage 工具链 ToolchainPage 设置 Settings API服务器配置 Embedding配置 字体设置 Qdrant路径 在线服务 OnlineService 宠物系统 Pet 宠物页面 商店 Shop 背包 Inventory 成就 Achievement 搜索 Search 服务管理 Server 内置工具 BuiltinTools 流程图 Flowchart 公式OCR FormulaOCR PaddleOCR 文生图 ImageGen VPL可视化编程 思语编辑器 Siyu 快捷方式 Shortcuts 📦 状态管理 apiServerProvider settingsProvider databaseProvider mcpProvider memoryProvider skillsProvider searchProvider sessionProvider expertsProvider customFontsProvider ⚙️ 核心引擎 AgentLoop 智能循环 DSML解析 兼容层 流式Token推送 工具调用编排 消息管线处理 Executor 工具执行器 文件读写 Read/Write/Delete Shell命令 Bash Python执行 RunPython JS执行 RunJS 搜索工具 Search 记忆工具 Memory 计划工具 Schedule 系统探测 System 组合执行 Combined Agent中间件 MessagePipeline 消息变换 MemoryRecallHook 记忆召回 MemoryStoreHook 记忆存储 LoggingMiddleware 日志 PermissionMiddleware 权限 LLM适配层 OpenAIClient AnthropicClient GeminiClient LlmProvider 统一接口 MCP协议栈 MCPRegistry 注册中心 MCPClient 客户端 StdioTransport SSETransport StreamableHTTPTransport 记忆系统 MemoryManager 记忆管理 QdrantService 向量语义 SQLite 持久备份 ProjectConfig 项目配置 技能系统 SkillRegistry 注册中心 SkillModel 技能模型 ZIP导入导出 工具插件 ToolPlugin 抽象 ToolRegistry 注册 Capability 可插拔 搜索能力 SearchCapability TavilySearch BraveSearch BaiduSearch 对外API服务 APIServer HTTP服务 OpenAI聚合端点 ClaudeAgent端点 AnthropicProxy 代理 ServerSession 会话 在线服务 OnlineServer OnlineSession WebAssets 前端 宠物引擎 PetEngine 动画引擎 PetEconomy 经济系统 PetObserver 行为观察 PetChatService 智能问答 PetSprite 精灵渲染 PetState 状态机 专家系统 Expert 专家定义 ExpertStore 预设角色 语音合成 VolcanoTTS 火山引擎 导出系统 ConversationExporter Markdown/PDF/Word/HTML 🗄️ 数据层 SQLite 数据库 conversations 对话 memory 记忆 model_cards 模型卡片 mcp_servers MCP服务 Qdrant 向量库 语义嵌入 相似度搜索 🌐 外部集成 LLM APIs OpenAI GPT-4o,Gemini... Anthropic Claude Google Gemini MCP Servers 外部工具 Web Search APIs Tavily Brave Baidu 智能搜索 内置CLI工具 rg ripgrep fd 文件查找 rtk Token压缩



二、核心数据流架构


flowchart TB subgraph UI["🖥️ UI 层 (Flutter)"] ChatView["对话界面"] SettingsView["设置面板"] ToolsView["工具面板"] PetView["宠物面板"] end subgraph Providers["📦 状态管理 (Riverpod)"] SettingsProvider["SettingsProvider"] SessionProvider["SessionProvider"] McpProvider["MCPProvider"] MemoryProvider["MemoryProvider"] end subgraph AgentCore["🧠 Agent 核心循环"] AgentLoop["AgentLoop(流式循环)"] MessagePipeline["MessagePipeline(消息变换)"] Hooks["AgentHooks(记忆/日志/权限)"] end subgraph LLM["🤖 LLM 适配层"] LlmProvider["LlmProvider"] OpenAI["OpenAI Client"] Anthropic["Anthropic Client"] Gemini["Gemini Client"] end subgraph Executor["🔧 工具执行器"] FileExec["文件操作(Read/Write/Delete)"] ShellExec["Shell命令(Bash)"] PythonExec["Python执行"] MemoryExec["记忆工具(Store/Recall)"] ScheduleExec["计划工具(Schedule)"] SystemExec["系统探测(System)"] end subgraph MCP["🔌 MCP 协议"] MCPRegistry["MCP Registry"] Stdio["stdio"] SSE["SSE"] HTTP["Streamable HTTP"] end subgraph Storage["💾 存储"] SQLite[("SQLite(对话/记忆/配置)")] Qdrant[("Qdrant(向量语义搜索)")] FileSystem["本地文件系统"] end subgraph External["🌐 外部服务"] LLM_APIs["LLM APIs(OpenAI/Anthropic/Gemini)"] SearchAPIs["搜索 APIs(Tavily/Brave/Baidu)"] TTS_Service["TTS 服务(火山引擎)"] MCPServers["MCP Servers(外部工具)"] end ChatView --> SessionProvider SessionProvider --> AgentLoop AgentLoop --> MessagePipeline MessagePipeline --> Hooks AgentLoop --> LlmProvider LlmProvider --> OpenAI & Anthropic & Gemini OpenAI & Anthropic & Gemini --> LLM_APIs AgentLoop -->|工具调用| Executor Executor --> FileExec & ShellExec & PythonExec & MemoryExec & ScheduleExec & SystemExec FileExec & ShellExec --> FileSystem MemoryExec --> SQLite & Qdrant AgentLoop --> MCPRegistry MCPRegistry --> Stdio & SSE & HTTP Stdio & SSE & HTTP --> MCPServers Hooks -->|记忆召回/存储| SQLite & Qdrant SearchAPIs --> Executor TTS_Service --> PetView style AgentLoop fill:#7b1fa2,color:#fff style Executor fill:#e65100,color:#fff style LLM fill:#1565c0,color:#fff style MCP fill:#2e7d32,color:#fff style Storage fill:#c62828,color:#fff



三、AgentLoop 流式循环详解


sequenceDiagram participant User as 👤 用户 participant UI as 🖥️ UI participant Agent as 🔄 AgentLoop participant Pipeline as 📨 MessagePipeline participant LLM as 🤖 LLM API participant Executor as 🔧 Executor participant Memory as 🧠 Memory User->>UI: 输入消息 UI->>Agent: chat(userInput) Agent->>Agent: messages.add(user) loop 多轮工具调用 Agent->>Pipeline: process(messages) Pipeline->>Memory: MemoryRecallHook 召回 Memory-->>Pipeline: 相关记忆注入 Pipeline-->>Agent: effectiveMessages Agent->>LLM: chatStreamFull(messages, tools) LLM-->>Agent: Stream(ContentToken 流式) Agent-->>UI: yield AgentToken 实时展示 alt 有 tool_calls LLM-->>Agent: StreamComplete with toolCalls Agent->>Agent: DSML兼容解析 loop 每个工具调用 Agent-->>UI: AgentToolStart Agent->>Executor: run(toolName, args) Executor-->>Agent: result Agent-->>UI: AgentToolResult Agent->>Agent: messages.add(tool result) Agent->>Memory: MemoryStoreHook 存储 end else 无 tool_calls LLM-->>Agent: StreamComplete 最终回复 Agent-->>UI: AgentDone Agent->>Memory: MemoryStoreHook 存储 end end



四、模块分层架构


graph TB subgraph Layer1["🎨 表现层 Presentation"] direction LR F1["features/各功能页面"] F2["widgets/通用组件"] F3["shared/共享布局/组件"] end subgraph Layer2["🧩 业务逻辑层 Business Logic"] direction LR B1["providers/Riverpod状态管理"] B2["core/agent/Agent中间件"] B3["core/toolshell/Agent循环+执行器"] end subgraph Layer3["⚙️ 核心服务层 Core Services"] direction LR C1["core/llm/多模型适配"] C2["core/mcp/MCP协议"] C3["core/memory/记忆系统"] C4["core/skill/技能系统"] C5["core/tools/工具插件"] C6["core/search/搜索能力"] end subgraph Layer4["🗄️ 基础设施层 Infrastructure"] direction LR I1["core/db/SQLite + DAOs"] I2["core/server/API服务器"] I3["core/pet/宠物引擎"] I4["core/tts/TTS语音"] I5["core/expert/专家系统"] I6["core/export/导出系统"] end subgraph Layer5["🔧 基础工具层 Utilities"] direction LR U1["core/settings/"] U2["core/logger/"] U3["core/font/"] U4["core/l10n/"] U5["core/notification/"] U6["core/utils/"] end Layer1 --> Layer2 Layer2 --> Layer3 Layer3 --> Layer4 Layer4 --> Layer5 style Layer1 fill:#e3f2fd,stroke:#1565c0 style Layer2 fill:#f3e5f5,stroke:#7b1fa2 style Layer3 fill:#e8f5e9,stroke:#2e7d32 style Layer4 fill:#fff3e0,stroke:#e65100 style Layer5 fill:#fce4ec,stroke:#c62828



五、ToolShell 工具体系


mindmap root((ToolShell 工具外壳)) 元技能 MetaSkills toolshell toolshell_read 文件读取 toolshell_write 文件写入 toolshell_delete 文件删除 toolshell_search 文件搜索 toolshell_exec Shell命令 toolshell_run_python Python执行 toolshell_run_js JS执行 toolshell_memory_store 记忆存储 toolshell_memory_recall 记忆召回 schedule schedule_load 加载计划 schedule_add_task 添加任务 schedule_complete 完成任务 schedule_update 更新任务 schedule_delete 删除任务 schedule_review 进度审查 schedule_archive 归档 system system_probe 环境探测 system_env 环境变量 MCP工具 MCPTools stdio 进程通信 SSE 服务器推送 StreamableHTTP HTTP流 自动发现 工具发现 动态注册 运行时注册 Capability 可插拔 SearchCapability 搜索 三级路由 Custom 自定义 MCP 协议工具 ToolShell 内置 内置应用工具 流程图 Flowchart 公式OCR FormulaOCR PaddleOCR 通用OCR 文生图 ImageGen VPL 可视化编程 思语编辑器 Siyu 截图 Screenshot



六、记忆系统架构


flowchart LR subgraph WRITE["✍️ 记忆写入"] Hook["MemoryStoreHook"] -->|agent对话后| Manager["MemoryManager"] Manager -->|type:fact/decision/error| SQLite Manager -->|生成向量嵌入| Qdrant end subgraph READ["📖 记忆召回"] Hook2["MemoryRecallHook"] -->|任务开始前| Manager Manager --> Qdrant Manager --> SQLite Qdrant -->|语义相似度排序| Manager2["结果融合"] SQLite -->|关键词匹配| Manager2 Manager2 -->|注入上下文| AgentLoop end subgraph CONFIG["⚙️ 记忆配置"] Config["memory.json"] Config -->|MODE:normal/auto| Hook Config -->|REMIND:true/false| Hook2 Config -->|MIND:true/false| Manager end style WRITE fill:#e8f5e9,stroke:#2e7d32 style READ fill:#e3f2fd,stroke:#1565c0 style CONFIG fill:#fff3e0,stroke:#e65100



七、多Agent协作架构


flowchart TB subgraph CommandCenter["🎯 指挥部 CommandCenter"] Broadcast["消息广播"] Router["自动路由"] end subgraph Agents["🤖 Agent 群"] direction LR Worker1["工作者 Agent 1 独立工作区"] Worker2["工作者 Agent 2 独立工作区"] WorkerN["工作者 Agent N 独立工作区"] Reviewer["审查员 Agent 质量审核"] end subgraph Isolation["🔒 权限隔离"] ToolPerm["工具权限"] FilePerm["文件访问边界"] ModelPerm["模型配额"] end Broadcast -->|任务分发| Worker1 & Worker2 & WorkerN Worker1 & Worker2 & WorkerN -->|产出| Reviewer Reviewer -->|审核反馈| Worker1 & Worker2 & WorkerN Router -->|智能路由| Worker1 & Worker2 & WorkerN Isolation --> Worker1 & Worker2 & WorkerN & Reviewer style CommandCenter fill:#7b1fa2,color:#fff style Agents fill:#1565c0,color:#fff style Isolation fill:#c62828,color:#fff



八、对外API服务架构


flowchart TB subgraph APIServer["🌐 API Server (内置HTTP)"] direction TB Endpoint1["/v1 → OpenAI聚合端点 统一OpenAI格式"] Endpoint2["/v1/claude-agent → Claude Agent端点 运行完整AgentLoop"] Endpoint3["/claude → Claude代理端点 纯透传"] end subgraph Auth["🔐 认证"] TokenAuth["Token 认证"] RateLimiter["速率限制"] end subgraph Clients["📱 外部客户端"] C1["其他AI应用"] C2["Web前端"] C3["移动端"] end Clients -->|HTTP请求| Auth Auth --> APIServer Endpoint1 -->|工具调用| AgentLoop Endpoint2 -->|完整Agent| AgentLoop Endpoint3 -->|透传| AnthropicAPI["Anthropic API"] style APIServer fill:#2e7d32,color:#fff style Auth fill:#e65100,color:#fff



九、技术栈总览


mindmap root((技术栈)) 前端框架 Flutter 3.44+ Dart 3.12+ Material 3 状态管理 Riverpod 2.6+ 数据库 SQLite3 sqlite3_flutter_libs 向量数据库 Qdrant 嵌入 LLM协议 OpenAI API Anthropic API Gemini API MCP协议 stdio SSE Streamable HTTP 网络 Dio 5.7+ UI组件 gpt_markdown flutter_highlight dock_panel vyuh_node_flow flutter_quill 桌面集成 window_manager tray_manager local_notifier TTS 火山引擎 TTS CLI工具(内置) ripgrep fd rtk 搜索 Tavily API Brave API Baidu API 国际化 intl ARB



📅 生成日期: 2026年
📝 使用Remind AI基于 RemindAI v1.0.3 源码分析并且进行了校核
🏗️ 架构持续演进中