diff --git a/README.md b/README.md
index d41c8e8..fe87caa 100644
--- a/README.md
+++ b/README.md
@@ -35,7 +35,7 @@
| | 功能 | 说明 |
|:---:|:---|:---|
| 🤖 | **ReAct Agent Loop** | 始终开启的唯一对话模式。Thought → Action → Observation → Reflection 完整循环,最大 85 轮(可配置),自动重试 2 次,工具去重,并行/链式执行 |
-| 🔧 | **38 个内置工具** | 文件系统 · 命令执行 · 联网搜索 · 浏览器控制 · Git · 记忆 · 技能 · 会话 · 子代理 |
+| 🔧 | **39 个内置工具** | 文件系统 · 命令执行 · 联网搜索 · 浏览器控制 · Git · 记忆 · 技能 · 会话 · 子代理 |
| 🧠 | **智能记忆系统** | 三类记忆(fact / preference / rule),FTS5 全文搜索 + 向量语义搜索,写入前安全扫描,容量 500 条,90 天衰减 |
| 📋 | **自定义文件** | SOUL.md(人格,不可压缩)+ AGENT.md(行为准则)+ USER.md(用户画像),工作空间优先,内置默认 fallback |
| 🎯 | **技能自动生成 v1.1** | 工具调用链自动提取 → 语义匹配 → 参数自优化 → 未使用衰减 → 技能链合并,越用越精准 |
@@ -99,7 +99,7 @@
-🌐 浏览器控制(8 个)
+🌐 浏览器控制(9 个)
| 工具 | 功能 |
|------|------|
@@ -110,6 +110,7 @@
| `browser_click` | 点击元素 |
| `browser_type` | 输入文本 |
| `browser_scroll` | 页面滚动 |
+| `browser_wait` | 等待元素/延时 |
| `browser_close` | 关闭浏览器 |
@@ -163,7 +164,7 @@
↓
Ollama API (流式响应,num_ctx 自动检测)
↓
- Tool Registry (38 内置 + MCP 动态)
+ Tool Registry (39 内置 + MCP 动态)
↓
观察结果 → 反思 → 循环 / 最终回答
```
@@ -262,7 +263,7 @@ npm run dist # 构建 Windows 安装包
| | Feature | Description |
|:---:|:---|:---|
| 🤖 | **ReAct Agent Loop** | Always-on, only chat mode. Full Thought → Action → Observation → Reflection cycle, up to 85 iterations (configurable), auto-retry 2 times, tool dedup, parallel/chain execution |
-| 🔧 | **38 Built-in Tools** | File system · Command · Web search · Browser · Git · Memory · Skills · Sessions · Sub-agent |
+| 🔧 | **39 Built-in Tools** | File system · Command · Web search · Browser · Git · Memory · Skills · Sessions · Sub-agent |
| 🧠 | **Smart Memory System** | Three types (fact / preference / rule), FTS5 + vector semantic search, pre-write security scan, 500 capacity, 90-day decay |
| 📋 | **Custom Files** | SOUL.md (persona, never compressed) + AGENT.md (behavior rules) + USER.md (user profile), workspace-first with built-in defaults |
| 🎯 | **Auto Skill Generation v1.1** | Tool chain extraction → semantic matching → parameter self-optimization → decay → chain merging |
@@ -386,7 +387,7 @@ User message → workspace SOUL.md (never compressed) → AGENT.md → USER.md
↓
Ollama API (Streaming Response)
↓
- Tool Registry (38 Built-in + MCP Dynamic)
+ Tool Registry (39 Built-in + MCP Dynamic)
↓
Observation → Reflection → Loop / Final Answer
```
diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md
index f9b384e..319a5fa 100644
--- a/docs/DEVELOPMENT.md
+++ b/docs/DEVELOPMENT.md
@@ -53,7 +53,7 @@ src/
│ ├── components/ # 14 个 UI 组件
│ ├── services/
│ │ ├── agent-engine.ts # ReAct Agent Loop 引擎
-│ │ ├── tool-registry.ts # 工具注册与调度(38 个内置工具 + MCP 动态)
+│ │ ├── tool-registry.ts # 工具注册与调度(39 个内置工具 + MCP 动态)
│ │ ├── memory-manager.ts # 记忆管理核心
│ │ ├── vector-memory.ts # 记忆向量索引(IVF)
│ │ ├── vector-store.ts # 向量存储 + IVF 索引
@@ -155,7 +155,7 @@ import {
### 5.1 五大子系统
```
-① Agent 系统 → agent-engine.ts + tool-registry.ts(38 内置工具 + MCP 动态)
+① Agent 系统 → agent-engine.ts + tool-registry.ts(39 内置工具 + MCP 动态)
② 记忆系统 → memory-manager.ts + vector-memory.ts
③ 向量存储 → vector-store.ts(IVF 索引)
④ 工作空间 → workspace.ts (主进程) + workspace-panel.ts (渲染进程)
diff --git a/release-notes.md b/release-notes.md
index 08aa363..e8eaa99 100644
--- a/release-notes.md
+++ b/release-notes.md
@@ -4,7 +4,7 @@
## 项目简介
-Metona Ollama Desktop 是一个基于 **Ollama** 的本地 AI 桌面客户端,采用 TypeScript + Electron 构建。所有 AI 推理均在本地完成,数据不离开本机。支持 ReAct Agent Loop、38 个内置工具、智能记忆系统、MCP 协议扩展、四引擎联网搜索、浏览器控制等能力。
+Metona Ollama Desktop 是一个基于 **Ollama** 的本地 AI 桌面客户端,采用 TypeScript + Electron 构建。所有 AI 推理均在本地完成,数据不离开本机。支持 ReAct Agent Loop、39 个内置工具、智能记忆系统、MCP 协议扩展、四引擎联网搜索、浏览器控制等能力。
---
@@ -18,7 +18,7 @@ Metona Ollama Desktop 是一个基于 **Ollama** 的本地 AI 桌面客户端,
- 链式工具调用:web_search → web_fetch、list_directory → read_file 等模式
- 文本解析兜底:当模型未通过 tool_calls 返回时,从文本中提取 Action/Input
-### 🔧 38 个内置工具
+### 🔧 39 个内置工具
| 分类 | 数量 | 工具 |
|------|------|------|
@@ -84,7 +84,7 @@ Metona Ollama Desktop 是一个基于 **Ollama** 的本地 AI 桌面客户端,
↓
Ollama API(流式响应)
↓
- 工具调用(38 内置 + MCP 动态)
+ 工具调用(39 内置 + MCP 动态)
↓
观察结果 → 反思 → 循环/最终回答
```
diff --git a/src/renderer/components/workspace-panel.ts b/src/renderer/components/workspace-panel.ts
index b6efda7..aac6bf7 100644
--- a/src/renderer/components/workspace-panel.ts
+++ b/src/renderer/components/workspace-panel.ts
@@ -834,7 +834,7 @@ function renderToolCalls(): void {
AI 对话中自动调用工具,结果在此展示
- 共 38 个内置工具 · MCP 动态扩展
+ 共 39 个内置工具 · MCP 动态扩展
`;
return;
diff --git a/src/renderer/index.html b/src/renderer/index.html
index d30267a..a92966f 100644
--- a/src/renderer/index.html
+++ b/src/renderer/index.html
@@ -415,9 +415,9 @@
🚀 快速开始
- 确保 Ollama 已启动(默认
http://127.0.0.1:11434,可在设置中修改) - 顶部模型栏选择一个模型,右侧会显示模型能力徽章(🧠 Think / 👁️ Vision / 🔧 Tools)
- 输入消息,按 Enter 发送,Shift+Enter 换行
💬 聊天功能
- 流式回复 — 实时打字效果,随时点 ■ 停止
- Think 推理 — 下方 Think 按钮切换,让模型展示深度思考过程(需模型支持,如 Qwen3)
- 上下文长度自动检测 — 切换模型时自动从模型元数据获取实际支持的上下文长度(如 Qwen3.6 27B = 262,144 tokens),无需手动配置
- 多模态 — 上传图片,模型需支持 Vision 能力。图片自动压缩至合适分辨率,节省上下文
- 文件分析 — 支持 50+ 种文本/代码格式,单文件 ≤500KB,自动剥离注释并按上下文预算智能截断
- AI 回复顶部 — 每条 AI 回复上方展示 📋 系统提示词折叠卡片,可点击查看实际发送给模型的完整上下文
-
🔧 Tool Calling(始终开启)
- 所有消息均通过 Agent Loop 自主调用本地工具,像一个本地 Agent,无普通聊天模式
- 38 个工具,分为 8 类:
- 文件系统(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_search(4引擎并行:Bing+百度+DuckDuckGo+Google,结果缓存5分钟,URL可达性预检)/ web_fetch(自动重试+移动端UA切换+SPA页面自动升级到浏览器渲染)
- Git(1 个):git(16 个子操作,push/pull/clone 内置60-120s超时保护)
- 浏览器控制(8 个):browser_open / browser_screenshot / browser_evaluate / browser_extract / browser_click / browser_type / browser_scroll / browser_close
- 记忆 & 会话 & Skill(8 个):memory_search / memory_add / memory_replace / memory_remove / session_list / session_read / skill_list / skill_view
- 子代理(1 个):spawn_task
- read_multiple_files 支持并行读取,diff_files 优先调用系统 diff/git diff 命令
- search_files 支持正则表达式搜索(use_regex=true)
- list_directory 支持 offset 分页,大目录可分页读取
- 仅
run_command(命令执行)支持三模式切换:自动/需确认/禁用 - 危险命令(
rm -rf、mkfs、反弹 shell 等)和系统路径(/etc、~/.ssh 等)被自动拦截 - 工具调用以可视化卡片展示状态(pending → running → success/error),在工作空间🔧工具页签中显示
- 默认最大 85 轮工具调用循环,上下文使用率>80%时自动缩减到3轮
- 独立工具自动并行执行(16个只读工具加入并行白名单),有依赖关系的工具串行执行
- ⚠️ 需要模型支持 Tool Calling(推荐 Qwen3、Llama 3.1+、Mistral)
+
🔧 Tool Calling(始终开启)
- 所有消息均通过 Agent Loop 自主调用本地工具,像一个本地 Agent,无普通聊天模式
- 39 个工具,分为 9 类:
- 文件系统(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_search(4引擎并行+智能排序+时间过滤+摘要增强)/ web_fetch(反爬headers+UA自动切换+自动回退浏览器渲染)
- Git(1 个):git(17 个子操作,push/pull/clone 内置60-120s超时保护)
- 浏览器控制(9 个):browser_open / browser_screenshot / browser_evaluate / browser_extract / browser_click / browser_type / browser_scroll / browser_wait / browser_close
- 记忆 & 会话 & Skill(8 个):memory_search / memory_add / memory_replace / memory_remove / session_list / session_read / skill_list / skill_view
- 子代理(1 个):spawn_task
- read_file 支持 binary模式读取/base64解码/字节分页/2000行默认+截断hint自动续读
- write_file 支持 base64写二进制文件/mode(overwrite+append)合并append_file功能/10MB
- edit_file 支持 use_regex 正则替换
- search_files 支持正则表达式搜索(use_regex=true)
- browser_screenshot 支持全页面截图+元素截图
- browser_extract 支持CSS选择器提取特定区域
- new browser_wait 等待元素出现或定时等待
- 仅
run_command 支持三模式切换:自动/需确认/禁用 - 危险命令(
rm -rf、mkfs、反弹 shell 等)和系统路径(/etc、~/.ssh 等)被自动拦截 - 工具调用以可视化卡片展示状态(pending → running → success/error),在工作空间🔧工具页签中显示
- 默认最大 85 轮工具调用循环,上下文使用率>80%时自动缩减到3轮
- 独立工具自动并行执行(16个只读工具加入并行白名单),有依赖关系的工具串行执行
🧠 Agent 记忆系统
- 设置中开启后,AI 从对话中自动提取关键信息(事实/偏好/规则),跨会话持续积累
- 增量提取:长对话中每 20 轮自动触发轻量级记忆提取,不等到对话结束
- 对话结束时自动触发完整记忆提取
- 新对话时自动检索相关记忆注入上下文,让 AI "记住"你
- 点击顶部 🧠 按钮打开记忆面板:搜索、筛选、编辑、删除
- 记忆容量上限 500 条,超限时自动清理低价值条目(规则类型受保护)
- 向量语义搜索:在设置中选择嵌入模型后,支持语义级别记忆检索(更精准)
- 未选择嵌入模型时,使用关键词匹配检索记忆
- AI 可通过 memory 工具主动管理记忆
- 记忆写入前自动安全扫描(prompt injection / 敏感信息 / 不可见字符检测)
- 记忆存储在本地 SQLite,不会上传到任何服务器
-
🤖 Agent Loop v0.10.2 增强
- 智能上下文压缩:滑动窗口 + LLM结构化JSON摘要,超过50%上下文窗口自动触发
- 流式调用超时保护:可配置超时(默认300s),Ollama 卡死不再永久阻塞
- HTTP/MCP 超时可配:设置面板可分别调整 HTTP(默认30s)和 MCP(默认60s)超时
- Final Answer 智能检测:多模式匹配(Final Answer/最终答案/最终回答/总结),避免漏检或误触
- Token 感知迭代预算:上下文使用率>80%时自动缩减剩余轮次到3轮
- 工具缓存 TTL:搜索5分钟/网页10分钟/文件30分钟,过期自动刷新
- 自动子任务拆解:检测"同时/分别/以及"等并行关键词,自动 spawn 子代理并行处理
- 旧工具结果自动截断:超过10轮的工具结果自动截断到500字符,控制上下文膨胀
+
🤖 Agent Loop v0.10.3 增强
- 智能上下文压缩:滑动窗口 + LLM结构化JSON摘要,超过50%上下文窗口自动触发
- 流式调用超时保护:可配置超时(默认300s),Ollama 卡死不再永久阻塞
- HTTP/MCP 超时可配:设置面板可分别调整 HTTP(默认30s)和 MCP(默认60s)超时
- Final Answer 智能检测:多模式匹配(Final Answer/最终答案/最终回答/总结),避免漏检或误触
- Token 感知迭代预算:上下文使用率>80%时自动缩减剩余轮次到3轮
- 工具缓存 TTL:搜索5分钟/网页10分钟/文件30分钟,过期自动刷新
- 自动子任务拆解:检测"同时/分别/以及"等并行关键词,自动 spawn 子代理并行处理
- 旧工具结果自动截断:超过10轮的工具结果自动截断到500字符,控制上下文膨胀
🔌 MCP(Model Context Protocol)
- 支持连接外部 MCP Server,动态扩展工具能力
- 设置面板可添加/启用/禁用/删除 MCP 服务器
- MCP 工具以
mcp_{server}_{tool} 前缀注册,与内置工具统一调度 - 启动时自动连接已启用的 MCP 服务器
📋 自定义文件(SOUL.md / AGENT.md / USER.md)
- 在工作空间目录创建以下文件即可自定义 AI 行为,修改后下一轮对话立即生效
- SOUL.md — AI 身份、性格、行为准则(永远不可被压缩,注入为最高优先级系统提示词)
- AGENT.md — 工具调用规则、链式调用模式、核心约束(内置精简默认版,可通过工作空间覆盖)
- USER.md — 用户画像:技术栈、偏好、习惯等个人信息,AI 在对话中自动参考
- 可在 AI 回复顶部的 📋 系统提示词卡片中查看实际注入的完整上下文
- 删除工作空间中的文件即可恢复为内置默认版本
🎯 技能自动生成
- AI 完成包含 2+ 工具调用的复杂任务后,自动从执行轨迹中提取可复用技能
- 语义匹配:配置嵌入模型后,根据用户消息的语义自动匹配最相关技能
- 参数自优化:同一技能链多次执行后,自动合并高频参数提示,越用越精准
- 技能衰减:30 天未使用的技能自动降权,90 天几乎忽略
- 链合并:相同前缀(前 2 步相同)的多个技能自动合并为抽象技能
- AI 可通过
skill_list(渐进式摘要)和 skill_view(完整工具链)查看技能 - 技能存储在本地 SQLite,不会上传到任何服务器
@@ -433,7 +433,7 @@