更新日志
NevoFlux 的版本更新 —— 版本、下载与变更。
-
v0.3.16
最新本次版本的重头戏是让另一个 Agent 来驾驶——把 Muse 这样的 AI Agent 与你的浏览器配对,由你决定它能伸手到哪一步,看得见它碰过的每一个标签页,还能把整件任务交给它,在侧栏里像你自己的对话一样跑完。围绕它的还有:一个完全跑在你自己机器上的模型,点一次就只点一次、而且点在你想点的那个东西上,每条回答都写明花了多少,以及一个会说 A2A、OpenAI 与 Anthropic 接口的无头 Agent。
🤝 让另一个 Agent 来驾驶
/pair-agent会给出一段配对文本,贴给 Agent;你在 nevoflux.app/device 批准之后,它就以 MCP 服务器的身份经加密中继连到这个浏览器。没有明文模式,Agent 的配对也单独存在一个文件里——与手机分开,免得降级后的 daemon 把 Agent 当成手机、交出设备控制权- 它只看得见十六个浏览器工具——快照、读取、截图、标签页、导航、点击、填写、输入、按键、滚动、等待、上传。名单之外的一律回答
unknown_tool - 档位是天花板,不是询问。 每个配对都从
read-only起步;browser-auto加上点击、输入与切换标签页;full-auto再加上传文件。超出档位的调用当场拒绝,不会问任何人;等待审批之后还会再查一次档位,所以审批途中调低档位一定生效。只有你能调高它——用/agent-tier,或在nevoflux://settings新增的 Muse 一节里 - 它在自己的标签页里干活。 新标签页在普通窗口的后台打开,绝不进隐私窗口;它拿到的标签页列表里没有隐私标签页;Agent 打开或碰过的每个标签页,图标上都会挂一个角标。导航只允许 http、https 或 about:blank,重启前的标签页 id 会回答
tab_closed,而不是落到你的某个标签页上 - 网站规则现在对 Agent 的点击和输入生效了。此前判断时根本不知道目标是哪个标签页,于是它们从来没有被应用过
- 每个已配对的 Agent 都有一条状态栏,可以暂停、恢复、解除配对。暂停在重启后依然有效,暂停中的 Agent 不会被重新拨号;解除配对会取消它所有未决的问题,并忘掉它的标签页。
/devices列出所有能连到这台机器的东西——手机和 Agent,连同它们此刻的状态——/unpair撤销其中一个 - 侧栏显示不了的审批结果会以系统通知送到你面前,而且说的是实话:Agent 正在批准时你调低了档位,你看到的是"已批准——已停止:Agent 的档位被调低",而不是"已批准"
📋 把整件任务交给它
- Agent 可以把一件任务交给 NevoFlux,而不必一下一下地点(
nevoflux_task_start、wait、approve、cancel)。它作为一轮普通的侧栏对话,在自己的会话里运行——"Muse 正在处理这项任务",带着停止按钮、它的审批和"查看会话"——历史记录也会把这类会话标成运行中、等待中或已完成 - Agent 拿回回答的同时还有一张结果截图:它生成的 Canvas,否则是它打开的标签页,再否则是它最后操作的那个。此前浏览器等 Canvas 大约 100 毫秒就放弃,什么图都不发;现在会等标签页出现并画完
- 每个配对同一时间只跑一件任务,每小时最多二十件;一件任务可以接着 Agent 自己之前的会话往下做——"现在把按钮改成蓝色"
- 有十种操作无论哪个档位都必须问——创建计划任务、运行计划任务、启动循环、切换扩展包或模型、设定目标、替换系统提示词、共享屏幕。它们只由你来回答,除非你打开"允许 Muse 批准敏感操作";其余的两端都能回答,先到先得,没人回答的三十分钟后视为拒绝。此前遇到只能由桌面端回答的审批,
task_wait会立刻返回,于是 Agent 白白轮询了半小时 - 交办的任务改不了 NevoFlux 自己的设置和配对——配置、技能、扩展包、配对文件、数据库——经由
..、符号链接和 Windows 不区分大小写的路径也不行。说清楚:shell 命令不在此列,所以在full-auto下这条保护并不成立 - 顺路堵上的几个洞:交办的一轮会捡起你当前的标签页,于是你正在看的页面进了 Agent 的任务,结果截图也对准了它;它派生的子 Agent 不受档位约束,在
full-auto下可以不问一声就做那十件必须问的事;一个读不出来源的会话会被当成你自己的。现在它按交办处理,并且只读
📱 一部手机,看得见整台机器
/pair-device用侧栏里的二维码配对手机,配对会被保存,每次启动都会重新拨号。二维码里只有链接——配对码由你手动输入,所以它永远不会留在浏览器历史里;说明里也写了要先安装应用,因为在 iPhone 上,主屏幕应用和 Safari 用的是两份不同的存储- 手机能看到这台机器上的每一个会话,打开任何一个都会重放之前的消息——在一个字节预算内由新到旧,因为此前保留的 512 帧已经涨到了 175 MB。在会话之间切换会复用这条通道,而不是重新协商一条可能要花好几分钟的点对点连接;手机上什么都没打开时,一个字节的聊天数据都不会发
- 有时打开是空白的会话现在会重新发送;配对码输错时显示绿色标记、列表却永远是空的,现在配对码会先归一化,八秒内读不懂任何东西,手机就会请你重新输入;鸿蒙手机不再卡在"请先安装"的循环里;掉线的手机两分钟后就不再算作在线,而不是十三到十六分钟
💻 跑在你自己机器上的模型
- 设置 › 本地运行让 Agent 用本地模型。NevoFlux 会探测硬件、推荐模型和后端,并在下载任何东西之前把要下载的都列出来——引擎和模型分开写,连同它们来自哪些主机。有更省空间的后端时它会提出来:CUDA 的体积大约是 Vulkan 的十倍
- 引擎是钉死版本的 llama.cpp
llama-server,按 CUDA → Vulkan → CPU 回落(macOS 上用 Metal),每个包都按大小和 SHA-256 钉死,先走镜像再走上游。模型是 Q4_K_M 量化的 Qwen3:默认 8B(5.0 GB),小一些的机器可选 4B 和 1.7B,内存估算会把放不下的那些禁用 - 选 8B,因为 4B 不够好。 在做这个决定的实验里,4B 在试过的每一种配置下挑对工具的准确率都只有 0.35–0.51,8B 总体 0.78,浏览器与 Agent 任务上 0.89–1.00。而代码此前默认的偏偏是 4B
- 开着它,什么都不会出去。 每一次模型调用都要过同一道出口闸。摘要和记忆转到本地引擎;没有程序化检查的目标会暂停,而不是去问云端的评估模型;循环被跳过,到期的计划任务记为错过,切换到云端模型会被拒绝。引擎起来之前,请求会被送到一个关闭的本地端口,在本机就失败,而不是跑到云端去;引擎本身以空环境启动,谁也没法递给它一条自己的网络通路
- 本地的一轮以约 7 KB 的短提示词起步,而不是几万个 token;工具也只有一个
tool_search,而不是大约六十份定义——其余的在模型开口要时再加载。让网页读取工具常驻,浏览器模式的准确率会从 0.90 掉到 0.20 - 安装是原子的、校验过的,每次启动前都会重新算哈希;引擎要先成功生成一次才报告就绪,聊天永远不排在后台记忆任务后面,闲置五分钟后引擎自动卸载。侧栏里的标记会说明本地运行意味着什么、不意味着什么:网页、搜索和 MCP 工具照样要联网
🎯 点一次,点在对的东西上
- 此前一次点击最多会换三种方式试,只要 500 毫秒内没看到效果就换下一种——于是勾上一个复选框,可能又被取消掉。现在每次点击只发送一次,可能已经执行过的点击或填写绝不重发:Agent 会被告知它可能已经发生,然后重新看一眼
- 不会隔着遮挡去点。 被遮住的目标会被拒绝,并说出是什么挡住了它;此前第三种方式恰恰是故意去点那层遮挡。点击落在目标自己的位置上,裁剪在滚动框里的目标会先滚进视野,顶层页面上的浮层也抢不走本该点进 iframe 的那一下
- 一个元素 id 在页面存续期间只指向一个节点。 此前快照每次都重新编号,还往页面里写属性,而 shadow root 和 iframe 里的那些从来没被清掉。现在页面里一个字都不写;要操作的节点已经没了,或者已经不是快照里那个东西了,操作就会被拒绝——包括一行被复用的列表,原来写着"Paris",现在写着"Parma"
- 无障碍角色直接从 Gecko 读。此前一张手写的对照表把链接读成"dialog"、把按钮读成"row";一次评测的快照里有 1464 行没有角色,改完之后是 165 行
- 快照现在包括 shadow DOM 里的控件(此前全部丢失)、同源 iframe 里的控件、下拉框的每个选项(都可以直接点)、复选框上的 ✓/☐(而不是一个看起来像状态、其实不是的
val="on"),以及还没被任何元素说出来的可见文字。密码和文件框的值不会出现。在 125% 的显示缩放下,每个列表的顶部此前都被当成"被遮挡"丢掉了——Agent 就是因此挑中了一个诱饵联系人 - CSS 选择器工具现在是一个需要模型主动加载的后备。在回归测试集上,每一次最终运行都是 21/21 全部通过,Agent 退而求其次去写脚本的次数从每次 120 降到 26
📊 每条回答花了多少
- 每条回答的工具栏上都有输入、输出 token 和生成速度——只调用了工具的回答也有;悬停可以看到调用次数、上下文大小、首 token 与总耗时以及模型,子 Agent 也算在内。它随消息一起保存;服务商什么都不报时,由一个正确计算中日韩文字的估算顶上,并且标明是估算
- 服务商确实报了的用量此前被扔掉了:Qwen 和 DeepSeek 把它放在最后一个没有 choices 的数据块里,两个解析器都跳过了它,Anthropic 路径也同样忽略了
- 所有走 Anthropic 接口的流量现在都启用提示词缓存,并且提示词在轮与轮之间保持逐字节不变——技能按固定顺序排列,工具定义不再被改写,旧的工具结果在超过 64 KB 后一起缩短,而不是每一步缩一条。在回归测试集上,每次试验未命中缓存的输入从 17.9 万 token 降到 4900,缓存命中率 98%,所有任务全部通过
- 上下文溢出时会缩短最早的那些工具结果再重试一次,而不是让这一轮失败;大到放不下的工具结果会写到磁盘上,模型照样能读
🔌 A2A,以及你已经在调的那些接口
- 无头模式的 NevoFlux 可以双向加入 Agent2Agent 网络。它提供 Agent 卡片,同时支持 0.3 与 1.0 两版线协议并可流式输出;调用方离开后任务照样跑,之后还能重新订阅;256 KiB 以内的文件直接内联返回,更大的给链接。官方 SDK 找出了三处单元测试没发现的协议不一致,都已修好
- 反过来,远端的 A2A Agent 可以像 MCP 服务器一样配置,它的技能就变成了工具
- 无头 daemon 还能应答
POST /v1/responses和POST /v1/messages,所以官方的 OpenAI 与 Anthropic 客户端只要改一下 base URL 就能驱动它 - 无头任务按轮报告用量,接受同一会话里的后续轮次,并且各有各的会话。被取消的任务现在报
canceled而不是failed,对每个状态值都做匹配的客户端需要加上这个新值 - 会话以事件形式记录,可以导出(
session export),也可以不用 API key 重放
🧱 Canvas 能做什么
- 生成的 Canvas 只能调用一小份 SDK 方法清单;设置、配对和账号永远够不着,另有六个会交出 bearer token 或能碰到其他会话数据的命令也加进了禁止名单。每个
nevoflux://页面只能用它需要的那几种桥接消息,网页和 Canvas 框架一种都用不了 - 扩展包的仪表盘要声明它会发送哪些 daemon 命令,安装预览会把它们列出来,什么都没声明的面板什么都够不着。此前安装时从来没保存过扩展包的清单文件,于是每个扩展包面板都被当成生成的 Canvas 来判断,它的声明形同虚设
- 面板只能操作它自己打开的标签页,得到的判断与模型在同一网站做同一件事时完全相同。扩展包的网站规则按最严格的生效;扩展包的工具策略只能拒绝或询问,永远不能放行;扩展包替换的系统提示词不再泄漏到之后的对话里;安装清单里凡是无法撤销的项,都不会替你预先勾上
- ACP 服务商发起的工具调用此前完全绕开了闸门和日志——一个会话里有 14 条工具结果,却记录了 0 次调用。现在每一次调用都走同一条有序的流水线
🧪 Jev,默认关闭
- 设置 › Jev 可以接入 TypeSafe 的 Jev——一个决定 Agent 看到哪些工具、技能和上下文、并给大块工具结果打分的小模型——用你自己的 key,由 TypeSafe 计费。它默认关闭,发送任何东西之前都会先说明要发什么;银行、支付、医疗、邮箱、政府和内网站点,永远只会交出域名和标题
- 上线之前我们测过,它不划算:在 DeepSeek 上成本涨了 95%,得分却没有提高,因为按任务挑选的工具集破坏了提示词缓存。所以即便打开 Jev,"挑选工具"也是关闭的;Jev 仍是一个可以自行开启的实验功能,而不是默认
🛠️ 修复
- MOSS 回落到 Kokoro 时,"朗读回答"就没有声音——而这恰恰是最常见的情况,因为大多数机器上没装 MOSS;MOSS"未安装"的回答还会在权重下载完之后依然被记着
- 任何一次断线之后,侧栏都会卡在 daemon 错误上直到重启浏览器;成批的请求会让数据流错位("Message too large: 1919951483 bytes");一次被打断的重连会让连接永久失效
- 侧栏会记录每一次重绘,Agent 状态栏又每秒重绘一次;流式生成的 Canvas 重新打开时可能被截断;Muse 设置页的开关在安静五分钟后就不再更新
在 GitHub 查看 →下载
-
v0.3.15
本次版本的重头戏是对话——你对它说话,它开口回答,全都跑在你自己的机器上,而且这一次终于包括中文。语音之外:远程控制能连上任何地方的手机,而不再只是同一个 WiFi 下的那一台;任何兼容 OpenAI 接口的服务都能当作模型服务商;浏览器也终于说得清一个页面在网络和控制台里到底做了什么。
🎙️ 它听得见了
tts_transcribe注册了好几个月,却一直回答"未配置"——工具自己的说明里就是这么写的。现在 SenseVoice 真的会转写了,在 CPU 上,release 构建下 39 倍于实时- 长录音在停顿处切分,而不是掐着秒表切。 单次推理只为整段音频判定一次语言,而激活值随音频每秒增长约 6 MB:305 秒的语音要占 2011 MB、只有 5.9 倍实时,并且丢掉了"胜出语言"以外的每一个词。改为在语音停顿处切分后,它占 528 MB、14.6 倍实时,峰值内存不再随录音长度增长,四种语言也都保住了——这才让五小时的录音重新回到可处理范围
- 每一段前后保留 200 毫秒的留白,而不是通常的 30 毫秒:在 30 毫秒下,第一个音节回来时声母是错的
- SenseVoice 认不出的语言交给 Whisper。 SenseVoice 只在五种语言里挑一个,遇到第六种就返回其中最像的那个——于是一段德语录音回来的不是报错,而是一份自信而错误的转写。Whisper 现在默认启用,默认模型是
base:常驻 585 MB、2.5 倍实时,而small是 1.90 GB、0.9 倍,large-v3-turbo是 4.77 GB、0.3 倍;在用来对比的那段音频上,前两者给出的转写完全相同 - 被移植的那份参考实现里有两处静默的毛病:它没有语言检测,而省略语言标记并不会让 Whisper 去猜,只会让它把同一个字符吐七十遍;它的重复检测则是死代码(
NaN > 2.4恒为假),于是一段静音会回来一句凭空捏造的话 - 如果每一段都失败,现在会返回错误。此前返回的是空转写,而那恰恰是一段真正无声的录音会返回的东西
- SenseVoice 本来就会给出的音频事件标记(
Speech、BGM、Applause、Laughter)不再被丢弃——一支开着的麦克风会听见音乐和同事说话,这两者的转写都不该被当成你说的话提交上去
🗣️ 中文终于有了声音
- Kokoro 的 g2p 直接拒绝它自己的中文音色,所以在此之前,中文用户拿到的不是更差的声音,而是没有声音。MOSS-TTS-Nano 就是解决它的引擎:五张 ONNX 计算图、717 MB、48 kHz 立体声、二十种语言,实测 0.647 倍实时,预算是 0.85
- 它的 SentencePiece 分词在这里从头实现,并拿上游随附的两个示例逐字校验过——中文与英文,20 和 69 个 token,都完全复现。这是唯一能抓出错误合并规则的检验;结构性测试就算算法是错的也照样全绿
- 由谁来说话是测出来的,而不是按语言分派的。 MOSS 装了、并且在这台机器上够快,就用 MOSS,否则用 Kokoro——而每一次回落都会把原因一并送到侧栏和设置页,因为"回落到 Kokoro"对英文用户只是换了个声音,对中文用户则是彻底没有声音
- 速度结论现在取最近五次真实合成的中位数:此前是一次在转写同时进行时测到的 2.07 倍决定了一切,而一分钟后同样的活儿只有 0.87 倍。它还有了退路——一旦"太慢"被存下来,引擎就不再运行,于是不再测量,于是结论永远不会变,唯一的出路是手工改
config.toml。设置页的重新测量会把它清掉,面板上也会列出这个数字背后的样本 - Kokoro 多了一个独立的
speak-chinese档位:Kokoro v1.1-zh、它的词表与 103 个音色。它是取代英文档位而不是扩充它——v1.1-zh 的音色库里同样带着英文音色,两份都留着就是 375 MB 的重复 - 设置页不再写死"仅支持英文",而是去看实际加载了哪些音色。那行字存在的意义就是解释"我为什么听到的是英文",在一台正用中文说话的机器上,它把排查引向了反方向
- 音色选择改由 daemon 回答并分组呈现,而不是页面里的一张表——有哪些音色取决于将由哪个引擎发声,Kokoro 在跑时却列出 MOSS 的十八个,等于让人挑一个静默无声的音色
🎧 在侧栏里说话
- 麦克风按钮现在真的会跑完整条链路。 你说的话会变成当前会话里一条普通的用户消息——同样的历史、同样的工具,daemon 里没有任何特例
- 整条音频链路都放在浏览器里,因为它的两端都在这儿。语音检测跑在 Worker 里,采集帧通过转移的端口直达它:走主线程实测多出 56 毫秒延迟、主线程占用率 97%,而那恰恰是"打断"必须生效的场景——Agent 在说话时,正是它把 token 流式渲染进页面的时候。采集端保留 400 毫秒的前置环形缓冲,因为等到检测出"开始说话",第一个辅音早就过去了
- 最后一句还没生成,第一句就已经在响。 回答在流式输出时按句切开、每句完成即合成,挂在一条可以失败而不影响文字回答的旁路上。播放端先攒一小段,于是句与句之间的空档合并成开头的一次等待,而不是每两句之间都断一下;只有一句话的回答由超时兜底放行,被打断时攒着的一并丢掉
- 不开麦克风也能听见回答。 此前朗读回答是搭在语音输入上的,于是想跟它说话就等于让它出声,想让它出声就得开着麦克风。"朗读回答"现在是独立开关,默认关闭,旁边是"需要时使用 GPU"——默认开启,而且它不是命令:语音会把两种后端都测一遍,留下在这台机器上更快的那个,对这些模型来说往往是 CPU
- 从第二个回答起,只听模式就整个哑掉,而且哪里都不报错:序号每一轮都从头开始,播放端却还停在上一轮的游标上。现在它会认领 daemon 起的这一轮
- 语音视图:说话时用一条波形取代消息气泡。这只是渲染层的切换,别的什么都没变——回答照样生成、照样保存、照样可搜索。语音条上也终于有了停下来的地方,键盘可达,并且会报出它听到的每一次断档:多长、在哪一句之前、这一轮第几次,而不是把"听着有点卡"当作全部的诊断
- 麦克风权限在启动时就为侧栏自己的来源授予,免得每次开语音都要两次手势。它绝不会覆盖一次明确的拒绝
- 模型可以从设置页下载,而且分档:能听见之前需要 240 MB,朗读回答再加 120 MB,MOSS 是 717 MB——分开下载,因为让第一档等着最后一档,等于在全部到齐之前谁都别想开口。大小与摘要都是钉死的,镜像排在上游之前,下了一半显示的是"已暂停于 40 MB"外加一个继续按钮而不是一个百分比,取消会保留已经下好的部分,失败则保留 daemon 自己的那条消息——它会列出试过的每一个源
📡 远程控制能连上任何地方的手机
- 直连此前只在局域网里成立,而对一个"手机在别的地方"才是全部意义的功能来说,那等于这个功能不存在。现在头端会通过将要用于连接的那个 socket 去问 STUN 服务器自己的公网地址——NAT 是按源端口映射的,从另一个端口学来的地址描述的是一个没人在听的孔
- 还有为最后五分之一准备的中继。 此前发出的每一个分配请求都被回以
400 Bad Request:标准强制要求的传输属性从来就没发出去过,于是中继候选根本无法获得,而挂在运营商 NAT 后面的手机因此完全没有路可走。现在流量按每包四字节封装,而不是每个包都套一整条 STUN 消息;通道绑定的应答也按发起它的那个请求来匹配,而不是从三个在途绑定里随便取一个 - 图片与文件现在走点对点连接,不再走按消息计费的中继。头端会声明自己愿意提供的分片大小,portal 据此规划偏移量,而且绝不会用比请求更少的字节作答——一张 77 KB 的截图此前只能到达四分之一,因为按 256 KiB 步进的偏移被回以 64 KiB,而剩下的窟窿没人回头去补。仍走中继的视频,一个 89 MB 的文件从 466 次请求降到 171 次
- 共享屏幕:Agent 可以把实时画面推上这条连接;没有直连时它会拒绝,而不是启动一个无处发送的编码器;征求同意的弹窗也会说明录的是什么、谁会看到,而不是请你批准"执行动作:screen_record"这么一句
- 一长串"报告成功、实际什么都没送到"的问题,现在都修好了:数据通道拒绝一次超大的写入时,把拒绝报成了成功值;字节被路由到一条还在协商中的连接上;portal 从来没读那个标记"此帧无序号"的标志位,于是每一个分片都被当成"已经送达"丢掉,而两端的日志都显示成功;重复的 offer 把它自己正在建立的那条连接拆掉;每一个 offer 都会被重放给重连的 portal 并被应答上千次,而这一端早已忘了那些协商;socket 绑在
0.0.0.0上而 offer 却宣称了一个真实网卡地址,于是连接自称已建立、握手却超时;还有 Windows 上那个在探测候选地址时再正常不过的连接重置错误,被当成了连接的终结 - 一个会话现在会体面地放弃:五次 offer 无人应答,或者这个网络拒绝了四次连接,它就说一次然后停手,而不是在整个会话生命周期里每五秒重发一次。这不损失任何东西:中继自始至终都在承载一切
- 中继开始遵守它自己的契约。 一条通道属于第一个打开它的账号,其他账号一律 403——此前泄露一个通道 id 就足以占掉它两个位置中的一个,把一个正常工作的头端挤下线。同一条通道上的两个头端也不再互相把对方的输出当成用户输入喂回去——那件事曾以机器速度跑了几个小时:一个下午 950 万条中继消息,而每日额度是十万条,期间没有任何人碰过任何东西
- 重连的资格靠"活得够久"挣来,而不是靠"连上了"。一个接受连接、转手就断开的服务端,此前每次都能把退避重置——只要页面开着就每秒两次连接,一个工作日约十万次,而那正好是随后被耗尽的额度。手机端每 30 秒 ping 一次,免得运营商 NAT 悄悄掐掉一条空闲连接;中继说了"那边没人"之后,至少等一分钟再拨
- 一条把播放器指向"资产库从未生成过的 id"的回答,现在会按这一轮实际产出的东西修正,或者连同 alt 文本一起丢掉——此前 portal 会画出播放器、去请求字节、连吃十一次 404,然后一直问下去。账号服务请求失败时,日志现在会说明是域名没解析、握手被拒,还是连接超时,而不再只有一句"error sending request"
🧩 自带模型服务商
- 任何兼容 OpenAI 接口的服务现在都能当作服务商:在设置页里新增、编辑、删除,或者用配置命令来操作。它们有稳定的 id,并与内置服务商并列出现在列表里
- 但聊天路径此前并不认识它们。用自定义服务商发起的一轮会以
Invalid provider: custom:<id>失败,而设置页却能好端端地列出并激活它——五处调用点自己去解析服务商 id,绕开了唯一认得它们的那次查找 - API key 的查找只列出了 18 个内置服务商中的 7 个,剩下十一个会静默落到环境变量上。存着的空 key 现在算作"没有",而不是被交给客户端
- 在 OpenAI 的 Responses 接口上,请求体里带了两个
role,被400 invalid_json拒绝。这条路径上的请求体现在会做归一化;走 chat-completions 的自定义服务商从来不受影响
🔍 这个页面到底做了什么
- 网络抓取。 Agent 可以记录一个页面发出的请求——默认关闭、按名字启动,而且现在跨轮次持续,而不是只管一轮:调试一个页面意味着你自己去点它,而一轮对话在你点到之前就结束了。由此带来的风险是忘了关,所以有一个三十分钟的上限会把缓冲区丢弃,有明确的停止动作,并且开始录与自动停止都会发通知
- 它留得更多、给得更少:最多保留 2000 条或 4 MB,每次返回 100 条。一次在 GitHub 上的实测抓到 532 个请求,而缓冲区只有 200 条,332 条被挤掉,回来的结果却看起来是完整的——模型读到一个光秃秃的
dropped:332,于是告诉用户"并发请求已被采样合并"。现在截断会直言:这份日志不完整,被挤掉的记录找不回来了 - 结果可以按资源类型过滤,摘要除了按状态还会按类型计数,于是"这个页面调用了什么"不再被一百个来自 CDN 的 JavaScript 文件回答掉。请求头终于被采集了——
Authorization和Cookie不是被脱敏了,而是压根没读过——字节数也改名为request_bytes/response_bytes,因为叫request_size时它被当作正文大小报给了你 - 空结果会说明这是哪一种空:抓取没开、这个标签页没有,还是录制正开在另一个标签页上
- 控制台消息改从 DevTools 自己读取的那个存储里读,于是在有人来问之前就已经记下的消息本来就在那儿,不会被页面自身的安全策略吃掉,内部页面也照样能读。标签页里的每一个浏览上下文都会被遍历,于是一个把错误报在跨源框架里的页面不会再显得干干净净;未捕获的 JavaScript 异常也会和
console.*一起回来 - 它们的级别在第一版里是错的,而且让健康的页面看起来是坏的:级别存在一个 flags 字段里,而不是那个根本不存在的属性上,于是一个毫无问题的 GitHub 页面报出了 248 条错误——每一条都是 Referrer Policy 警告——而按级别过滤毫无作用
在 GitHub 查看 →下载
-
v0.3.14
本次版本的重头戏是语音——Agent 在你自己的机器上把一段文字读出来,而且后面还在合成时你就已经能听到前面——同时,媒体抵达手机时是一张图片或一段影片,而不再是一堵 base64 的墙;无头 Agent 也能通过 MCP 提供你自己写的 Python 工具。
🗣️ 本地朗读
tts_synthesize_local在三个调度面上都注册了,却无论你怎么配置都返回"未配置"——推理部分从来就没有写。现在它背后是真正的 Kokoro-82M:54 个音色、24 kHz,在你自己的机器上运行,不需要 API key- 把模型与音色文件放进
~/.cache/nevoflux/models/,或用[tts.kokoro]的model_path与voices_path指向它们,然后请它朗读一段文字即可 - 后面还在合成,前面就已经在响——长文本只在句子边界切分,绝不拦腰截断,每一段做好就立刻送出,因此约一秒后播放器就出现了,而不必等整段读完。在 portal 上,这些片段会作为同一次朗读连续播放,并停在第一段出现的位置
- 不需手工调参就快过实时:现在优先选用 fp32 权重而非 int8(int8 只有在带 VNNI 的 CPU 上才划算,而多数桌面 CPU 并没有),推理也不再被钉死在单核上——0.67× 提升到 3.41× 实时速度。代价是常驻内存约 310 MB,而 int8 为 92 MB;
[tts.kokoro]的threads与model_path让你可以有意识地选择另一条路 - 调用方不必再自行切分文本:旧的 510 字符上限其实是把以 token 计的窗口误当成字符,而跨调用切开的文本会变成好几段录音,而不是一次完整的朗读
- 仅支持英文。中文音色会带着理由被拒绝,而不是用英文 G2P 硬读——胡言乱语比一个错误更糟
🖼️ 媒体以引用传递,而非写进正文的字节
- 截图此前是被写进助手自己正文里的 data URL 抵达手机的——那些字节模型根本没拿到过,只能凭空编造,任何浏览器都解不开。现在头部只写
,字节走它自己的通道 - 截图在模型看到之前就被转入该会话的资产库:模型依然以视觉块的形式收到这张图,因此照样能描述它所看到的东西——只是手里不再有一份可供重抄的文本。即便模型仍然编造图片字节,也会在边界处被剥除,作为纵深防御
- portal 按需拉取自己想要的字节范围,而不是被动接收推送;一个 Service Worker 充当能应答 range 请求的源,于是起播、缓冲、拖动与解码都交还给浏览器自己的媒体栈——这也正是一段普通录像能在 iPhone 上播放的前提
- "播放 /tmp/a.mp4" 现在有了答案:已经在这台机器上的影片会被就地接管而不是复制一份,两小时的片子既不占内存,也不产生第二份拷贝
- 观看一部 158 MB 的影片曾从线上拉取 425 MB,并用十四分钟才播完九分半。缓存最近六十四个 range、并一次请求四个范围,把这两半问题都解决了
- portal 现在会说出它播不了什么——一段 HEVC 录像此前会读掉六十八兆字节然后一片空白——字节始终没送到时也会说明,而不是什么都不显示
🔌 MCP:你自己的工具,以及一套管理 API
- MCP 改由 rmcp 提供,不再是手写的 JSON-RPC;而且这条路径上的工具调用现在真的会执行
- 用 Python 脚本自定义工具:脚本用
describe()声明工具,并各以一个函数实现;文件名作为命名空间前缀,于是jira.py导出的search对外是jira__search,绝不会与内置的browser_*撞名。某个脚本坏掉只会被记录原因并跳过,不会把其他脚本一起拖下水 - 一套由 token 保护的管理 API(
PUT/DELETE/GET /admin/scripts),监听独立的--admin-addr,因此可以绑到内网接口,而任务接口对外。仅当设置了NEVOFLUX_ADMIN_TOKEN时才挂载;PUT会回报脚本实际产生了什么,单个脚本可以单独重载而不必重扫全部,tools/list_changed则会在工具清单真的变化时通知已连接的客户端 - 配置档也走同一套 API:
PUT /admin/profiles/<name>以 rename 的方式整体替换基础 profile,且无需重启浏览器,于是云端部署刷新一个登录态不必重建镜像。导出默认关闭,需NEVOFLUX_PROFILE_EXPORT=1——它会带上已保存的密码,仅凭一个管理 token 并不足以放行 NEVOFLUX_BRAIN_ENABLED可双向覆盖只读挂载的配置文件;会话模式下共享浏览器改为启动时就拉起——对于全部交互都是工具调用的 MCP 客户端,不必再等某个任务碰巧跑过一次才摆脱"no browser registered"
🐍 Code Mode:Monty v0.0.19
- Code Mode 背后的 Python 解释器从 v0.0.7 跃升到 v0.0.19:
class、with、filter()以及原生的re与datetime现在都能用了。后两者对/loop尤其关键——它此前要绕道python3才能用上,而只要关闭 shell 就会被丢弃,恰恰是那些无人值守、出了错也无从上报的运行 - 编造出来的函数名现在会抛
NameError,而不是返回一个错误字典、再被脚本当成数据继续用下去 - 装饰器会被明确拒绝而非静默丢弃,
orchestrate也重新有了可用的失控兜底
🔗 远程控制的后续
/remote-control打开的授权页已经预填好验证码,提示语依据"浏览器是否已登录"的实时探测来措辞,并且在传输出错时继续轮询,而不是把一次进行中的登录直接作废- 半开的中继连接现在能被察觉:每 30 秒一次 ping,连续 90 秒毫无数据即放弃。而拨号失败一段时间的通道——比如午休时合上了盖子——不会再被永久退役;它会继续拨号并自行恢复,而不是一直死到守护进程重启
- 宽屏下 portal 的对话获得了真正的栏宽,而不是把一条消息横铺满整块屏幕;用鼠标时,复制与编辑在悬停时出现在消息下方,右键则交还给浏览器
- ACP:
orchestrate在该路径上真的会执行,而不是被列出来之后回一句"unknown tool";没有 shell 可用的地方不再提供bash;卡住的工具调用也不会再拖死整轮对话
🐛 修复与平台
- Canvas 导出不再静默失败——没有文件、没有报错,连
about:downloads里都没有记录。现在导出会检查下载是否真的开始,没有就由父进程写出文件并报告保存位置;"导出为 PDF" 不再停在一个空白标签页;错误提示也会一直留到你关掉它为止 - 失败的视频渲染不再冒充完成:此前从不检查 ffmpeg 的退出码,于是一个被截断的 MP4 会作为"已完成"交到你手里。现在它的输出会被持续读走(管道写满会让渲染永久卡住),失败时会带上 ffmpeg 真正抱怨的内容,并且成功与失败都会发出通知,附上文件最终的路径
- 浏览器动作会遵守调用方给出的
timeout_ms,不再硬编码 30 秒;缺少 ONNX Runtime 也不再让启动死锁
在 GitHub 查看 →下载
-
v0.3.13
本次版本的重头戏是远程控制——将 NevoFlux 与 Portal 配对,从另一台设备操控它——同时每次发布都会推送无头 Docker 镜像,并让你更精细地掌控 Agent 能自主做多少事。
🔗 远程控制
- 在侧边栏输入
/remote-control开启通道:用设备码登录 nevoflux.app,随后拿到 portal.nevoflux.app/connect/… 链接与配对码 - 在手机上打开该链接、输入配对码,你就进入了同一场对话——portal 收到的是完整的一轮,而不只是文字:流式回复、思考过程、工具事件、artifact 与计划提案
- 两端都能作答:权限询问与 Agent 自己提出的问题现在会显示在手机上并可在那里回答;在一端答完,另一端的对话框随之关闭,不会留下按了也不起作用的按钮
- 手机上的停止按钮就是本地的停止——与侧边栏用的是同一个中断开关,而非另一套可能与之冲突的机制
- 在手机上用
@与#撰写消息:提及某个 soul、指定某个标签页,并可查询该会话究竟有哪些技能、souls 与标签页 - portal 会显示该会话的模式与执行档位,且两者都无法在手机上更改,因此你能看清远端这个头被允许做什么
- Agent 发出的通知也会送达手机,而不再只是侧边栏里的一个 toast
- 帧全程端到端加密(Argon2id 派生密钥、AES-256-GCM):中继只承载密文,配对码才是打开它的钥匙
- 通道绑定你开启它的那个会话——保持该窗口开启,关闭它即结束通道
🐳 Docker Hub 上的无头镜像
docker pull nevoflux/agent——无头 Agent 现已发布到 Docker Hub,按发行版打 tag,运行它不必再从构建镜像开始- 通过一个小巧的 HTTP API 派活(
POST /tasks,随后轮询或跟随 SSE),也可以把它当作 OpenAI 兼容、MCP 或 ACP 端点来驱动——它们最终都归到同一个任务执行器 - 隔离靠容器本身:不受信任的任务用一任务一容器(用完即弃),受信任的流程用长期服务;并可按任务限制 shell、文件系统、上传、域名、墙钟时长与 token
- 通过 noVNC 在任意浏览器中实时观看运行过程,并可抓取 Prometheus
/metrics - 固定脚本模式用确定性的 Python 流水线取代 Agent 循环——浏览器工具相同,但不产生任何 LLM 调用,也不需要 API key
- 会话模式让一连串任务复用同一个浏览器,登录状态得以从上一个任务延续到下一个
🛡️ Agent 执行档位
- 设置中的 Agent execution 现为四档,逐级累加:只读(自由浏览,任何更改都需确认)→ 浏览器自动(+ 自动执行点击与输入)→ + 本地读取(+ 自动读取本地文件)→ 全自动(不再确认)
- 侧边栏工具栏上的档位 chip 显示当前会话的档位,并随你切换会话而变化
- 升级依然安全:旧的 Auto-execute 设置从未真正生效,因此会迁移到最严格的档位,而不是静默授予完整权限
🧹 /clear 会清空侧边栏
- 清空会话时,面板也会随之清空——包括仍停留在那里的计划面板或权限对话框,它们的按钮此刻已不再决定任何事
- 侧边栏还会留在该对话中,显示一行安静的 "Session cleared",而不是在会话其实仍开着时把你退回欢迎页
🐛 修复与平台
- Canvas 分享与 Canvas 工具恢复正常——七个
canvas.*调用(share、import、share 的 list/extend/delete、tool 的 invoke 与 list)此前被错误标记为事件订阅送到 bridge,导致 artifact 分享自四月起就已失效,Canvas 应用调用白名单工具时会永远等待 - 侧边栏默认行为现为三个选项——记住上次状态(新的默认值)、自动打开、仅手动——并按窗口生效,因此你的选择在启动时以及会话恢复的密集阶段都能稳住,不会被覆盖
- 更稳健的 Linux CI:AppImage 构建会重试 tarball 下载,也不再因无关的 apt 镜像故障而失败
在 GitHub 查看 →下载
- 在侧边栏输入
-
v0.3.12
本次版本的重头戏是 Space Souls(空间之魂)——为每个 Space 赋予专属的 AI 人格,并配以随你切换 Space 的头像——同时支持 Antigravity 提供商,并修复了若干 Agent 可靠性问题。
🪄 Space Souls(空间之魂)
- 为每个 Space 赋予专属的灵魂(soul):一个具名的 AI 人格,可按 Space 绑定,并在专门的编辑器中编辑——甚至可以让 AI 帮你起草
- 在聊天中用
@提及或通过 chip 召唤某个灵魂,并可在侧边栏标题栏看到其头像、在页面上悬浮显示,随你所处的 Space 变化
🔌 Antigravity 提供商
- 新增 Antigravity 提供商,并在启用前显示服务条款(ToS)提示
- FAQ 现已补充 Antigravity ACP 适配器的安装步骤
🐛 修复与平台
- Agent 现在能穿透关闭的 Shadow DOM(closed shadow roots),像 LinkedIn 新版应用外壳这类页面又能被读取了
- Loop Jobs 面板会回填已有任务,事件提示(toast)会自动消失(也可手动关闭)
- 更稳健的构建:为 Firefox 本地化(l10n)克隆/拉取加入退避重试、重新构建 chat-sidebar WASM,并将 arm64 工具链固定到带 ARM64 + ATL 的 Visual Studio 实例
在 GitHub 查看 →下载
-
v0.3.11
本次版本让 NevoFlux 能按计划运行任务、并自主追逐目标,并可在全新的**任务面板(Jobs)中跟踪;同时带来更丰富的循环(Loop)**控制、Agent 需要你时的系统通知,以及切换侧边栏的快捷键。
📅 定时任务与目标
- 新增 schedule(计划) 与 goal(目标) 技能:让 Agent 在指定时间或按重复计划运行任务,或持续朝某个目标推进,直到验证完成
- 后台调度器会在你浏览时照常运行这些任务,悬浮头像上的任务徽标会显示运行中、需要你、已完成三种状态
- 当 Agent 需要你处理且窗口未聚焦时,现在会触发系统通知,即使 NevoFlux 在后台,提醒也能送达
🔁 循环任务面板(Loop Jobs)
- 全新的 Loop Jobs 面板(最大化侧边栏中)列出运行中与已完成的循环,每个都带逐轮迭代详情与最终结果
- 循环卡片始终提供"查看详情"开关与通过/失败的**验证(verify)**标记,并新增带"立即进化(Evolve now)"按钮的建议卡片,用于优化循环内容
- 四个入门循环模板,以及新的
/loopverify 选项,可对每轮迭代设卡
🧭 感知 Space 与文件夹的标签
- Agent 列出标签时,现在会尊重你当前的作用域,并报告每个标签所属的文件夹与 Space,从而在 Zen 式工作区中操作正确的标签
- 修复固定标签分组与顶层窗口的识别问题
⌨️ 快捷键与幕后改进
- Ctrl+Shift+A 可切换 Agent 侧边栏
- Agent 可在 Canvas artifact 中运行 JavaScript(
canvas_eval)以自查其成果 - 将浏览器补丁与上游 Zen 的改动重新对齐
在 GitHub 查看 →下载
-
v0.3.10
本次版本带来可随处拖动的悬浮 Agent 头像、会跟随各站点 Zen Boost 的侧边栏、可在 Docker 中运行的无头 Agent,以及经过代码签名的 Windows 构建。
👤 悬浮 Agent 头像
- 可拖动的头像,随处停靠在页面上,并带点击菜单(还原、最大化、关闭)
- 状态气泡会提示 Agent 已完成或需要你介入,最小化时会将侧边栏收拢为头像(取代原先的侧栏轨道最小化)
- 气泡与菜单颜色随主题自适应、位置限制在视口内,未设置身份头像时回退为 NevoFlux 标志
🎨 侧边栏跟随网站外观(Zen Boosts)
- Agent 侧边栏现在支持 Zen 的 Boosts:当你用 Boost 重新美化某个站点时,侧边栏会跟随其逐站外观——反色、对比度、字体、缩放与色调
- 由全新的纯主题色引擎驱动,并处理深色配色的强调色映射
- 右侧边栏间距现与左侧一致,浅色/深色主题下文字均清晰可读
📝 侧边栏 Markdown 升级
- 侧边栏渲染器切换为
pulldown-cmark并支持表格,同时将启动代码从init.js中拆出,启动路径更清晰且符合 CSP
🐳 无头 Agent——在 Docker 中运行
- Agent 现在可作为无头服务在容器中运行:全新的
nevoflux/agent镜像(附带docker-compose.yml)会为每个任务启动一个全新的无头浏览器,并对外提供任务 HTTP API——无需桌面界面 - 多种驱动方式——通过小巧的 REST API 提交任务(
POST /tasks,随后轮询或用 SSE 流式获取结果),或经由 OpenAI 兼容的/v1/chat/completions、MCP 与 ACP 接口调用 - 隔离优先:对不受信任的任务采用一任务一容器(用完即弃),对受信任的流程采用长期服务;并支持按任务设置策略上限(shell / 文件系统 / 上传、域名白名单、墙钟时长与 token 预算)
- 可通过 noVNC 在浏览器中实时观看运行、抓取 Prometheus
/metrics,并用会话模式在一连串任务间复用同一个浏览器 - 镜像直接拉取预编译的多架构(amd64 / arm64)发行版——无需本地编译——并默认启用 GBrain 知识库
🔧 更新后维护
- 每次更新后运行打包的跨平台清理脚本,并在内置技能变更时提供替换/保留对话框,避免覆盖你自己的修改
- 成功安装的 Pack 现会计入网站的安装计数
🔐 签名的 Windows 构建与修复
- 经代码签名的 Windows 安装器与便携版 zip,支持 x64 与 arm64(Authenticode SHA-256,RFC3161 时间戳)
- 扩展的菜单栏注入现会同时探测两个
browser-menubar文件名,Agent 状态会在守护进程断开时干净重置 - skill-creator 的录制与回放现会将录制编译为
run_flow包
在 GitHub 查看 →下载
-
v0.3.9
本次为小幅稳定性版本:让知识库在安装版中可靠运行,并避免运行较慢的 Agent 工具超时。
🧠 知识库在每个构建中都稳定可用
- Agent 的 ONNX Runtime——即知识库嵌入(0.3.7 引入)背后的引擎——现已打包进 Windows、Linux 与 macOS(含 universal 通用版)的每个发行版本,并会在应用内 Agent 更新时一并刷新,因此语义搜索在安装版中也能正常工作,而不再只限于开发环境
🐛 修复
- 将 Claude Agent 的 MCP 工具调用超时上调至 5 分钟(高于知识库自身的 120 秒上限),使运行较慢的工具能返回真实结果或错误,而不会被过早超时打断、却被误判为"成功"
在 GitHub 查看 →下载
-
v0.3.8
本次版本的重头戏是 录制与回放(Record & Replay)——在浏览器里演示一次工作流,即可将其变成可复用的技能——并支持从链接一键安装 Pack。
🎬 录制与回放(Record & Replay)
- 与其描述任务,不如直接演示:被动录制器会观察你在页面中的真实操作与导航(全程不打断你),同时由 Agent 写入有序、无损的操作轨迹
- 由 Agent 编排,新增
start_recording/stop_recording工具——Agent 在当前标签页布设录制器,你完成工作流后它停止录制并读取轨迹 - skill-creator 会把这次演示转化为可复用技能:你确认的取值会变成占位符,密钥绝不写入技能,并保留稳定的 role + name 选择器,使技能在回放时实时重新定位元素、能扛住页面变化
- 当前范围为浏览器使用(页面内交互与导航),并新增面向作者的录制与回放指南
📦 从链接一键安装 Pack
- 打开 Pack 安装链接,即可在浏览器内完成检视 → 预览 → 确认 → 安装的流程,带实时进度——无需再进入设置
- 仅支持 GitHub 来源,并自动处理安装 / 更新 / 重装
🐛 修复与平台
- Windows:Agent 在 Ctrl+C 退出时不再卡死
- 修复 Linux AppImage 启动器名称与任务栏图标(zen → nevoflux)
- 技能:
allowed_tools等列表字段现在同时接受单个值或列表
在 GitHub 查看 →下载
-
v0.3.7
本次为重要的平台版本:NevoFlux 同步至基于 Firefox 151 的 Zen Browser,带来 Boosts 与 Space Routing(空间路由),并改进了 Canvas 与知识库。
⬆️ 同步上游 Zen Browser(Firefox 151)
- 从 Firefox 149 跃升至 151,带来上游 Zen 的最新功能与修复
- Boosts —— 随心定制任意网站外观:调整元素尺寸与文本大小写、调节色彩对比度/亮度/饱和度、反色,或直接注入自定义 CSS,并可按站点保存复用
- Space Routing(空间路由) —— 将匹配的站点送往你指定的 Space,让链接在正确的空间中打开
- 以及上游在标签、工作区、分屏与窗口同步方面的修复与打磨
🧠 知识库(Brain)
- 嵌入引擎升级到 fastembed 5(ONNX Runtime 1.24.2)并采用动态加载,跨已保存页面的语义搜索更快、更准
🎨 Canvas
- 将 artifact 的完整 HTML 内容导出为 PNG,而不再只是可见视口
- 大体积 artifact 现在能可靠持久化——内容存储上限从 500 KB 提升到 50 MB,超过 1 MB 的文件不会再被丢弃
🐛 修复与稳定性
- 更可靠的 Pack 安装:进度改为流式推送(不再出现 30 秒的桥接超时),并新增看门狗,避免数据流中断时对话框卡死
- 侧边栏会乐观地显示 "Start Setup",随后与权威状态对账
- 缓和了视频技能模板中刺眼的白屏闪烁转场,并新增 linter 规则加以检测
- 更稳定的 Windows 原生构建
在 GitHub 查看 →下载
-
v0.3.6
本次为聚焦 Packs(扩展包) 管理的版本,并修复了 Windows 构建与稳定性问题。
📦 Packs(扩展包)
- 设置中新增 Packs 管理板块
- 可直接从 GitHub 来源安装 Packs,提供检视 → 预览 → 确认的安装流程
- 新增面向作者的 Pack 开发参考指南
🐛 修复
- 修复 workspaces → spaces 同步后部分 chrome 资源 URL 缺失的问题
- 更可靠的 Pack 安装对话框——自动关闭计时器现在会绑定正确的弹窗
🛠️ 构建与平台
- 在 Windows 原生构建中重新启用 WebRTC
- 更稳定的 Windows 构建:限制原生编译并行度以避免 clang 内存溢出(OOM)、修复 CI 中 mozmake 安装卡死,并从源码 tarball 中剔除多余文件
在 GitHub 查看 →下载
macOS Universal .dmg -
v0.3.5
🧠 知识库(Brain)
- 内置个人知识库(你的"第二大脑"),由 GBrain 驱动——一个 AI 智能体记忆系统,能跨你保存的页面综合出带引用的答案,并自动构建知识图谱,而不只是关键词搜索
- 全新
nevoflux://brain浏览页与安装向导,可从任意页面一键存入,可分享的.nbrain知识包(创建、管理、导入),以及带状态与重启/更新控制的gbrain运行时 - 五个
/brain技能协同工作:- brain —— 中枢:入口与共享约定,负责路由到下面四个技能
- brain-capture —— 保存与录入:笔记、网页、PDF、Office 与电子书、视频字幕、图片(可选联网补充)
- brain-recall —— 查找回忆:搜索已存页面、回忆事实、查看值得关注或最近的内容、跟踪链接与反向链接
- brain-think —— 综合分析:多跳带引用回答、"谁懂某主题"路由、趋势、概念图与预测校准
- brain-care —— 健康与恢复:诊断、同步、发现矛盾与孤立页,恢复已删除或历史版本
🔁 循环任务(/loop 技能)
- 将提示词或技能循环执行,带置顶循环卡片与每轮迭代进度
/loop斜杠命令,以及用于状态触发迭代的 DOM 监听器
🎬 AI 视频生成(/video 技能)
- 在 Canvas 上生成视频,全新渲染管线(
nevoflux://render):确定性逐帧捕获、进度卡片与取消 - 一套 HTML 模板与组件——字幕、下三分之一字幕条、转场、数据图表与 3D 揭示——以及 TTS 与 Three.js 工作流
- 渲染前的合成检查器(linter)
🤖 更强的浏览器自动化
- 富文本与 contentEditable 编辑(paste 与 fillRichText)、文件上传、元素探测与稳定的 CSS 选择器
- 支持 Shadow DOM 编辑器,更智能的标签激活与导航
🎨 Canvas 分享与工具
- 分享与导入 canvas(
nevoflux://import),重新设计对话框,一键复制 - 将 artifact 固定到 My Canvas,并在设置中管理自定义 Canvas 工具
🧩 平台
- 引入 EventBus,带通知 toast 与标签丢弃恢复;NevoFlux Agent 现为内置系统附加组件,首次启动即启用
⬆️ 同步上游 Zen Browser(Firefox 147)
- 带来 Zen 的功能与修复:工作区、分屏、动态文件夹(live folders)、essentials、窗口同步、拖放改进、macOS 原生气泡(popover),以及会话备份与恢复
在 GitHub 查看 →下载
macOS Universal .dmg -
v0.3.2
本次为维护版本,主要改进扩展分发与 Windows 升级。
🔌 扩展分发
- 内置的 NevoFlux Agent 扩展现在会在启动时自动同步,版本号自动注入 manifest
- 更可靠的 XPI 同步
📦 安装器与构建
- Windows 升级时清理旧的扩展缓存
- 修复 Windows 构建路径问题
在 GitHub 查看 →下载
macOS Universal .dmg -
v0.1.3
🎨 Canvas 导出
- 将 artifact 导出为 PNG、PDF、DOCX、SVG、Markdown、XLSX 与 ZIP
- 新增 slides(幻灯片)类型,带 PowerPoint 风格预览与 PPTX 导出
- 带格式下拉的导出拆分按钮
💬 侧边栏
- AskUser 提问现在以问答卡片形式展示
- 修复 Markdown 中代码块复制,以及折叠后侧边栏的尺寸调整
⚙️ 设置
- 新增 OpenClaw 扩展配置表单
- AI 设置拆分为独立的 LLM Providers 与 Agents 两节
📖 文档
- 更新 README 与架构说明,新增 FAQ(侧边栏快捷键、设置、Claude Code 配置)
在 GitHub 查看 →下载
macOS Universal .dmg -
v0.1.2
🤖 AI 智能体与浏览器自动化
- 全新
nevoflux浏览器 API 与引擎,让 AI 直接操控浏览器 - Browser Use 工具集:标签管理、鼠标键盘控制、Cookie 与存储、网络抓取与拦截、JavaScript 执行、frame、对话框与下载
- 元素拾取、页面锁、滚动、等待稳定,以及自动页面快照
- 隐私过滤内核、浏览器内 WASM 智能体运行时,以及 Manifest V3 扩展
💬 侧边栏聊天
- AI 聊天侧边栏,含首次启动引导向导与连接状态栏
- 消息附件、最近历史,以及侧边栏与标签页模式切换
🎨 Canvas 微应用
- 用 esbuild-wasm 在浏览器内打包,生成多文件迷你应用
- 带持久化的虚拟文件系统,支持 React、Vue 与 Svelte
⚙️ 设置与品牌
- LLM 提供商配置,支持自定义 Base URL
- NevoFlux 品牌、欢迎页与菜单集成
🛠️ 构建
- Windows、macOS(universal)与 Linux(x64 与 arm64)全平台构建,带代码签名
在 GitHub 查看 →下载
macOS Universal .dmg - 全新