thzxx
e84f62c482
v0.11.9: 修复纯文本消息卡片丢失 + 子代理参数可配置
...
fix: 恢复纯文本消息的 else if 分支,修复 fed1e6d 重构后用户消息卡片不显示
fix: allVids 类型注解补充 base64 字段,消除 TS2322 编译错误
feat: 子代理最大轮次和超时接入设置面板(subAgentMaxLoops/subAgentTimeout)
chore: 版本号 0.11.7 → 0.11.9
2026-06-20 13:04:17 +08:00
thzxx
ec361a4f83
refactor: 删除自动子任务拆解,子Agent只能通过 spawn_task 工具调用
...
所有工具调用必须经过 tool-registry,确保工具卡片完整记录
2026-06-18 14:28:57 +08:00
thzxx
400c641f3d
fix: 子任务拆解条件更合理——有附件或内容过长时跳过
...
- 有图片/视频时跳过(图文消息不适合拆解)
- 内容 <50 或 >2000 字符时跳过(太短没意义,太长是文件内容)
2026-06-18 14:25:40 +08:00
thzxx
d28f39d3aa
fix: 子任务拆解排除文件内容,避免把设定集误拆成89个并行子任务
...
- 检测 📄 文件 标记时跳过子任务拆解
- 限制拆解只在内容 <5000 字符时触发
2026-06-18 14:22:21 +08:00
thzxx
ab1fb88dc4
fix: 日志三段式——开始+进度(原地更新)+完成,各一条
...
- logInfo 开始 → resetVideoProgress 进度 → updateVideoProgress 更新 → logSuccess 完成
- 进度条目保留最后帧数不动,完成后新加 success 条目
2026-06-18 11:50:11 +08:00
thzxx
37189dafa8
refactor: 视频提取日志原地更新,复用 logStreamProgress 模式
...
- 新增 resetVideoProgress/updateVideoProgress/finishVideoProgress
- 日志面板中视频提取只占一条,实时更新帧数和状态
- 主进程只通过 video:progress IPC 推送原始帧数,不写日志
2026-06-18 11:48:35 +08:00
thzxx
a336a66516
v0.11.5: 搜索抓取增强 + 流式进度修复 + 超时/写入容错
...
feat: 搜索面板新增认证类型 Bearer/Basic,自动抓取条数/类型(顺序/随机)
feat: 随机抓取失败自动从未抓取池补1条,上限移除
fix: write_file 缺 path 时返回引导性报错(含工作空间路径+平台示例)
fix: Ollama tool_calls arguments JSON字符串解析
fix: 流式进度日志不再删除,改为完整时间线记录
fix: 进度日志同步appendChild确保排在工具日志之前
fix: 超时设置面板/主进程 remove max上限
chore: 版本号 0.11.4 → 0.11.5
2026-06-13 21:35:22 +08:00
thzxx
5fdcab444c
fix: logStreamProgress 防重复条目
...
- addLog 支持 customId 参数
- _progressCreated 标记防止 addLog 在 DOM 未渲染前重复调用
- 已渲染后直接更新 DOM 文本
2026-06-13 09:27:14 +08:00
thzxx
52026dbdd6
fix: 流式日志原地更新 + 滚动用scrollIntoView
...
- 新增 logStreamProgress:同一ID日志更新不追加
- 定时器15s间隔,无新内容用累积闲置时长
- appendToolCardDOM 用 scrollIntoView + rAF
- renderToolCalls 用双重 rAF 等布局稳定
2026-06-13 08:15:06 +08:00
thzxx
87d3364886
fix: 定时器15秒间隔 + 滚动rAF + 闲置追踪
...
- 流式进度定时器改为15秒间隔
- lastContentTime 追踪真正的无新内容时长
- appendToolCardDOM/renderToolCalls 用 rAF 确保布局后滚动
2026-06-13 07:42:40 +08:00
thzxx
45777a5945
feat: v0.11.3 - 工具卡片三态转换 + 流式进度监控 + 默认工具页签
...
- 工具卡片完整生命周期: 准备中 -> 执行中 -> 完成
- onToolCallPrepare 流式阶段提前显示工具意图
- 工作空间监控定时器: AI处理中提示
- 日志面板流式进度: 每5秒输出, 15秒无新内容警告
- 提示栏按状态分组显示所有工具
- write_file 写入前增加开始日志
- 工具页签新卡片始终自动滚动到底部
- 默认页签切换为工具页签
2026-06-12 22:28:16 +08:00
thzxx
e05f175a3b
fix: 加强AGENT.md和工具描述,明确每次搜索必须重新调用工具,不依赖历史结果或训练数据
2026-06-12 14:40:01 +08:00
thzxx
0f20540666
fix: 单独的web_fetch调用也不再截断内容,返回完整网页
2026-06-12 14:31:22 +08:00
thzxx
f0d7986947
fix: 修复tool-registry.ts语法错误,required字段放入parameters内
2026-06-12 14:21:57 +08:00
thzxx
de54aba1e2
fix: fetch_top改为必传,最低3条,SearXNG和内置引擎统一自动抓取
2026-06-12 14:18:58 +08:00
thzxx
c7a184bfa9
feat: web_search新增fetch_top参数,搜索后自动抓取前N条完整内容,无需AI手动调web_fetch
2026-06-12 14:16:08 +08:00
thzxx
00ef0de5ea
fix: 搜索结果抓取提示改为明文前置警告,top5→top10,让AI无法忽略
2026-06-12 14:00:26 +08:00
thzxx
c191906fb5
fix: web_search和web_fetch工具定义中加入联动说明,引导AI搜索后批量抓取
2026-06-12 13:43:52 +08:00
thzxx
56ead1f11d
fix: web_search结果注入批量抓取引导,AGENT.md加强链式调用描述,避免AI只抓一条
2026-06-12 13:41:30 +08:00
thzxx
d495b96f4b
chore: web_search 默认结果数 15→30
2026-06-12 13:03:42 +08:00
thzxx
933ce7a082
v0.11.1: Agent Loop稳定性增强 + 6个系统工具 + 搜索引擎替换
...
【Agent Loop 稳定性】
- P0-1: 工具消息硬限制40条,超出自动删旧
- P0-2: 截断周期从5轮缩短为3轮
- P1-1: 增量记忆提取改为fire-and-forget
- P1-2: TOOLS_WITH_DATA_DEPS精简为仅web_fetch
- P2: 重复检测改为注入警告而非强制终止
- Final Answer检测增强: >300字自动放行 + 收紧反过早停止
【新增工具】(40→44)
- datetime: 系统精确时间(中文日期+时段+人性化)
- calculator: 安全数学计算(递归下降解析器)
- random: 随机数/随机选择(int/float/pick/string)
- uuid: UUID v4生成(crypto.randomUUID)
- json_format: JSON格式化+验证+键排序
- hash: MD5/SHA1/SHA256/SHA384/SHA512
【搜索引擎替换】
- Google+DuckDuckGo → 搜狗+360搜索
- 四引擎变为: Bing+百度+搜狗+360搜索
【删除】
- 联网搜索代理全部代码(search-proxy/ + 7文件代理逻辑)
- https-proxy-agent依赖
【UI】
- 模型栏: 上下文总长(蓝色)+剩余上下文(绿色)实时显示
- 设置面板上下文长度移至模型栏
- SOUL.md/AGENT.md精简为纯抽象定义
【系统提示词】
- OS环境信息改为从preload同步获取真实值(os.homedir/os.arch/os.userInfo)
2026-06-11 22:07:46 +08:00
thzxx
c8cafbe58e
fix: 修复Agent Loop过早停止 — 无tool_calls时检测是否任务未完成+注入继续提示+AGENT.md加强规则
2026-06-10 14:48:12 +08:00
thzxx
e2bd511489
refactor: 删除append_file工具,功能合并入write_file(mode=append),工具数39→38
2026-06-10 14:42:25 +08:00
thzxx
5a38acce03
feat: 系统提示词注入OS环境信息(不可压缩)+日期标记不可压缩+run_command返回cwd信息
2026-06-10 14:31:47 +08:00
thzxx
b3de861faf
feat: 浏览器控制工具全面增强 — browser_open(wait_selector)/screenshot(full_page+selector)/extract(selector+max_chars)/click(wait滚动到视图)/type(clear+submit)/scroll(selector)/新增browser_wait
2026-06-10 14:23:56 +08:00
thzxx
d6cf7d846f
feat: 5个文件系统工具增强 — list_directory(2000)/edit_file(regex)/delete_file(返回大小)/read_multiple(50文件10KB)/tree(深度5)
2026-06-10 14:19:03 +08:00
thzxx
04f2446337
feat: write_file 全面增强 — base64写二进制/mode(overwrite+append)/覆盖提示/10MB/返回行数+文件大小
2026-06-10 14:15:26 +08:00
thzxx
da249d43de
chore: read_file 默认行数 500→2000
2026-06-10 14:12:55 +08:00
thzxx
751f548b0c
feat: read_file 全面增强 — binary模式/字节分页/5MB限制/截断提示hint/offset_bytes+limit_bytes
2026-06-10 14:11:08 +08:00
thzxx
f8842f195e
feat: web_search 智能增强 — 时间范围过滤/智能排序(可达+权重+质量)/摘要自动增强/tool参数扩展
2026-06-10 14:06:15 +08:00
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
thzxx
64264cc0f8
v0.10.1: 修复显存泄漏 + 删除普通聊天模式 + Tool Calling 始终开启
...
fix: ollama.ts - chat() 添加默认 keep_alive: '1h',chatStream done 时不再 reader.cancel()
refactor: 删除普通聊天模式,所有消息统一走 Agent Loop
refactor: Tool Calling 开关始终开启且不可关闭
chore: 版本号 0.10.0 → 0.10.1 (12 处)
docs: 更新帮助面板和 README 反映架构变更
2026-06-06 12:06:48 +08:00
thzxx
c9adc764ae
feat: v0.10.0 — 全面增强网络搜索、Agent Loop、工具稳定性与性能
...
网络搜索增强:
- web_search: 4引擎并行(Bing+百度+DuckDuckGo+Google), LRU缓存5min, URL可达性预检, 结构化JSON输出
- web_fetch: 自动重试(指数退避2次), 移动端UA切换, SPA页面自动升级浏览器渲染
Agent Loop增强:
- 流式调用超时保护(默认180s可配置)
- Final Answer多模式检测 + 内容长度验证
- 预算警告改用ephemeral标记(context优先丢弃)
- Token感知动态迭代预算(>80%自动缩减到3轮)
- 工具缓存TTL(搜索5min/网页10min/文件30min)
- 自动子任务拆解(并行关键词检测+spawn子代理)
- 增量记忆提取(每20轮触发)
- 智能批次划分: 16个只读工具加入ALWAYS_PARALLEL白名单
- 旧工具结果超过10轮自动截断到500字符
工具增强:
- read_multiple_files: 串行→并行Promise.all
- diff_files: 三级回退(diff -u → git diff → builtin)
- search_files: 新增use_regex正则搜索
- list_directory: 新增offset分页
- Git: stash参数修复, clone/push/pull超时保护
- browser: 提取ensureBrowserReady()消除重复, browser_open切换URL自动重建
文档更新:
- 帮助面板新增Agent Loop v0.10.0增强章节
- README中英文同步更新(四引擎搜索/工具描述)
- SOUL.md/AGENT.md更新(v0.10.0能力描述/SPA规则翻转)
2026-06-05 21:20:03 +08:00
thzxx
2217113014
feat: v0.9.1 — 图片压缩、文件token预算截断、并行上传、文档同步
...
- 图片上传: Canvas前端压缩(1280px等比缩放+JPEG), 300KB以下跳过
- 文件上传: Token预算感知截断(30% numCtx), 26种语言注释剥离
- 性能: handleImagePaths/handleTextFilePaths 并行化(Promise.all)
- sub-agent.ts: 修复3个TS编译错误(tool_name类型, success重复)
- 版本号: 全项目统一至0.9.1(10处)
- 文档: BUILD.md/DEVELOPMENT.md 同步实际架构, 移除过期分支引用
- README: 组件列表修正(log-panel.ts→prompt-modal.ts)
- 帮助面板: 更新图片/文件上传描述
2026-06-05 11:32:40 +08:00
thzxx
7b9ac8ac13
spawn_task 模型校验:指定不存在的模型自动回退
...
- tool description 提示 AI 优先用小模型,不指定则用设置默认值
- 运行时校验:列出已安装模型,指定模型不存在则 warn + 回退
- 导入 state/KEYS 替代 window 全局变量
2026-06-05 10:58:45 +08:00
thzxx
f4a92fc40f
设置面板新增子代理默认模型选择器
...
- 向量记忆引擎下方新增「子代理默认模型」下拉框
- 留空则跟随当前模型,选择后所有 spawn_task 默认使用该模型
- spawn_task 工具仍支持单次指定 model 参数覆盖默认值
2026-06-05 10:56:08 +08:00
thzxx
da71020003
spawn_task 支持指定子代理模型
...
- 工具定义新增 model 参数,可指定小模型跑简单任务
- learn_task 子代理说明更新:展示只读工具能力
2026-06-05 10:52:47 +08:00
thzxx
2d03c5f348
子代理增强:支持只读工具调用 + 可配置参数 + 10轮/5分钟
...
- 15 个只读工具可用:文件读取、搜索、浏览器查看、记忆/会话/技能查询
- 内置 mini Agent Loop,独立执行工具调用链
- 可配置 maxLoops / timeout / model
- agent-engine 批次并行已天然支持多个 spawn_task 并行
2026-06-05 10:50:14 +08:00
thzxx
361e58b8d1
调整提示词顺序:USER.md 移至 AGENT.md 之后、记忆/工作空间之前
2026-06-05 10:10:17 +08:00
thzxx
988efd1733
v0.9.0: SOUL.md/AGENT.md/USER.md 化为工作空间文件,去掉代码内硬编码提示词
...
- 版本号 v1.1.0 → v0.9.0
- AGENT_SYSTEM_PROMPT + TOOL_USAGE_GUIDE 提取为 AGENT.md(工作空间优先,内置 fallback)
- SOUL.md 同级改造(工作空间优先,内置 fallback)
- 删除 inferUserProfile 自动用户画像,改为 USER.md 手动编辑
- 三个 .md 内置版本放在 src/renderer/public/(Vite publicDir 自动复制)
2026-06-05 09:35:39 +08:00
thzxx
968350861d
fix: 系统提示词卡片包含 SOUL.md 内容
...
state.set('_lastSystemPrompt') 改为从 messages 中拼接所有 system 消息,
确保 SOUL.md 也出现在 AI 回复顶部的折叠卡片中。
2026-06-04 22:04:54 +08:00
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
thzxx
4a7b84c9a2
fix: 调整搜索结果来源引导,优先官方文档而非知乎
2026-04-28 14:46:43 +08:00
OpenClaw Agent
4781abadf0
optimize: enhance web_search, web_fetch, browser tools
...
- browser.ts: Fix XSS injection in browserClick/browserType via JSON.stringify
- browser.ts: Replace fixed 1000ms wait with did-finish-load event + 30s timeout
- web_fetch: Add 15s HTTP timeout via AbortController
- web_fetch: Improve HTML→text conversion (block-level tags→newlines, nav/header/footer removal, comprehensive HTML entity decoding)
- web_fetch: Add content-length pre-check (10MB limit)
- web_search: Add 15s HTTP timeout per engine request
- web_search: Add URL deduplication across results
- web_search: Clean residual HTML tags/entities from snippets
- download_file: Add 60s download timeout
- tool-registry: Fix missing logWarn import
- Extract shared decodeHTMLEntities with 40+ entity mappings
2026-04-28 11:30:55 +08:00
thzxx
9cb6c243a7
refactor: use typed window.metonaDesktop instead of (window as any)
...
Replaced all '(window as any).metonaDesktop' with the properly typed
'window.metonaDesktop' across mcp-client.ts, skill-manager.ts,
agent-engine.ts, and log-service.ts. The MetonaDesktopAPI type is
already declared in types.d.ts, so the 'as any' cast was unnecessary
and bypassed type checking.
2026-04-24 14:03:34 +08:00
thzxx
0065ded925
fix: replace 'any' type with ChatDB for state.get(KEYS.DB)
...
The DB state variable in agent-engine.ts was typed as 'any', bypassing
type checking for getSetting() calls. Replaced with proper ChatDB type
import and null-safe typing.
2026-04-24 14:02:56 +08:00
thzxx
e4dc7f945f
fix: correct search_files result field name in formatToolResultForModel
...
The search_files tool handler returns results in a 'results' field
(containing per-file match arrays), but formatToolResultForModel was
referencing 'result.matches' which is undefined. This caused the model
to never see actual search file results, breaking the search → read
tool chain workflow.
2026-04-24 13:55:53 +08:00
thzxx
74f5e384b5
fix: import missing logSuccess in agent-engine.ts
...
logSuccess was used on line 509 for auto-compress completion logging
but was never imported from log-service.ts, causing a runtime
ReferenceError when context auto-compression triggers.
2026-04-24 13:55:33 +08:00
Metona Dev
9f38d35b1e
fix: 修复 agent-engine 中 abortController 在自动压缩前未定义导致 ReferenceError 的严重 bug
...
compressWithLLM() 调用时引用的 abortController 变量在 while 循环内才定义,
但自动压缩逻辑在 while 循环之前执行,导致运行时 ReferenceError。
修复方式:使用 state 中已有的 AbortController 或创建新的实例。
2026-04-24 12:43:30 +08:00
Metona Dev
8e53a411d6
feat: /compress 上下文压缩 + Skill 渐进式加载
2026-04-24 12:35:49 +08:00