v2.2.2
v2.2.2 - 2026-07-21
本版本新增可视化公式编辑器,并围绕快速模式、工具路由、视觉模型、图片与沙箱边界、语音输入、移动端后台和对话稳定性进行了系统升级。
可视化公式编辑器
- 在输入框附件按钮旁新增公式入口,基于 MathLive、Tiptap 和 KaTeX 提供接近 Word 的可视化公式编辑体验,无需直接操作 LaTeX。
- 提供常用公式、希腊字母、关系符号、微积分、集合与箭头、矩阵六类模板,以及数字、符号、字母和希腊字母虚拟键盘。
- 支持公式与普通文字混排、选区插入、点击已有公式修改、历史消息编辑重发、公开分享、内联子对话、对话缩略导航和纯文本剪贴板交换。
- 行内与块级公式统一使用
\(...\)、\[...\]存储;兼容并自动规范化旧式$...$、$$...$$内容。 - 修复块公式前后换行丢失、连续公式空行异常、用户消息块公式多余留白,以及复制选区时重复插入换行的问题。
- 对话标题和服务端首问 fallback 会提取公式正文,不再把原始公式分隔符显示在标题中。
- 修复公式底色与输入框不一致、MathLive 菜单和键盘提示被裁切的问题,并完成五语言、移动端键盘避让和加载失败重试。
- MathLive 真实 Shadow DOM textbox 现在具备本地化可访问名称和错误关联;菜单及虚拟键盘按钮支持 Tab、Enter 和空格操作。
快速模式与模型配置
- 新增“快速 / 进阶”两级模型选择。快速模型由管理员在服务端指定,用户侧不会看到真实模型名称、渠道或提供商。
- 快速模式关闭审校、深度研究和用户工具策略,工具预算缩减为普通模式四分之一,并禁止
python_execute与官方code_interpreter。 - 清除历史中的 Python/Code Interpreter 调用、结果和 provider 原生 Raw 回放,同时保留网页搜索、正文和附件等安全历史。
- 修复 Fork、原地编辑响应和系统身份提示三条快速模型身份泄漏路径。
- 聊天模型新增管理员额外请求参数 JSON,支持递归合并,并覆盖普通对话、任务模型、降级模型和配置备份导入。
工具、表格与搜索
- 工具策略升级为“自动 / 禁用 / 开启”三态;自动模式由任务模型结合真实可用工具、最近对话、附件和技能判断是否启用工具。
- 模型配置为
tool_mode=none时,前端不再显示无效的单轮工具选项;快速模式和深度研究跳过自动分类。 - 修复 XLSX 被误判为文档而导致发送时返回
409 attached document not found的问题。 - 禁用工具或 Python 不可用时,后端直接解析 CSV、TSV、XLSX 和 XLSM,不再暗中调用沙箱;旧式二进制
.xls不支持该预览路径。 - 工具禁用时,绑定知识库自动切换为内联注入,避免表格和知识库内容从模型上下文消失。
- 非图片数据文件的 Python 暂存上限提高到默认 40 MiB,进程内表格预览默认限制为 30 MiB。
- 搜索摘要会合并多余空白并限制长度,减少网页导航和模板噪声;
task.tool_route、task.search_queries已补齐五语言翻译。
语音与图表
- 新增火山引擎豆包实时语音识别,可由管理员在 OpenAI 兼容录音转写和 Volcano WebSocket 实时转写之间切换。
- 实时识别支持从
utterances流式帧显示中间结果,并加强音频缓冲、启停竞态、凭据能力检测和调试日志。 - Mermaid 缩放改为保持 SVG 矢量尺寸,不再通过 CSS 位图放大导致模糊或图表过小。
视觉模型与沙箱安全
- 前端根据本轮实际模型能力决定是否显示图片上传;文件选择、拖放和剪贴板图片均经过统一能力检查。
- 后端重新解析本轮模型并验证附件 ID、所有权、会话归属、MIME、扩展名和文件签名,客户端无法伪造视觉能力。
- 切换到非视觉模型时,会从 OpenAI Chat、OpenAI Responses、Anthropic 和 Gemini 历史中清除图片块、图片附件及关联 Raw 数据。
- 用户上传图片、历史图片产物、技能图片资产和公网图片均不再进入 Python 沙箱;
fetch_image已取消注册并保持 fail-closed。 - 每次 Python 执行前都会重建输入目录,清除旧版本会话或归档遗留的图片;Python 自身生成的图表和图片仍可正常返回。
- 图片生成或图生图输入会验证真实文件签名、文件大小和会话所有权,不能引用其他对话的图片 ID。
- 沙箱网络永久固定为 Docker
--network none,不再允许通过SANDBOX_NETWORK=bridge开启联网。
对话与界面体验
- 修复标题任务已完成但当前页面不更新的问题:标题持久化后发送实时通知,并通过有限轮询补偿断线期间漏掉的事件。
- 标题任务增加推理模型输出预算并加强身份类问题提示,避免把任务模型自己的身份回答写成标题。
- 模型名称旁改为悬浮或键盘聚焦时显示本轮日期时间;回复生成用时移动到下方操作区复制按钮左侧。
- 文件拖放扩展为整页可用,并修复首页发送图片后进入对话页时已发送图片重新回到输入框的问题。
- 首轮问答不再显示删除入口;首页建议列表支持鼠标滚轮横向滚动,并修复悬浮阴影被裁切。
- 侧边栏会自动定位从搜索、项目或深链接打开的当前会话。
- 设置改为不修改 URL 的全局弹窗,旧
/settings/:tab链接仍兼容;移动端抽屉会在任意导航后自动关闭。 - 修复模型和图片风格选择器吸顶区域上方露出滚动内容的间隙,并改善窄屏控件和语音按钮布局。
后台、认证与积分
- 重新设计移动端“后台 > 用户”页面,改为可扫描的卡片布局、自动换行的状态标签、集中操作菜单和更大的触控区域。
- 后台移动端右上角新增用户头像,可打开与侧边栏一致的账户菜单。
- 管理员可选择是否启用滑块拼图验证码;登录、注册、忘记密码和两步验证错误统一为稳定错误码,并提供五语言文案。
- 修复关闭注册后仍能通过 OAuth 或可填写注册表单创建新账户的问题;已有 OAuth 账户仍可正常登录。
- 兑换码新增“永久积分”类型,兑换后原子写入永久积分余额,并支持后台管理、CSV 导出和本地化成功提示。
稳定性、导出与部署
- 加强停止生成、编辑重发、重新生成和分支切换后的状态协调,并在持久化前验证父消息和活动叶节点。
- 全局记录所有非 2xx 响应的路由、状态、耗时和净化后原因;聊天流错误补充服务端诊断,同时避免泄露内部信息。
- DOCX 导出会移除 XML 1.0 禁止字符,并修复原生 Word 公式生成
<undefined>节点导致文档无法打开的问题。 - 新增沙箱运行镜像 keepalive 服务,避免镜像被
docker image prune -a删除后首次 Python 执行重新冷拉取。 - 补齐 Volcano WebSocket 依赖校验和,Docker 前端构建阶段升级至 Node.js 22。
- 加入 Capacitor Android 依赖,但 Android 工程、APK、图标和签名材料仍保持本地构建,不进入仓库。
- 更新 Aivory 品牌 README 截图、工具流水线说明、沙箱边界以及中英文部署和配置文档。
升级说明
- 数据库会自动迁移快速模式、模型额外参数和永久积分兑换码相关字段,升级前仍建议备份数据库。
SANDBOX_NETWORK已移除且不再生效;沙箱不能联网安装依赖或访问外部 API,所需 Python 包必须预装进 runner 镜像。fetch_image和将上传图片放入 Python 沙箱的工作流不再支持;图片必须通过支持视觉的模型原生 API 处理。- 直接调用 API 的客户端上传图片时必须提供有效
conversation_id,非视觉模型会返回明确的能力错误。 - 本地前端构建建议使用 Node.js 22,与官方应用 Dockerfile 保持一致。
- 禁用工具时仅支持 CSV、TSV、XLSX、XLSM 的有限预览;
.xls需要转换格式或启用 Python 工具。 - 公式在消息和 API 中仍以字符串保存,规范格式为
\(...\)和\[...\];自定义客户端应识别这两种分隔形式。 - 设置弹窗不再写入浏览器历史,因此浏览器或 Android 返回键会导航背景页面并关闭设置。
完整变更: v2.2.1...v2.2.2