03631762155c5712d8e6e833914b64948ffcf75d
新增功能: - workspace:check IPC — 校验路径有效性 + 检测 4 个必需文件状态 - workspace:inheritFiles IPC — 从旧工作空间继承 SOUL/AGENTS/USERS 到新工作空间 - app:restart IPC — 渲染进程触发应用重启(app.relaunch + app.exit) 前端 WorkspaceSettings 改造: - 选择文件夹后立即校验路径(是否存在、是否目录、4 个必需文件状态) - 显示工作空间状态: · 新工作空间 → 提示将自动创建 4 个文件 · 部分文件缺失 → 提示缺失文件将自动创建 · 已有工作空间 → 提示将直接加载现有配置 - 继承选项:当切换到新工作空间时,可勾选继承 SOUL/AGENTS/USERS.md · MEMORY.md 不继承(记忆与工作空间项目上下文绑定) · 继承白名单:仅允许 SOUL.md、AGENTS.md、USERS.md(防路径遍历) - 确认切换按钮 + 取消按钮 - 切换完成后弹出重启确认对话框(立即重启 / 稍后手动重启) 安全考虑: - workspace:inheritFiles 使用文件名白名单,防止路径遍历攻击 - workspace:check 返回 resolvedPath,前端只展示不直接用于文件操作 - app:restart 延迟 200ms 让 IPC 响应先返回
MetonaAI Desktop
生产级通用 AI Agent 智能体桌面应用。
技术栈
- 运行时: Electron 35 + React 19 + TypeScript 5.8
- 状态管理: Zustand 5
- 数据库: better-sqlite3
- LLM: DeepSeek / Agnes AI / Ollama
- 协议: MCP (Model Context Protocol)
- 构建: electron-vite + Vite 6
快速开始
# 安装依赖
npm install
# 开发模式
npm run dev
# 构建
npm run build
配置
复制 .env.example 为 .env,填入 API Key:
cp .env.example .env
或在应用设置界面中配置 LLM Provider。
项目结构
MetonaAI-Desktop/
├── electron/ # Electron 主进程
│ ├── main.ts # 应用入口
│ ├── preload.ts # 安全桥接脚本
│ ├── ipc/ # IPC 通道处理
│ ├── services/ # 业务服务(数据库、会话、记忆等)
│ └── harness/ # Agent 核心引擎
│ ├── agent-loop/ # ReAct 状态机
│ ├── adapters/ # LLM Provider 适配器
│ ├── tools/ # 工具注册与内置工具
│ ├── memory/ # 记忆系统
│ ├── prompts/ # System Prompt 构建
│ └── types/ # Metona IR 类型定义
├── src/ # React 渲染进程
│ ├── components/ # UI 组件
│ ├── hooks/ # React Hooks
│ ├── stores/ # Zustand 状态管理
│ ├── styles/ # 全局样式
│ └── types/ # 类型声明
├── docs/ # 设计文档
├── standard/ # 开发规范
└── apis/ # API 文档
功能
- ✅ 三栏布局(Sidebar + Chat + DetailPanel)
- ✅ 流式对话(DeepSeek / Agnes / Ollama)
- ✅ 9 个内置工具(文件系统、网络、记忆、命令行)
- ✅ MCP 协议支持
- ✅ 会话持久化(SQLite)
- ✅ 三层记忆系统(情节/语义/工作)
- ✅ 全链路追踪(Trace Viewer)
- ✅ 审计日志(防篡改)
- ✅ 系统托盘 + 全局快捷键
- ✅ 暗色/亮色主题
- ✅ 14 个键盘快捷键
许可证
MIT