Skip to content

Multi-Agent Studio v1.7.7

Choose a tag to compare

@ColtM1873 ColtM1873 released this 07 Nov 14:32
· 2 commits to master since this release

中文

新增

  • 会话导出 / 导入(跨版本、跨存储后端):在会话选择页勾选会话 →「导出会话」,后端弹出系统保存对话框,把「该会话所属 multi-agent 的完整配置 + 每个会话的全部 checkpoint(主图 + 各子 agent)+ 一份可读的 conversation.md」打包成一个 zip;可选用密码加密(AES-256-GCM + scrypt/PBKDF2,文件头用 AESGCM 魔法字样识别,加密文件后缀 .zip.enc)。在另一台机器 / 另一个版本上「导入会话」即可续上历史,普通版 ↔ Lite、PostgreSQL ↔ SQLite 四象限互通。导入支持两种语义:「并入已有配置」或「永远新建一个配置」(跨机器导入会用本机连接设置重算连接串)。
  • 快照内编辑:快照浏览页接上与聊天页完全同源的编辑模式(共用同一个 createHistoryEditor,两视图只注入「取数 / 写回 / 重拉」三件事),编辑只改快照 JSON 并按快照里固化的渲染设置重渲染被改通道,不跑图、不碰会话数据库、不改文件名里的条数。
  • 聊天身份自定义:设置新增「聊天图标与称谓」,可自定义用户 / 助手的称谓与图标、思考过程图标(约 160 个 emoji 选择器),前端流式与编辑态、后端历史渲染(含快照)都能一致生效。

改进

  • 主界面 / 会话页 UI 打磨:卡片改为纵向 flex + 按钮 margin-top:auto,四个按钮在任意窗口宽度下都对齐一行;快照支持重命名(只改会话名,日期 / 时间 / 条数序号保留,快照文件同时改名并持久化 snapshot_name);流式输出切换成渲染历史时改用语义文本锚点而非像素 scrollTop 保持阅读位置,原本在底部则继续跟随底部。
  • 记忆库弹窗去掉误导性的刷新按钮。
  • requirements.txt 显式锁定 cryptography(加密导出用;原本会随其它依赖装进来,锁定是为了避免依赖链变化让加密导出在客户机上失效)。

修复

  • 模型连不上时只看到英文 Connection error.:运行期把连接类异常(超时、断连、DNS、TLS 等,含被包了一层的网络错误)与「步数超限」转成人话,并带上模型来源;同时写入 logs/server.log(此前这条路径只把异常字符串吐给前端、不打日志,事后无从排查)。非网络类错误保持原文,不吞信息。
  • 失败 / 中断后的「✓ 回填」点了没反应:一次运行会活过当前视图,回填挂起项原先放在 renderChatView 的闭包里,视图重渲染后气泡能弹出但回填不生效。挂起项改为模块级并按「所属会话」绑定,元素一律现查 DOM;可回填的消息不会因切换会话被静默丢弃(回到该会话时会补显)。
  • 浏览器面板句柄误判(BID110):面板句柄活性判据兼容 BID055 的离场钩子,「节点可见」不再等于「面板还开着」,panel.state 不会再对已关闭面板报 open。
  • 自定义称谓后所有会话变成「(无历史)」:settings 字典是作为 **kwargs 转发的,threads.get_thread_history_markdown / get_subgraph_history_by_node 的显式关键字参数列表必须接收它,否则 /history 直接 500。

注意

  • 快照格式升到 v2(多存一份可编辑的原始消息数组 + 固化的渲染设置)。旧快照仍可正常浏览,只是按「没有原始消息数组」判定为不可编辑,前端隐藏「进入编辑模式」按钮,不做任何数据迁移。
  • 本次不涉及配置或数据库结构迁移;新增的 cryptography 依赖由 setup.bat 自动安装。
  • 升级方式不变(见 README「版本迁移」):覆盖文件后务必重跑 setup.bat 重新生成 MultiAgentStudio.exe,不要沿用旧 exe。

English

Added

  • Session export / import (cross-version, cross-storage-backend): on the sessions screen, tick the sessions you want and hit "Export sessions". The backend opens the native save dialog and packs the full multi-agent config the sessions belong to + every session's checkpoints (main graph and each sub-agent) + a human-readable conversation.md into one zip. Optionally encrypted with a password (AES-256-GCM + scrypt/PBKDF2, detected by an AESGCM magic header, encrypted files get the .zip.enc suffix). Importing on another machine or an older/newer version resumes the history, and standard ↔ Lite, PostgreSQL ↔ SQLite all four combinations interoperate. Import offers two explicit semantics: "merge into an existing config" or "always create a new config" (a cross-machine import recomputes the connection string from local settings).
  • In-snapshot message editing: the snapshot viewer now has the same edit mode as the chat page (both share one createHistoryEditor; each view only injects "fetch / write back / reload"). Editing rewrites the snapshot JSON only and re-renders just the edited channel using the render settings frozen into that snapshot — no graph run, no session database writes, no change to the message count in the file name.
  • Custom chat identity: a new settings submenu lets you customize the user/assistant labels and icons plus the reasoning icon (a ~160 emoji picker). It applies consistently to the frontend streaming and edit views and to backend-rendered history (including snapshots).

Improved

  • UI polish on the main/session screens: cards are now a flex column with margin-top:auto on the actions row, so the four buttons stay aligned in one row at any window width; snapshots can be renamed (only the session name changes — the date/time/count serial is kept, the snapshot file is renamed too and snapshot_name persisted); switching from streaming output to rendered history now anchors on semantic text anchors instead of a pixel scrollTop, and keeps following the bottom when you were already there.
  • The memory-store modal no longer shows a misleading refresh button.
  • requirements.txt now pins cryptography explicitly (used by encrypted export; it was already pulled in transitively, the pin prevents a dependency-chain change from breaking encrypted export on customer machines).

Fixed

  • A bare English Connection error. when the model is unreachable: runtime connection-class exceptions (timeouts, disconnects, DNS, TLS — including network errors wrapped in another exception) and "step limit exceeded" are now humanized and include the model provider; they are also written to logs/server.log (previously this path only emitted the exception string to the frontend and logged nothing, leaving no trace to debug). Non-network errors keep their original text.
  • "✓ Refill" after a failed/interrupted send did nothing: a run can outlive the current view, and the pending refill used to live in renderChatView's closure — after a re-render the bubble appeared but refilling silently failed. The pending item is now module-level and bound to its owning session, with DOM elements looked up on demand; a refillable message is no longer silently dropped when you switch sessions (it reappears when you return).
  • Browser panel-handle misjudgement (BID110): the panel handle liveness check now honours BID055's leave hook, so "node is visible" no longer means "the panel is still open", and panel.state no longer reports open for a closed panel.
  • Every session showing "(no history)" after customizing labels: the settings dict is forwarded as **kwargs, so the explicit keyword lists in threads.get_thread_history_markdown / get_subgraph_history_by_node must accept it — otherwise /history returns 500.

Notes

  • The snapshot format is now v2 (it additionally stores the original message array plus frozen render settings). Old snapshots still display normally, but are marked non-editable ("no original messages") and the "Enter edit mode" button is hidden for them. No data migration is performed.
  • No config or database-schema migration in this release; the new cryptography dependency is installed automatically by setup.bat.
  • Upgrading is unchanged (see README "Version migration"): after copying the files, re-run setup.bat to rebuild MultiAgentStudio.exe rather than reusing the old exe.