Files
metona-ollama-desktop/release-notes.md
T
thzxx db6cb8d2cc feat: v1.1.0 — 上下文引擎重构 + 技能系统升级 + SOUL.md 支持
- 版本号更新: 1.0.0 → 1.1.0,全量同步 package.json/lock/README/docs/UI
- 上下文长度自动检测: 切换模型时从 model_info 读取实际 context_length
- SOUL.md 支持: 每次发送自动扫描工作空间 SOUL.md,注入为首条 system 消息且不可压缩
- 系统提示词卡片: AI 回复顶部可折叠展示实际发送给模型的完整 system prompt
- Token 校准: 利用 Ollama 返回的实际计数动态修正估算器(EMA)
- 消息重要性评分: 纯规则打分,trim/summarize 按重要性而非时间顺序
- 结构化压缩: LLM 压缩输出 JSON 格式(topics/decisions/pendingTasks/constraints)
- 技能系统 v1.1: 语义匹配(embedding) + 参数自优化 + 未使用衰减 + 技能链合并
- 修复: 100+ TypeScript strict 模式编译错误清零
2026-06-04 21:47:18 +08:00

6.6 KiB
Raw Blame History

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 + 百度 + 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 工具覆盖内置工具名)
  • 30 秒请求超时保护

🔍 三引擎联网搜索

  • Bing + 百度 + 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
  4. 启动 Metona Ollama,在设置中配置 Ollama 服务地址
  5. 选择模型,开始对话

已知限制

  • 仅支持 Windows x64 平台
  • 需要本地运行 Ollama 服务,不支持远程 Ollama 服务器(后续版本考虑支持)
  • 浏览器控制工具依赖系统 Chromium,部分 SPA 页面抓取可能不完整
  • 向量搜索需要配置嵌入模型(embedding model),未配置时仅支持关键词搜索
  • MCP 工具目前仅支持 stdio 传输方式
  • 子代理(spawn_task)为独立上下文,无法共享主对话记忆