🧠 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 源码分析并且进行了校核
🏗️ 架构持续演进中