Skip to content

Releases: Verlintas/BetterAIChat

v0.27.4

Choose a tag to compare

@Verlintas Verlintas released this 27 Sep 04:47

v0.27.4 — 重要修复:截屏权限不再「自己掉」(AI 不再全瞎)

问题

Android 14+ 上,每次授权只能创建一次屏幕投影(系统限制:MediaProjection token 单次消费)。旧实现每次截图都重建投影——导致第二次截图起必定失败并提示「授权已失效」,AI 在做完一次屏幕分析后即变「全瞎」。

修复

  • 重构为持续投影:授权一次后创建常驻的虚拟显示与帧缓冲,整个会话期间复用;每次截图直接读取最新帧,不再重建、不再重复消费授权
  • 前台服务保持进程常驻:切后台、锁屏期间授权持续有效
  • 屏幕旋转/分辨率变化自动适配(调整投影尺寸并更换帧缓冲)
  • 投影错误现在带具体原因记录,便于诊断

实测:一次授权后连续两次截图全部成功(此前第二次必挂)。

说明(系统限制)

应用进程被系统彻底杀掉后,Android 要求重新授权(平台设计,所有投屏类应用均如此);正常情况下前台服务会保持授权有效。

SHA-256:

  • full: b6e0f6299629851b7ed19a65faf8f6f6822ef7c0d0f374b00a91a78666c4fcbc
  • lite: bd23d045f9825e87cd4cec28625c62ce8de1cba114b8424c0b667495f7fddee4

v0.27.4 — Important fix: screen-capture permission no longer 'falls off'

Problem

On Android 14+ a MediaProjection token can create exactly ONE virtual
display and can only be consumed once (platform restriction). The old
implementation rebuilt the projection on every capture, so the second
screenshot always failed with 'authorization expired' - after one screen
analysis the AI went blind.

Fix

  • Rewritten as a persistent projection: after authorization the
    service creates the virtual display and frame buffer once and keeps
    them for the whole session; every capture reads the latest frame -
    no rebuilding, no token reuse
  • Foreground service keeps the process alive: the grant survives
    backgrounding and screen-off
  • Rotation/resolution changes are handled by resizing the projection
    and swapping the frame buffer
  • Projection errors are now logged with their exception for diagnosis

Verified on emulator: one authorization, two consecutive screenshots
both succeeded (previously the second always failed).

Note (platform behavior)

If the OS fully kills the app process, Android requires re-authorization
(true for all casting/screen-sharing apps); the foreground service
normally keeps the grant alive.

SHA-256:

  • full: b6e0f6299629851b7ed19a65faf8f6f6822ef7c0d0f374b00a91a78666c4fcbc
  • lite: bd23d045f9825e87cd4cec28625c62ce8de1cba114b8424c0b667495f7fddee4

v0.27.3

Choose a tag to compare

@Verlintas Verlintas released this 27 Sep 04:27

v0.27.3 — 滚动流畅性根治 + Markdown 渲染修复 + 自主模式不限轮次

滚动抖动根治(重要)

  • 根因:旧的「每 80ms 强制滚动」与 Markdown 异步布局互相竞争,产生剧烈抖动
  • 重构为布局驱动跟随:布局完成后仅在内容超出视口时补滚一次——无循环、无延迟、无竞争
  • 顺带修复隐藏死锁:此前程序自身滚动会被误判为「用户在看历史」而停止跟随;现在只有真实手指拖拽才暂停跟随
  • 实测(设备日志 + 截图):流式时屏幕稳定显示最新内容,不再抖动/停在第 1 行

Markdown 渲染修复

  • 无外框表格修复:AI 常输出的 项目 | 价格(不带首尾 |)格式此前渲染成纯文本,现已正确显示为表格(这是「很多表格显示不出来」的主因)
  • 标题/列表/引用缺空格自动修复:###标题、-列表项、1.列表项、>引用 均正常渲染
  • 全角星号 **加粗** 自动转换;版本号 1.5 等不受影响

工具调用轮次

  • MAX 模式上限 12 → 50:自主任务不再因轮次耗尽被强制中断(防死循环兜底);Build 模式保持 12

SHA-256:

  • full: 3ba03e417a606669c9f0cf3ecd2cc75389c1f091b174e0275b2ecefdd538ed64
  • lite: f18cdab7e7ae0735fd6fa0937c3529055a886424fadb9e1dcd97be9c7d726762

v0.27.3 — Smooth scrolling (root fix) + markdown rendering + unlimited MAX rounds

Scroll jitter fixed (root cause)

  • The old "force-scroll every 80ms" loop fought Markdown's async layout, producing heavy jitter
  • Rebuilt as a layout-driven follower: after each layout, scroll once only if the last item exceeds the viewport - no loop, no delay, no fighting
  • Fixed a hidden deadlock: programmatic scrolls were mistaken for "user is reading history" and silently disabled following; now only real finger drags pause it
  • Verified on device (logs + screenshots): the screen steadily shows the newest lines while streaming

Markdown rendering fixes

  • Tables without outer pipes (item | price style, common in model output) now render as real tables instead of plain text - this was the main cause of "many tables don't display"
  • Auto-fix missing spaces: ###title, -item, 1.item, >quote all render correctly now
  • Full-width stars **bold** converted; version numbers like 1.5 untouched

Tool rounds

  • MAX mode ceiling 12 -> 50: autonomous tasks are no longer cut off mid-work (anti-deadlock guard only); Build mode keeps 12

SHA-256:

  • full: 3ba03e417a606669c9f0cf3ecd2cc75389c1f091b174e0275b2ecefdd538ed64
  • lite: f18cdab7e7ae0735fd6fa0937c3529055a886424fadb9e1dcd97be9c7d726762

v0.27.2

Choose a tag to compare

@Verlintas Verlintas released this 26 Sep 01:03

v0.27.2 — 会话内搜索 + 图片缩放

会话内搜索

  • 聊天页顶部新增搜索按钮:内联搜索框,不离开对话即可查找历史消息
  • 实时匹配计数(如 3/12)+ 上一个/下一个循环跳转,自动滚动定位到匹配消息
  • 大小写不敏感;搜索时自动暂停贴底跟随,结果不会被新消息拉走

图片查看

  • 双指缩放(1x–5x)+ 放大后拖动平移
  • 双击在 1x 与 2.5x 之间切换;单击关闭;缩回 1x 自动复位

SHA-256:

  • full: 4d1ea18ecb0b4c71a45181e7828b68bd53e9a2472e058541a713f3304e142eb7
  • lite: 21695ffa42a7fde9a620039c5adc9c7740a5d3ec181dd056065d72d59d198945

v0.27.2 — In-chat search + image zoom

In-chat search

  • New search button in the chat top bar: inline field, find messages without leaving the conversation
  • Live match counter (e.g. 3/12) with wrap-around previous/next navigation that scrolls to each match
  • Case-insensitive; bottom-follow pauses while searching so results aren't yanked away

Image viewer

  • Pinch to zoom (1x–5x) with panning when zoomed
  • Double-tap toggles 1x / 2.5x; single tap closes; position resets at 1x

SHA-256:

  • full: 4d1ea18ecb0b4c71a45181e7828b68bd53e9a2472e058541a713f3304e142eb7
  • lite: 21695ffa42a7fde9a620039c5adc9c7740a5d3ec181dd056065d72d59d198945

v0.27.1

Choose a tag to compare

@Verlintas Verlintas released this 18 Sep 16:56

v0.27.1 — 深度工具强化:AI 现在能「看见」界面并精确点击

UI 自动化质变(核心)

此前 AI 只能盲猜坐标点击,不知道按钮在哪里。现在形成完整闭环:

  • ua_find_text 查看界面结构:列出屏幕上所有文字元素的坐标与可点击状态(可留空列出全部可点项)
  • ua_tap_text 按文字点击:「点登录按钮」——基于无障碍节点查找,比坐标点击可靠得多
  • screen_ocr 默认返回每行文字坐标 文字 @(x,y):AI 读到内容就知道位置,配合坐标点击精确操作
  • 全流程:看界面 → 按文字点 → OCR 验证结果,任意 App 自动化真正可用

其他深度强化

  • calculator 科学计算:sin/cos/tan/sqrt/log/ln/floor/ceil/round(角度制)、常量 pi/e、百分比(200*15% = 30)
  • get_time 日期计算:days_offset 回答「3 天后是几号星期几」
  • write_document 追加模式:分多次写长文档不再覆盖
  • media_control 查询当前曲目:歌名/艺术家/专辑/播放进度
  • read_notifications 过滤:按时间范围(最近 N 小时)+ 应用名筛选
  • fetch_rss 条目摘要:订阅条目附带内容摘要

工具总数 63。需要无障碍 + 截屏权限(设置 → 权限)。

SHA-256:

  • full: 2762820e2825d8eae8490a66c384e61d72a5ae2274da8ff6ceb3756c39b9b41e
  • lite: 03aaba5f2c39be92acc9ae59d110b24e10b85d0a3d6cc14b82925d7ac92a19dd

v0.27.1 — Deep tool upgrades: the AI can now SEE the UI and tap precisely

UI automation breakthrough

The AI used to guess coordinates blindly. Now it's a closed loop:

  • ua_find_text: lists every text element with coordinates and clickability (leave text empty to list all tappable items)
  • ua_tap_text: taps an element by its text ("tap the Login button") via the accessibility tree - far more reliable than coordinates
  • screen_ocr now returns per-line coordinates text @(x,y) by default, so the AI knows where things are and can tap precisely
  • Workflow: inspect UI -> tap by text -> verify with OCR. Real automation of any app.

Other deep upgrades

  • calculator: scientific functions (sin/cos/tan/sqrt/log/ln/floor/ceil/round, degrees), constants pi/e, percentages (200*15% = 30)
  • get_time: days_offset answers "what weekday is it 3 days from now"
  • write_document: append mode for multi-part long documents
  • media_control: status action returns the current track (title/artist/album/progress)
  • read_notifications: filter by time range (last N hours) and app name
  • fetch_rss: entries now include content summaries

63 built-in tools. Requires Accessibility + screen-capture permissions (Settings -> Permissions).

SHA-256:

  • full: 2762820e2825d8eae8490a66c384e61d72a5ae2274da8ff6ceb3756c39b9b41e
  • lite: 03aaba5f2c39be92acc9ae59d110b24e10b85d0a3d6cc14b82925d7ac92a19dd

v0.27.0

Choose a tag to compare

@Verlintas Verlintas released this 18 Sep 16:33

v0.27.0 — 六个新工具 + 四个工具强化 + 工程加固

新增工具(55 → 61)

  • create_calendar_event 日历日程:AI 帮你安排会议/日程(打开日历预填标题、时间、时长、地点,你确认后保存),无需任何权限
  • get_app_usage 应用使用时长:回答「我今天用了多久手机」「哪个应用用得最多」(需「使用情况访问」权限,含引导)
  • unit_convert 单位换算:长度/重量/温度/面积/速度/数据/时间,支持「公斤→磅」「摄氏度→华氏度」等中文说法,精确换算
  • search_contacts 联系人搜索:按姓名查号码(需通讯录权限,已加授权入口),配合拨号工具一句话打电话
  • list_files / read_text_file 文件浏览与读取:查看下载/文档目录中的文件与文本内容(安全白名单目录,≤1MB)

工具强化

  • device_info:新增 CPU 核数、内存占用、屏幕分辨率/DPI、充电状态、开机时长
  • set_volume:支持指定音量类型(媒体/铃声/通知/闹钟/通话)
  • list_installed_apps:显示应用版本号
  • get_weather:新增能见度、紫外线指数、降水量

工程与体验

  • 界面文案国际化补全:25+ 处此前遗漏的通知/错误提示(含 401/429/超时等错误映射)全部支持中英切换
  • 安全加固:网页读取拦截内网地址(SSRF 防护);提醒 ID 改用原子生成器(消除同毫秒冲突);外部分享文本长度限制
  • CI 上线:GitHub Actions 自动跑单元测试与双版本构建,每次提交自动验证

SHA-256:

  • full: 1e1925c30a4270823e18d397a1dd73ab7ccae07fd314158eca46ac160ee90d29
  • lite: 3d80bd4df47925c8e47aa2dd49c4d320da3bb7b593200a541bcb7641cc0a3742

v0.27.0 — Six new tools + four upgrades + engineering hardening

New tools (55 → 61)

  • create_calendar_event: the AI schedules events for you (opens the calendar pre-filled with title/time/duration/location; you confirm and save) - no permissions needed
  • get_app_usage: answers "how much phone time today" / "which app did I use most" (Usage access required, with guidance)
  • unit_convert: length/weight/temperature/area/speed/data/time, including Chinese phrasing like 公斤→磅, with exact factors
  • search_contacts: look up phone numbers by name (Contacts permission with a new Settings entry); pairs with the dialer tool
  • list_files / read_text_file: browse and read files in Downloads/Documents (safe allow-listed directories, ≤1MB text)

Tool upgrades

  • device_info: CPU cores, memory, screen resolution/DPI, charging state, uptime
  • set_volume: stream selector (media/ring/notification/alarm/call)
  • list_installed_apps: shows app version
  • get_weather: adds visibility, UV index, precipitation

Engineering & UX

  • i18n completion: 25+ previously hard-coded notifications/errors (including the 401/429/timeout error mapping) now follow the language setting
  • Security hardening: SSRF guard blocks private-network URLs in web fetching; reminder IDs use an atomic generator (no same-millisecond collisions); shared-text length capped
  • CI online: GitHub Actions runs unit tests and both flavor builds on every push

SHA-256:

  • full: 1e1925c30a4270823e18d397a1dd73ab7ccae07fd314158eca46ac160ee90d29
  • lite: 3d80bd4df47925c8e47aa2dd49c4d320da3bb7b593200a541bcb7641cc0a3742

v0.26.5

Choose a tag to compare

@Verlintas Verlintas released this 12 Sep 01:16

v0.26.5 — 搜索效率升级 + 渲染修复 + 删除确认

搜索工具再升级

  • 多 query 一次搜索:query 支持关键词数组(最多 3 个),对比类/多主体问题一轮完成,不再分多次调用
  • 相关性排序:结果按关键词匹配度排序(标题命中权重更高),头部结果和自动抓取的正文更切题
  • 标题去重:跨 query 合并时同文章不同链接自动去重
  • web_read 批量读取:新增 urls 数组(最多 3 个),一次并发读完多篇网页,节省轮次
  • Build 模式也加入搜索策略提示(与 Max 一致)

渲染修复

  • 中文加粗修复:中文**加粗**中文 这类紧邻文字的加粗此前不生效(Markdown 规范限制),现已修复;粗斜体、连续加粗同样处理
  • 表格全面升级:支持 :---: 左/中/右对齐、隔行底色、超过 3 列自动横向滚动、单元格内加粗与行内代码渲染、\| 转义与不齐整行补齐
  • 路径反斜杠修复:表格单元格中的 C:\Users\... 不再被吞掉反斜杠

安全交互

  • 删除会话 / 清除聊天记录二次确认:此前菜单和滑动删除会直接执行;现在弹出确认框(含会话名与后果说明),滑动删除改为弹回并弹确认

SHA-256:

  • full: 6d068cab5b7233eb07b1e1226aede63b8197d167ffe8fd5787a0f8875f092390
  • lite: 31960410702c597eb01b905d85a05e41fe5042a2512a829679deecb1bc406956

v0.26.5 — Search efficiency + rendering fixes + delete confirmation

Search upgrades

  • Multi-query in one call: query now accepts a keyword array (up to 3) — comparison/multi-subject questions complete in a single call
  • Relevance ranking: results are sorted by keyword match (title hits weighted higher), so top results and auto-fetched bodies are on-topic
  • Title dedup: cross-query merge drops the same article from different links
  • web_read batch: new urls array (up to 3) reads multiple pages concurrently in one call
  • Build mode now gets the same search strategy hint as Max

Rendering fixes

  • CJK bold fix: 中文**加粗**中文 (bold adjacent to text) previously rendered literally due to Markdown spec rules — now fixed, including italic and consecutive cases
  • Table upgrade: :---: left/center/right alignment, zebra striping, horizontal scroll beyond 3 columns, inline bold/code inside cells, \| escapes and ragged-row padding
  • Path fix: backslashes in cells (e.g. C:\Users\...) are preserved

Safer destructive actions

  • Confirm dialogs for delete/clear: the context menu and swipe-to-delete used to execute immediately; now a confirm dialog shows the conversation title and consequences, and swipe springs back to open the same dialog

SHA-256:

  • full: 6d068cab5b7233eb07b1e1226aede63b8197d167ffe8fd5787a0f8875f092390
  • lite: 31960410702c597eb01b905d85a05e41fe5042a2512a829679deecb1bc406956

v0.26.4

Choose a tag to compare

@Verlintas Verlintas released this 11 Sep 16:28

v0.26.4 — 重要修复:带参数工具调用全部失败的问题

感谢真实设备反馈:部分模型下所有需要参数的工具调用(搜索、打开应用、应用列表等)都会失败,提示「收到的参数不是有效 JSON(JsonLiteral is not a JsonObject)」,而不带参数的工具正常。此问题会导致 AI 反复重试耗尽轮次。

根因(两端都有问题)

  1. 模型参数格式兼容:部分模型/网关会把参数双重编码(把整个 JSON 对象再包一层字符串)或夹带说明文字,旧解析层只认标准 JSON 对象,直接拒绝
  2. 流式分片合并缺陷:参数分片到达时不满足"前缀扩展"的片段会被静默丢弃,导致参数不完整

修复

  • 参数解析三层容错:标准 JSON 对象 → 双重编码自动解码 → 从文本中提取 {...} 对象;失败时保留原文片段便于诊断
  • 分片合并自适应:前缀增长 / 重复整发 / 乱序分片拼接 / 垃圾片段保护——不再丢任何分片
  • 新增 13 个单元测试覆盖上述所有解析场景

影响

搜索、打开应用、安装列表等所有带参数工具恢复正常;这也是此前「AI 连续写错指令」的根本原因之一。

SHA-256:

  • full: 06f0eb530a83e2c7795dd3f0a0cb0b215bc96ab319d56a647fe5219dd0820392
  • lite: c9435822ba5344bcca1dd46684c26700415d2c839945166e2ae28db75349baf5

v0.26.4 — Critical fix: parameterized tool calls all failing

Thanks to a real-device report: with some models, every tool call that takes parameters (search, open app, installed apps, etc.) failed with "received arguments are not valid JSON (JsonLiteral is not a JsonObject)", while no-argument tools worked. This made the AI burn rounds retrying.

Root causes (both ends)

  1. Argument format compatibility: some models/gateways double-encode arguments (the whole JSON object wrapped in a string) or wrap them in prose; the old parser only accepted a plain JSON object and rejected everything else
  2. Streaming fragment merge defect: argument fragments that didn't match prefix-growth were silently dropped, producing incomplete arguments

Fixes

  • Three-layer tolerant parsing: plain JSON object → double-encoded auto-decode → extract {...} span from text; failure keeps the raw payload snippet for diagnosis
  • Adaptive fragment merge: prefix growth / full resend / out-of-order concatenation / junk protection — no fragment is dropped anymore
  • 13 new unit tests covering every parsing scenario

Impact

Search, open-app, app lists and all parameterized tools work again; this was one of the root causes behind the AI "repeatedly writing wrong commands".

SHA-256:

  • full: 06f0eb530a83e2c7795dd3f0a0cb0b215bc96ab319d56a647fe5219dd0820392
  • lite: c9435822ba5344bcca1dd46684c26700415d2c839945166e2ae28db75349baf5

v0.26.3

Choose a tag to compare

@Verlintas Verlintas released this 10 Sep 04:48

v0.26.3 — 基础体验优化

会话列表

  • 最后消息预览:每条会话标题下方显示最新消息摘要,回列表一眼看到聊到哪
  • 智能时间格式:今天显示 01:34、昨天显示「昨天」、今年显示 09-06、更早显示完整日期(此前全部是固定格式)

聊天输入

  • 发送后键盘保持:连续对话无需反复点击输入框,发送后即可继续输入
  • 新内容提示:流式生成中若你上滑查看历史,「回到底部」按钮带红点提示有新内容

交互质感

  • 长按消息、长按会话卡片增加震动反馈

SHA-256:

  • full: 2c2adeac4a1c8650b863c599e5cfe0a26d79c4bdf6286e729f5d47ecb68a9464
  • lite: 1d4ecf59bd6c6a8d21a47331a73fc6ecb7a2b029bdaae14e59b9394f55bb5222

v0.26.3 — Base UX polish

Conversation list

  • Last message preview: each conversation now shows a one-line summary of its latest message, so you can see where you left off at a glance
  • Smart timestamps: today shows 01:34, yesterday shows "昨天/Yesterday", this year shows 09-06, older shows the full date (previously one fixed format for everything)

Chat input

  • Keyboard stays after sending: continue typing immediately without re-tapping the input field
  • New-content hint: while streaming, if you've scrolled up to read history, the back-to-bottom button shows a red badge

Feel

  • Haptic feedback on long-press for messages and conversation cards

SHA-256:

  • full: 2c2adeac4a1c8650b863c599e5cfe0a26d79c4bdf6286e729f5d47ecb68a9464
  • lite: 1d4ecf59bd6c6a8d21a47331a73fc6ecb7a2b029bdaae14e59b9394f55bb5222

v0.26.2

Choose a tag to compare

@Verlintas Verlintas released this 09 Sep 18:00

v0.26.2 — 工具与 AI 交互层升级 + 聊天页体验修复

更智能的工具交互层

  • 参数自愈:工具执行前按 schema 自动修复参数——类型错误自动转换(对象/数字 → 字符串、字符串 → 整数),拼错的参数名(如 querry → query)自动纠正;结果会标注"已自动修正参数",模型学会正确写法。坏参数从"连续失败"变成"自动修好并执行"
  • 并行工具执行:Max 模式下,模型一次发起的多个独立工具调用并发执行(例如同时查时间 + 网络 + 计算三个工具同一轮完成,不再串行浪费轮次);结果按调用顺序回传,需要逐项确认的 Build 模式不受影响
  • 熔断机制保留为最后防线(自愈后仍失败的调用连续 3 次将被拒绝并给出明确指引,不再烧光轮次)

聊天页修复

  • 退出重进自动定位到底部:此前进入对话停在顶部(消息异步加载后滚动逻辑未触发);现在进入即定位到最新消息
  • 思考过程显示顺序:Thinking 卡片移到正文上方(思考 → 回答),且修复了思考文本在消息重载后丢失的问题(现在思考过程会持久显示)

SHA-256:

  • full: 2803815b87967b1734056b6ba6136bc34322f9be9f7522689255a827cda28f16
  • lite: d134257b23722db55d754d6ac808be57674db301a3f4a7b7f22f4534ff2996ea

v0.26.2 — Smarter tool-AI interaction layer + chat UX fixes

Smarter tool interaction

  • Self-healing arguments: before a tool runs, its arguments are validated against the tool schema and auto-fixed — wrong types are converted (objects/numbers → string, strings → integer for int fields) and misspelled parameter names are corrected (e.g. querry → query, ≤2 edits). Results are annotated with "auto-fixed parameters" so the model learns the correct form. Malformed calls now succeed instead of failing repeatedly
  • Parallel tool execution: in Max mode, independent tool calls from one assistant round now run concurrently (e.g. time + network + calculator all complete in a single round instead of serial round-trips); results are returned in call order. Build mode's per-tool confirmation is unaffected
  • The circuit breaker stays as the last line of defense: 3 consecutive failures after healing are rejected with clear guidance, so rounds are never burned on a broken call

Chat fixes

  • Re-entering a conversation now lands at the bottom: previously the list stayed at the top (the async message load never re-triggered the scroll logic); now you always enter at the latest message
  • Thinking card above the answer: the collapsible thinking card now renders above the reply bubble (thinking → answer order), and thinking text is preserved after message reload (it used to vanish once streaming finished)

SHA-256:

  • full: 2803815b87967b1734056b6ba6136bc34322f9be9f7522689255a827cda28f16
  • lite: d134257b23722db55d754d6ac808be57674db301a3f4a7b7f22f4534ff2996ea

v0.26.1

Choose a tag to compare

@Verlintas Verlintas released this 09 Sep 15:56

v0.26.1 — 搜索工具全面升级

将联网搜索从「标题+链接列表」升级为一次调用即可完成研究的核心能力:

一次搜索闭环(read_top)

  • 搜索后自动抓取正文(默认前 1 条,可 0-3 条),多数问题一次搜索即可回答,无需逐条打开网页
  • 无损提取:语义元素级抓取(正文段落/标题/列表),自动过滤作者信息栏等噪音(码龄/阅读量/收藏/红包等 20+ 模式),消除源页面重复段落;单篇预算最高 5000 字符,随 read_top 动态分配
  • 反爬容错:自动跳过被拒网站(如百度百科 403),最多尝试 8 个来源直到抓满

六引擎并发 + 结果治理

  • 新增 360 搜索,Bing/百度/Brave/DuckDuckGo/Mojeek/360 六引擎并发合并
  • 域名去重(同站最多 2 条)让结果覆盖更多来源,官方站更易浮现
  • URL 清洗:剥离 utm/spm/from 等追踪参数
  • 引擎诊断:全部失败提示网络受限;部分可用提示结果可能不完整

更聪明、不卡死

  • 工具轮次上限 8 → 12;用尽时明确指示模型基于已有信息回答
  • 工具结果预算 1500 → 6000 字符(正文完整到达模型)
  • 空结果返回可执行建议(加限定词/换表述/试英文),不再鼓励盲目重试
  • 查询结果 5 分钟缓存(按参数区分),refresh=true 可强制重搜时效内容
  • Max 模式内置搜索策略指导;web_read 失败提示换源而非重试同一 URL

SHA-256:

  • full: 24d02daa001aeeae15db270a1bb3f460f0502a39dad0b4d5166da216979804f1
  • lite: 20d8d7a8c0b221a05d5dab3299e4978d471e07e430f1d5a8d3c64987381ddc87

v0.26.1 — Search overhaul

Web search is upgraded from "title + link list" to a one-call research loop:

One-call loop (read_top)

  • Search now auto-fetches article bodies (default top 1, 0-3 configurable); most questions are answered in a single call — no per-URL web_read round-trips
  • Lossless extraction: walks semantic elements (paragraphs/headings/lists), strips author-bar boilerplate (views/favorites/follow prompts etc., 20+ noise patterns), removes duplicated paragraphs from source pages; per-article budget up to 5000 chars scaled by read_top
  • Anti-bot resilience: skips blocked sites (e.g. baike 403), tries up to 8 sources until the requested number of bodies succeed

Six engines + result governance

  • New 360 engine: Bing/Baidu/Brave/DuckDuckGo/Mojeek/360 merged concurrently
  • Domain dedup (max 2 per site) diversifies coverage, surfacing official sources
  • URL hygiene: utm/spm/from tracking params stripped
  • Engine diagnostics: all-fail = network blocked note; partial coverage warning

Smarter, no more deadlocks

  • Tool rounds 8 → 12; exhaustion message tells the model to answer from what it has
  • Tool-result budget 1500 → 6000 chars (bodies survive to the model)
  • Empty results return actionable guidance instead of encouraging blind retries
  • 5-min per-parameter cache with refresh=true bypass for time-sensitive follow-ups
  • Max-mode prompt teaches search strategy; web_read suggests switching sources instead of retrying the same URL

SHA-256:

  • full: 24d02daa001aeeae15db270a1bb3f460f0502a39dad0b4d5166da216979804f1
  • lite: 20d8d7a8c0b221a05d5dab3299e4978d471e07e430f1d5a8d3c64987381ddc87