# ACP 单聊 - AI 配置 (F-CONFIG) > 本文档由 PM 从 `prd-acp-scenarios.md` 抽取,保持与源同步。 > 覆盖技术场景:S-CFG-01 ~ S-CFG-11 --- ## (F-CONFIG-01) 切换 AI 模型 [已实现] **用户故事**:作为用户,我希望在对话中随时切换 AI 模型,以便根据任务复杂度选用最合适的模型。 **前置条件**:已打开一个 AI 会话 **正常流程**(用户视角): 1. 用户点击会话界面中的模型选择控件 -> 看到当前可用模型列表 2. 用户选择目标模型 -> 系统提示模型切换中 3. 切换成功后,模型选择控件更新为新模型名称 4. 用户继续发送消息 -> 系统使用新选择的模型进行回复 5. 关闭并重新打开该会话 -> 模型仍然是用户之前选择的模型(自动记忆) **异常情况**: - 选择的模型不可用(已下线或无渠道):用户看到错误提示,系统自动回退到默认模型 - AI 会话尚未完成初始化(如首次打开时切换过快):系统自动等待初始化完成后再执行切换 - 切换失败:模型选择控件保持原模型不变,用户看到失败提示 **不同 AI 后端的差异**: - Claude 后端:切换模型后,下一条消息中 AI 会收到一条系统提醒通知其模型已变更,确保后续对话使用新选择的模型 - 其他后端:切换立即生效,无额外提醒 **验收标准**: - [ ] 用户可以在模型列表中看到当前后端所有可用模型 - [ ] 切换模型后,后续对话确实使用新模型 - [ ] 模型选择在会话关闭重开后仍然保持 - [ ] 当所选模型不可用时,用户收到明确的错误提示并自动回退 --- ## (F-CONFIG-02) 切换会话模式 [已实现] **用户故事**:作为用户,我希望在对话中切换工作模式(如"规划模式"或"免确认模式"),以便让 AI 按不同策略工作。 **前置条件**:已打开一个 AI 会话 **正常流程**(用户视角): 1. 用户点击会话中的模式切换控件 -> 看到可用模式列表(如:默认模式、规划模式、免确认模式等) 2. 用户选择目标模式 -> 系统提示模式切换中 3. 切换成功后,模式控件更新为新模式 4. 关闭并重新打开该会话 -> 模式仍然是用户之前选择的模式(自动记忆) **异常情况**: - AI 会话尚未初始化:系统自动等待初始化完成后再执行切换 - 切换失败:用户看到失败提示,模式保持不变 **不同 AI 后端的差异**: - Codex 后端:模式切换在本地完成,同时影响其沙盒安全级别 - 其他后端:模式切换直接发送给 AI 后端 **验收标准**: - [ ] 用户可以在模式列表中看到当前后端支持的所有模式 - [ ] 切换模式后,AI 的行为符合所选模式的预期(如规划模式下 AI 先制定计划再执行) - [ ] 模式选择在会话关闭重开后仍然保持 - [ ] 从免确认模式切回普通模式后,AI 操作需要重新逐一确认 --- ## (F-CONFIG-03) 调整 AI 参数选项 [已实现] **用户故事**:作为用户,我希望调整 AI 的参数选项(如推理深度等),以便微调 AI 的行为表现。 **前置条件**:已打开一个 AI 会话,且 AI 后端支持参数配置 **正常流程**(用户视角): 1. 用户打开参数设置面板 -> 看到当前后端提供的可调参数列表(不包含模型和模式,它们有专门的控件) 2. 用户修改某个参数的值 -> 系统立即应用 3. 关闭并重新打开该会话 -> 参数设置仍然是用户之前调整的值(自动记忆) **异常情况**: - AI 会话尚未初始化:系统自动等待初始化完成后再执行设置 - 后端不支持任何参数配置:参数面板显示为空或不可用 **验收标准**: - [ ] 用户看到的参数列表不包含"模型"和"模式"(这两项有专门的交互控件) - [ ] 参数修改后立即生效 - [ ] 参数设置在会话关闭重开后仍然保持 --- ## (F-CONFIG-04) 查看模型信息 [已实现] **用户故事**:作为用户,我希望查看当前会话使用的模型信息(名称、可用模型列表、是否支持切换),以便了解 AI 能力。 **前置条件**:已打开一个 AI 会话 **正常流程**(用户视角): 1. 用户查看会话顶部或侧边栏 -> 看到当前模型名称 2. 若 AI 后端支持切换模型 -> 用户可以点击展开模型列表 3. 若 AI 后端不支持切换模型 -> 模型名称仅为展示,不可交互 **异常情况**: - AI 会话尚未初始化但之前使用过某模型:显示上次使用的模型名称(只读) - AI 会话尚未初始化且从未使用过:不显示模型信息 **不同 AI 后端的差异**: - Claude:模型信息优先从其专用配置通道读取 - 其他后端:模型信息由后端在会话创建时返回 **验收标准**: - [ ] 用户始终能看到当前使用的模型名称(AI 初始化后) - [ ] 不支持模型切换时,用户无法触发切换操作 - [ ] 模型列表仅展示实际可用的模型 --- ## (F-CONFIG-05) 查看当前模式 [已实现] **用户故事**:作为用户,我希望查看当前会话的工作模式,以便确认 AI 正在按预期方式工作。 **前置条件**:已打开一个 AI 会话 **正常流程**(用户视角): 1. 用户查看会话中的模式指示器 -> 看到当前模式名称(如"默认"、"规划"、"免确认"等) 2. 若 AI 尚未初始化 -> 显示"默认"模式 **验收标准**: - [ ] 用户始终能看到当前模式名称 - [ ] 模式指示器准确反映实际运行模式 --- ## (F-CONFIG-06) AI 响应超时设置 [已实现] **用户故事**:作为用户,我希望配置 AI 单次回复的最大等待时间,以便避免长时间无响应时一直等待。 **前置条件**:在应用设置中进行配置 **正常流程**(用户视角): 1. 用户进入设置 -> 找到"AI 响应超时"选项 2. 用户可以为特定后端单独设置超时,也可以设置全局默认值 3. 设置生效后,每次 AI 回复若超过设定时间,系统自动取消请求并提示超时 **异常情况**: - 超时时间设置过小(低于 30 秒):系统自动调整为最小值 30 秒 **验收标准**: - [ ] 用户可以设置全局默认超时时间 - [ ] 用户可以为特定后端设置独立的超时时间(优先级高于全局) - [ ] 超时发生时,用户看到明确的超时提示 --- ## (F-CONFIG-07) 免确认模式的自动迁移 [已实现] **用户故事**:作为用户,我之前在旧版设置中开启过"免确认模式",升级新版后希望该设置自动保留,无需重新配置。 **正常流程**(用户视角): 1. 用户升级到新版本后打开已有会话 -> 之前的免确认设置自动生效,行为与升级前一致 2. 若用户在新版引导页中显式选择了某个模式 -> 以用户的新选择为准,旧设置不再生效 **验收标准**: - [ ] 旧版免确认设置自动迁移到新的模式系统中 - [ ] 用户显式选择新模式后,旧的免确认设置被自动清理 - [ ] 迁移过程对用户透明,无需手动操作 --- ## (F-CONFIG-08) Codex 后端沙盒安全级别联动 [已实现] **用户故事**:作为 Codex 后端用户,我希望切换模式时沙盒安全级别自动调整,以便安全策略与工作模式保持一致。 **前置条件**:当前使用的 AI 后端为 Codex **正常流程**(用户视角): 1. 用户首次创建 Codex 会话 -> 系统根据默认模式自动设置对应的沙盒安全级别 2. 用户切换模式 -> 沙盒安全级别随之自动调整 **验收标准**: - [ ] Codex 会话的沙盒安全级别始终与当前模式匹配 - [ ] 非 Codex 后端不受此逻辑影响 --- ## (F-CONFIG-09) 配置自动保存与恢复 [已实现] **用户故事**:作为用户,我希望所有 AI 配置(模型、模式、参数选项)在每次修改后自动保存,重新打开会话或会话恢复(如应用重启、断连重连)时自动重新应用。 **正常流程**(用户视角): 1. 用户修改任何配置(模型/模式/参数)-> 系统自动保存,无需手动确认 2. 用户关闭会话后重新打开 -> 所有配置恢复到最后一次修改的状态 3. 应用重启或连接恢复后,用户重新打开会话 -> AI 自动使用之前选择的模型和模式 4. 用户在多个会话中分别设置不同的模型/模式 -> 每个会话独立保存,互不影响 **异常情况**: - 保存失败(如磁盘空间不足):不影响当前使用,仅在下次打开时可能丢失未保存的设置 - 之前选择的模型已下线或无可用渠道:用户看到错误提示(如"您选择的模型暂时不可用,请配置对应渠道或选择其他模型"),系统自动回退到默认模型 - 之前选择的模型不在当前可用列表中:系统自动忽略,使用默认模型 - 模式恢复失败:系统静默回退到默认模式,不中断启动 **验收标准**: - [ ] 模型、模式、参数选项修改后自动保存 - [ ] 每个会话的配置独立保存、独立恢复 - [ ] 会话恢复后(重启、重连),模型和模式自动重新应用 - [ ] 模型不可用时,用户收到明确提示并自动回退 - [ ] 模式恢复失败不阻塞会话启动 - [ ] 保存失败不阻塞当前操作 --- ## (F-CONFIG-10) 后端能力信息缓存 [已实现] **用户故事**:作为用户,我希望在 AI 连接建立前就能看到上次缓存的后端能力信息(可用模型列表、参数选项等),减少等待时间。 **正常流程**(用户视角): 1. 用户打开一个之前用过的会话 -> 立即看到上次缓存的模型列表和参数选项(无需等待连接完成) 2. AI 连接建立后 -> 列表自动更新为最新数据 **验收标准**: - [ ] 首次连接后,后端能力信息被缓存 - [ ] 后续打开会话时,缓存数据立即可用 - [ ] 连接建立后,缓存自动更新为最新数据