AstrBot 四模型聊天阶段报告:切模交付、输出修补与上下文边界
本报告记录 OC-70 截至 2026-11-09 的阶段性交付。四模型手选聊天、会话切模和输出修补已验收,游戏停复模仍在准备。范围及后续依赖见《desktop 统一模型路由与游戏让渡》。
已交付的用户结果
| 交付点 | 已验证结果 |
|---|---|
| 原 M1 | 原 35B 实际聊天和既有记忆链路通过 |
| 原 M2 | UD27B、Ara27B、DeepSeek Flash 统一路由及界面验收通过 |
| T1 四模型手选 | 三款本地模型及 Flash 的接口与原生聊天共八项验收通过 |
| S1–S3 手动切模 | 网页和 /provider 共用当前会话偏好,具备排队、加载、就绪和失败状态,当前版本获用户接受 |
| 普通输出修补 | 默认省略 max_tokens,显式正整数按调用方要求处理,长度终态保留正文并提示继续 |
本地模型包括 Qwen3.6-35B-A3B-UD-IQ3_S、Qwen3.8-27B-UD-Q3_K_XL 和 Qwen3.8-27B-Heretic-Ara-IQ4_XS。模型选型证据见《RTX 5080 本地 LLM 选型分析》。
输出修补的实际证据
| Ara27B 接口样例 | 输出 tokens | 结束原因 | 验收结果 |
|---|---|---|---|
| 默认请求 | 765 | stop | 1070 字符,TEST_END 结尾存在 |
| 显式 32-token 请求 | 32 | length | 保留部分正文,原生消费者生成继续提示 |
前置检查最初漏拦模型管理器离线,旧基线返回 HTTP 500。随后补齐进程、启动身份、路径和监听检查,调用现有管理器启动入口恢复,再执行修补后验收。失败基线保留,以上两个样例用于本次实际验收。
2026-11-09 09:02 输出修补正式收口,准确八项本轮资源租约完成释放,服务交由持续运行 owner 接管。历史失败记录继续保留。
最后运行快照
11 月 9 日 08:01,AstrBot 与 model-gateway 均运行,网页与网关检查返回 200,Ara27B 驻留,显存为 15,727 / 16,303 MiB,目标游戏进程计数为零。08:52 再次入口访问返回 200。后续采用保持服务在线策略。以上是带时间戳的已测状态。
原生回复与接口流式
原生插件等待模型完整生成,保存对话后一次发送完整结果,因此网页先显示思考,再出现整段答案。统一接口在 stream=true 时已经支持 SSE,原生聊天仍需接入逐块发送、终态保存及中断处理。
普通输出省略 max_tokens 后,模型上下文、后端生成终态及客户端超时仍起作用。长度结束提示只覆盖明确 length 终态,网络中断和取消后的部分内容保存需要独立验收。
输入、历史与底层窗口
| 层次 | 当前实际策略 |
|---|---|
| 原生单条输入 | 四模型均最多 1000 个 Python 字符计数,包含英文、标点和换行 |
| 35B 历史 | 当前会话最后四条消息,每条保留末尾 500 字符,另带既有结构化记忆 |
| 两款 27B 与 Flash 历史 | 当前模型连续写入的末尾最多四条消息,每条末尾 500 字符,遇到其他模型记录停止 |
| 统一 API 输入 | 1–6 条显式文本消息,首条最多 2048 字符,其余每条最多 1000 字符 |
| 普通本地提示词 | 套用聊天模板后,网关按真实 tokenizer 检查最多 4096 tokens |
| 普通本地响应传输 | 非流式 JSON 最多 65,536 字节,SSE 累计最多 1,048,576 字节,超过时失败或中断 |
| 请求体 | 统一接口 JSON 请求体最多 65,536 字节 |
| 本地上下文配置 | 35B 为 49,152 tokens,两款 27B 各为 8,192 tokens |
| 云端上下文 | 本报告未重新核实 DeepSeek Flash 实际服务窗口 |
四条消息通常对应两轮问答。原生聊天最多带入 2000 字符历史,加当前最多 1000 字符输入、系统提示与适用记忆。普通本地路径还受 4096-token 提示词检查约束。取消 max_tokens 后,响应字节上限仍然存在,需要在后续适配中一并处理。模型启动窗口采用既有配置记录,本报告未重新测量最大可用上下文。
长回复保存后,下一轮也只取其末尾 500 字符。因此长答案开头可能从下一轮输入中缺失,影响连续讨论和“继续”生成。字符数与 tokens 分别计量。上下文窗口要容纳系统提示、历史、当前输入及生成内容。
待完成的验收
游戏停复模 T2 正在适配现有 S3 和输出修补。新增主动预热路径需要覆盖游戏状态检查,同时保留当前部署与恢复链。真实游戏启动禁载、排空、卸载、显存释放,以及退出 30 秒后恢复默认 35B 和聊天仍待实测。
只读检查发现 desktop 上存在桌面会话,WeGame 正在运行,游戏主进程未运行。SSH 与桌面处在不同会话,命令行启动需匹配交互登录会话。游戏入口文件及 WeGame 协议存在,真实启动、登录或 UAC 行为和正常退出尚未验证。
严格双标签页切模时序、完整选择矩阵、原生流式、端到端取消和完整重启故障矩阵保留为后续验收项。原 M3 的 OpenClaw 长上下文与工具闭环继续后置,OC-71 暂停。
下一阶段适配方向
优先完成 T2 核心验收,再分别评估原生流式与取消、按 token 预算保留完整最近对话、较长输入,以及网页手动释放显存。输入策略变更需同步原生插件、统一接口和网关,避免上层接受后被下层拒绝。
扩大模型窗口要结合显存、内存与首字延迟测量,当前 27B 的驻留显存已经接近设备上限。跨模型和云端历史迁移需要明确数据范围。以上均为待评估方案,尚未部署。
