feat: generate and edit conversation images across runtimes

Add model-controlled image invocation and read-only runtime assignments. Route image tools through Main so accepted operations retain their originating conversation when chat runtimes change, with saved references, cancellation, and manual recovery.

Keep Node hashing outside browser-shared contracts to restore production builds. Validation includes the production build, typecheck, lint, focused regressions, real Host transport checks, and two successful real image requests. Full UI-driven runtime switching acceptance remains documented as pending.

Release note: 开启图片模型的会话调用后,聊天助手可调用图片生成与编辑工具,Runtime 分配自动管理。图片成果保存在原会话,可继续修改,并独立显示生成状态和取消入口。
This commit is contained in:
mesalogo
2026-09-15 15:51:52 +08:00
parent e5aa9ed688
commit f8d07419d2
78 changed files with 2948 additions and 330 deletions
@@ -4,40 +4,34 @@
## 用户问题与范围
用户希望在文字会话中直接提出“画一张海报”“把背景改成蓝色”“用这张图生成视频”,由聊天助手调用已配置的专用模型。用户不应为了生成媒体而丢失当前聊天入口;切换聊天模型后,也应能继续引用已有成果。
用户希望在文字会话中直接提出“画一张海报”“把上传图片的背景改成蓝色”“继续修改刚才的图片”,由聊天助手调用已配置的图片模型。切换聊天模型或 Runtime 后,应能继续生成、引用和编辑图片。
范围包括模型调用开关、默认与会话选择、文生图、支持协议下的参考图编辑、文生视频及图生视频、结果展示和生成过程管理。视频具体服务商及协议待技术选型;接通真实服务前不能宣称视频可用。
范围包括图片模型调用开关、全局默认与本次指定、文生图、已有协议支持的上传图片和历史图片编辑、成果保存、取消及状态反馈。支持直连文本 Model Runtime、本地 OpenCode、Continue、DeepSeek Harness,以及 GoodBuddy Agent 远程路径上的适用 Runtime;各路径的生成、编辑和切换均属于验收范围。
不包含模型训练、自动采购服务、无工具能力 LLM 的通用文本指令执行器、批量渲染平台、应用退出后仍由桌面后台执行的承诺。直接选择图片模型的已有工作流继续保留。
GoodBuddy 自动管理内部工具或 MCP 注入,复用模型连接与凭据。用户无需创建 Skill、搭建 MCP server 或填写第二套凭据。自动调用要求聊天模型支持工具调用;无工具能力时明确说明限制,用户可使用已有直连图片工作流。
不包含视频生成、模型训练、自动采购服务、通用文本指令执行器、批量渲染平台或应用退出后继续本地执行的承诺。不新增图片协议、会话级生成模型选择器、独立生成表单或通用恢复框架,也不安排视频交付计划。
## 功能需求
### 首期交付
首期只交付图片生成,自动调用先接通直连文本 Model Runtime。支持已有图片协议下的文生图、参考图编辑、历史图片引用与成果保存,不新增图片协议。保留模型调用开关、一个全局默认生图模型及用户本次明确指定;编辑默认沿用原成果模型。首期不持久化会话级生成模型选择。
切换聊天模型、生成模型或离开会话后,已提交操作仍固定原模型和原会话。切换到尚未接入工具的 Runtime 后,原操作继续,但该 Runtime 暂不能自动发起生图。不支持工具调用时说明限制,用户可使用已有直连图片工作流;首期不增加独立生成表单。
运行状态、取消、错误说明及人工重新生成属于首期。应用退出后不继续本地生成;重新打开时将未完成操作标明结果未确认,不自动重新提交。跨重启查询恢复和独立“重试保存”入口后续再做。
### 后续范围
视频生成与播放、其他本地及远程 Runtime 自动调用、会话级模型选择、独立生成表单、查询恢复及保存重试不纳入首期验收。不为这些能力预建工具、存储字段或界面占位。
以下 FR 编号保留完整目标;FR-1 至 FR-8 按上述首期范围验收,FR-9 首期只要求准确说明已接通的 Runtime 和使用限制,其余接入后分别验收。
保留 FR-1 至 FR-9 编号。原需求中的视频部分移出范围,FR-2 的会话级选择由全局默认和本次指定替代,FR-7 的新增显式入口由已有直连图片工作流替代;下表为当前定义。
| 编号 | 要求 | 产品验收 |
| --- | --- | --- |
| FR-1 | 图片、视频模型分别提供会话调用开关;新增和已有连接默认关闭,由用户主动开启 | 保存后成为对应可用能力,关闭后不能再提交新操作;历史成果保留 |
| FR-2 | 支持全局默认、当前会话选择和本次明确指定 | 按[选择规则](./logic-design.md)解析并显示实际模型;不静默改用其他服务 |
| FR-3 | 在支持工具调用的聊天模型下,使用自然语言生成媒体 | 从聊天输入到真实服务输出、保存与会话展示完整可用,活动记录可见 |
| FR-4 | 支持聊天模型、Runtime 及生成模型切换 | 新请求获得当前能力,已提交操作保持原模型和原会话;切换不触发重新生成 |
| FR-5 | 支持历史成果引用与继续编辑 | 重新打开会话后可引用已保存原图;缺失素材或编辑能力不足时有明确处理入口 |
| FR-6 | 长耗时生成可独立显示状态、取消与重试 | 离开会话不取消;状态区分上游生成、结果保存、完成及失败,不虚构进度 |
| FR-7 | 适配工作模式及能力边界 | Ask 不提交生成;不支持工具调用时仍可用 Execute 下的显式生成入口 |
| FR-8 | 图片、视频作为会话成果保存 | 结果可预览和导出,来源模型可追溯;聊天模型不能看图时只接收文字事实及引用 |
| FR-9 | 本地和远程 Runtime 有可核验的支持说明 | 自动调用以真实工具往返验收为准;未接通的 Runtime 显示原因及显式生成入口 |
| FR-1 | 图片模型提供“允许 AI 在会话中调用”开关;新增和已有连接默认关闭,由用户主动开启;模型配置是图片能力启用与 Runtime 分配的唯一事实来源 | 至少一个模型开启时自动勾选全部支持 Runtime;全部关闭或删除时全部取消勾选;关闭或删除其中一个后若仍有开启模型,保持勾选并更新允许调用的模型目录;被关闭模型拒绝新操作,历史成果保留 |
| FR-2 | 支持全局默认和本次明确指定;编辑可沿用原成果模型 | 按[选择规则](./logic-design.md)解析并显示实际模型;失效或有歧义时提示,不静默换服务 |
| FR-3 | 在支持工具调用的聊天模型下,以自然语言生成和编辑图片 | 上传图片、历史图片及文生图均可经真实服务处理,保存后在原会话展示,活动记录可见 |
| FR-4 | 支持聊天模型、Runtime 及生成模型切换 | 切换后可发起新的生成和编辑;已提交操作固定原模型和原会话,不重复提交 |
| FR-5 | 支持上传素材、历史成果引用与连续编辑 | 重开会话及切换 Runtime 后可引用已保存原图;缺失素材或能力不足时保留输入并提示处理方式 |
| FR-6 | 生成操作独立显示状态,支持取消及人工重新生成 | 离开会话不取消;保存成功才完成;不虚构进度,不自动重试收费请求;重启后未完成操作显示结果未确认 |
| FR-7 | 遵循工作模式及模型能力边界 | Ask 不提交生成或编辑;无工具模型说明限制,可使用已有直连图片工作流,无需新增表单 |
| FR-8 | 图片作为会话成果保存 | 可预览、导出和重新打开,来源模型可追溯;无视觉聊天模型只接收文字事实及引用,不编造观察 |
| FR-9 | 本地及 GoodBuddy Agent 远程适用 Runtime 均支持图片工具;GoodBuddy 管理的图片生成与编辑能力及 Runtime 分配持续可见 | 分别完成真实生成、编辑、切换验收;分配复选框只读,不可手动切换;无开启模型时仍显示该行、未勾选状态、自动管理说明及模型设置入口;无独立能力启停、分配、移除或凭据编辑设置,用户无需维护 Skill 或 MCP server |
## 交付标准
分配表示模型配置允许的调用范围。聊天模型不支持工具、Ask、Runtime 离线、配置错误或执行失败均单独说明,不取消配置分配的勾选;不保存可独立修改的能力启用或 Runtime 分配状态。具体推导与刷新规则由 L-1 定义。
以[用户场景](./user-stories.md)验收产品路径。生图、视频和各 Runtime 分别记录验证结果,不用某一个模型或 Runtime 的成功代替其他路径。配置连接检查成功不等于生成成功,真实生成成果必须在会话中可见且能重新打开。
## 产品验收
以[用户场景](./user-stories.md)验收。各 Runtime 分别记录真实工具往返、生成、上传图编辑、历史图编辑及切换结果,不能用单一路径成功代替其他路径。配置检查或工具注入成功不等于生成成功,成果必须可在会话中重新打开。
Runtime 接入细节和真实 Host 验证属于实施工作,未验证时如实记录未完成,不据此缩减 FR-9 的支持范围。