Files
metona-ollama-desktop/release-notes.md
T
thzxx 6390457312 feat: v0.10.2 - 可配置超时设置 + 默认值提升
- HTTP超时: 15s→30s(可配5s~300s), MCP超时: 30s→60s(可配10s~300s), 流式超时: 180s→300s(可配0~600s)
- 设置面板新增超时配置区域(HTTP/流式/MCP),留空使用默认值
- 主进程HTTP_TIMEOUT/MCP_TIMEOUT改为可配置变量,通过IPC setTimeouts通道接收
- 帮助面板/README/release-notes更新四引擎搜索和超时描述
- 版本号同步更新至v0.10.2(16处)
2026-06-10 09:39:59 +08:00

154 lines
6.6 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.
# Metona Ollama Desktop v1.1.0
> 本地 Ollama AI 桌面客户端 — 首个稳定版本
## 项目简介
Metona Ollama Desktop 是一个基于 **Ollama** 的本地 AI 桌面客户端,采用 TypeScript + Electron 构建。所有 AI 推理均在本地完成,数据不离开本机。支持 ReAct Agent Loop、38 个内置工具、智能记忆系统、MCP 协议扩展、四引擎联网搜索、浏览器控制等能力。
---
## 核心功能
### 🤖 ReAct Agent Loop
- Thought → Action → Observation → Reflection 完整循环
- 默认最大 85 轮迭代,支持自动重试(最多 2 次)
- 工具调用去重机制:调用缓存 + 同轮重复检测 + 跨轮次重复检测
- 并行工具调用:互相独立的工具可在同一次回复中同时执行
- 链式工具调用:web_search → web_fetch、list_directory → read_file 等模式
- 文本解析兜底:当模型未通过 tool_calls 返回时,从文本中提取 Action/Input
### 🔧 38 个内置工具
| 分类 | 数量 | 工具 |
|------|------|------|
| 文件系统 | 17 | read_file, write_file, list_directory, search_files, create_directory, delete_file, move_file, copy_file, append_file, edit_file, get_file_info, tree, download_file, diff_files, replace_in_files, read_multiple_files, compress |
| 命令执行 | 1 | run_command(实时流式输出,工作空间终端集成) |
| 联网搜索 | 2 | web_searchBing + 百度 + DuckDuckGo + Google 四引擎), web_fetch |
| 浏览器控制 | 8 | browser_open, browser_screenshot, browser_evaluate, browser_extract, browser_click, browser_type, browser_scroll, browser_close |
| Git | 1 | gitinit/clone/add/commit/push/pull/diff/log/status/branch/checkout/merge/stash/reset/tag/remote |
| 记忆管理 | 4 | memory_search, memory_add, memory_replace, memory_remove |
| 技能系统 | 2 | skill_list, skill_view(渐进式加载) |
| 会话管理 | 2 | session_list, session_read |
| 子代理 | 1 | spawn_task(独立上下文 + 超时保护) |
### 🧠 智能记忆系统
- **三类记忆**fact(事实)、preference(偏好)、rule(规则,始终注入上下文)
- **双模式检索**:FTS5 全文搜索 + 向量语义搜索(IVF 索引)
- **安全扫描**:写入前检测 prompt injection、敏感信息泄露、不可见 Unicode 字符
- **容量管理**:上限 500 条,超限自动清理低价值条目(rule 类型受保护)
- **过期衰减**:90 天未使用的记忆自动降低 importance
### 🌐 MCP 协议支持
- JSON-RPC 2.0 over stdio 标准协议
- 动态工具发现与执行
- Shadowing 防护(防止 MCP 工具覆盖内置工具名)
- 60 秒请求超时保护
### 🔍 四引擎联网搜索
- Bing + 百度 + DuckDuckGo + Google 四引擎聚合
- web_search 返回标题、URL、摘要(默认 15 条)
- web_fetch 支持网页内容抓取(默认不截断)
- 工具链规则:搜索后自动引导抓取详情
### 🖥️ 工作空间面板
- 终端(实时流式输出)+ 文件浏览器一体化
- AI 通过 run_command 工具执行命令,输出实时显示
- 命令安全检查:路径黑名单 + 命令黑名单 + 三种执行模式
### 🎨 Token 实时监控仪表盘
- 全局统计(跨会话累计 Token 分析)和当前会话统计双视图
- Token 消耗趋势图(输入/输出分色显示)
- 2 秒自动刷新
### 📊 技能自动生成系统
- 从成功的工具调用链中自动提取可复用技能
- Level 0 简短摘要(~100 tokens),渐进式加载
- 技能匹配与上下文注入
### 🔒 安全机制
- 文件路径安全检查(checkPathAllowed
- 命令执行安全检查(checkCommandAllowed
- 前端 HTML 净化器(白名单标签 + 属性过滤 + URI 协议检查)
- contextIsolation: true + IPC 白名单
- AES-256-GCM 加密支持
---
## 技术架构
```
用户消息 → Agent LoopReAct
记忆检索(FTS5 + 向量搜索)→ 上下文注入
Ollama API(流式响应)
工具调用(38 内置 + MCP 动态)
观察结果 → 反思 → 循环/最终回答
```
### 数据层
- **SQLite (sql.js WASM)**7 张表(sessions, messages, tool_calls, memories, settings, traces, skills
- **FTS5 全文搜索**memories 表支持全文检索
- **WAL 模式 + NORMAL 同步**:零原生依赖,无需 electron-rebuild
### 上下文管理(v5.0
- 三层策略:滑动窗口 + LLM 摘要压缩 + 记忆注入
- `/compress` 手动触发上下文压缩
- 自动压缩阈值:消息 token 占 context window 50% 时触发
- Token 估算:中文 1.5 字/token,英文 4 字符/token
### 技术栈
| 层级 | 技术 |
|------|------|
| 语言 | TypeScript (strict mode) |
| 桌面框架 | Electron 33+ |
| 构建 | Vite(渲染进程)+ tsc(主进程) |
| 数据库 | sql.js (WASM) + FTS5 |
| 第三方库 | markedMarkdown, DOMPurifyHTML 净化) |
| 打包 | electron-builder (NSIS) |
---
## 最近改进
- **`/compress` 上下文压缩**:支持手动触发 LLM 摘要压缩,长对话不再丢失上下文
- **Skill 渐进式加载**:技能摘要(Level 0)仅 ~100 tokens,按需加载完整工具链
- **Token 全局统计**:仪表盘新增跨会话累计 Token 分析视图
- **图表重写**:Token 消耗趋势图重写 — 网格线 + 正确高度计算 + 柱子底部对齐
- **Agent Loop 稳定性**:修复 abortController 在自动压缩前未定义的严重 bug
- **工具调用修复**:修复工具卡片状态更新、错误信息显示、执行中状态残留等问题
- **消息渲染修复**:修复用户消息不显示、AI 消息时间戳、思考气泡残留等 UI 问题
---
## 系统要求
- **操作系统**Windows 10/1164 位)
- **Ollama**:需要本地运行 Ollama 服务(默认 http://localhost:11434
- **磁盘空间**:安装包约 82MB,运行时根据模型大小需要额外空间
- **内存**:建议 8GB+(取决于使用的 AI 模型)
---
## 安装说明
1. 下载 `Metona Ollama Setup v1.1.0.exe`
2. 运行安装程序,可自定义安装目录
3. 确保本地已安装并运行 [Ollama](https://ollama.com)
4. 启动 Metona Ollama,在设置中配置 Ollama 服务地址
5. 选择模型,开始对话
---
## 已知限制
- 仅支持 Windows x64 平台
- 需要本地运行 Ollama 服务,不支持远程 Ollama 服务器(后续版本考虑支持)
- 浏览器控制工具依赖系统 Chromium,部分 SPA 页面抓取可能不完整
- 向量搜索需要配置嵌入模型(embedding model),未配置时仅支持关键词搜索
- MCP 工具目前仅支持 stdio 传输方式
- 子代理(spawn_task)为独立上下文,无法共享主对话记忆