阶段四:AI BOSS 核心能力、工作台与 API Gateway 可见性改造
状态:已完成并归档
更正记录(2026-08-11):本归档保存原阶段四已经通过的交互、预算、上下文、记忆、附件、多模态、SSE、CLI Gateway 和 API Gateway 验收事实,不覆盖、不删除。后续审计发现智能编排、通用成果登记、确定性检查、AI BOSS 审核参与最终决定及 Console 验收闭环尚未达到最终出口,因此阶段四已按新的唯一权威计划重新开启。本页不再代表当前 P4 已最终完成。
本计划已正式定义为阶段四,不再使用旧的“前置改造”阶段称谓。当前改造 AI BOSS 的响应体验、工作台、预算与上下文、记忆、规划执行、附件和多模态能力,同时收口 API Gateway 的职责与页面可见性。受控主动工作循环独立为阶段五;原“第一个 AI 应用的发现与试验闭环”顺延为阶段六。主动工作循环、定时自主发现和 Codex 工程 Specialist 不属于阶段四出口。为保持已有公开链接可访问,本页文件名继续保留 phase-4-pre-ai-boss-core-upgrade.md。
简化架构
flowchart TB
Console["Console / Status"] --> ApiGateway["API Gateway:状态、告警、只读聚合"]
BossConsole["Console / AI BOSS"] --> OriginProxy["主节点认证回源代理"]
OriginProxy --> Runtime["AI Runtime:交互、记忆、任务和受控动作"]
Runtime --> OmniRoute["OmniRoute:默认模型核心"]
Runtime -. "显式选择;仅 public" .-> CliGateway["CLI Agent Gateway"]
Runtime --> Nomad["NomadAdapter"]
Runtime --> Storage["StorageAdapter / Cloudreve"]
Runtime --> Operations["SystemOperationsAdapter"]
Runtime -. "HMAC 脱敏故障事件" .-> ApiGateway
API Gateway 继续只服务 Console、Status 和运维聚合,不提交 AI 任务、不调用模型、不重启服务,也不管理 Cloudreve 文件。AI BOSS 的聊天、附件、记忆、任务和系统动作仍经受保护的回源代理直达 AI Runtime,禁止让 API Gateway 成为第二控制面。
计划状态
- 计划名称:阶段四:AI BOSS 核心能力、工作台与 API Gateway 可见性改造
- 当前状态:已完成并归档
- 完成记录:仓库实现、镜像构建、生产滚动发布、API Gateway 只读目录和公网管理员浏览器验收均已完成。2026-08-11 的真实验收确认 OmniRoute
streaming -> completed、首段后cancelled的保守结算、公开 Codex CLI 的queued -> running -> completed及取消、真实图片粘贴/上传、Cloudreve 回读和模型识别。最终 SSE 断线恢复交互4e0986f03a204741a90f在首连接持久化queued -> running -> streaming后断开,第二连接从 SQLite 状态恢复增量并completed,真实用量8946 Token、estimated=false。Runtime49 passed覆盖重启中断、会话/任务图恢复和 Envelope 重建;Gateway 目录和公开状态契约、Console 浏览器契约、计划状态检查和严格 Docs 构建均通过。 - 目标与完成边界:AI BOSS 的响应体验、Token 硬预算、上下文、长期记忆、结构化规划、恢复、附件、剪贴板、多模态和安全验收全部通过;API Gateway 页面与真实接口一致、版本无漂移、职责边界清晰;生产与公网 Console 验收完成并归档阶段四后,才进入阶段五受控主动工作循环。
技术与架构选择
| 能力 | 选择 | 不选择 | 决策依据 |
|---|---|---|---|
| 交互状态 | FastAPI + SQLite 持久状态 + SSE | WebSocket、Celery、Redis | 延续现有 Python/SQLite/Vanilla JS 栈,部署面和团队学习成本较低;SSE 足以支持服务端单向增量与断线恢复,持久状态可覆盖重启,不新增消息中间件 |
| 长期记忆 | SQLite + FTS5 | OmniRoute Memory、向量数据库 | 单用户规模下维护简单、查询性能足够、来源和确认状态可事务化;后续可在真实检索质量不足时扩展,不提前引入第二记忆权威 |
| 附件原文件 | Cloudreve 临时空间 | SQLite BLOB、浏览器直连 WebDAV | 复用现有 Storage 边界,避免数据库膨胀;凭据只留在 Runtime,浏览器和模型不可见 |
| 模型通道 | OmniRoute 默认;固定 CLI Gateway 显式备用 | 自动回退、AgentRouter 直连、第二 Provider Router | 保持现有 Provider 权威和数据分级;逐模型真实 Smoke 后才开放图片或附件能力 |
| 前端 | 现有 Vanilla JavaScript 工作台重构 | 新增前端框架 | 避免为单页改造增加构建链和学习成本;按分区、稳定尺寸和响应式约束改善可维护性 |
分布式底座接入声明
- 接入结论:接入现有底座,不新增第二调度器或执行网关。
- 使用层:Network 只承载受控服务通信;Nomad 继续负责已登记 Batch;Compute 继续使用 101/103 无状态 Worker;Storage 使用 Runtime SQLite 和 Cloudreve;Observability 使用 Runtime 事件、用量、审计及 API Gateway 脱敏告警。
- Adapter 归属:NomadAdapter、StorageAdapter、ToolAdapter、FeedbackAdapter、OmniRouteAdapter、CliAgentGatewayAdapter 和 SystemOperationsAdapter;不新增通用命令 Adapter。
- 执行映射:主节点 Runtime 处理会话、上下文、记忆、预算、任务图、附件元数据和审核;101/103 只处理 Runtime 登记的解析或批处理任务;普通模型调用不经 Nomad。
- 数据路径:会话、交互、摘要、记忆、用量与附件元数据进入 Runtime SQLite;附件原文件进入
AgentMeshOS-临时/ai-boss-attachments/<conversation_id>/<attachment_id>/;明确转为任务证据后才复制到长期 Artifact。 - 凭据路径:OmniRoute、CLI Gateway、Cloudreve、Nomad 和系统动作凭据继续只存在于主节点 root-only 配置;Worker、模型、MCP Tool、浏览器和 API Gateway 页面不可见。
- 生命周期:交互提交后持久化状态并通过 SSE 推送;失败可显式重试,Runtime 重启不自动重放模型调用;附件按消息和任务引用清理,不按普通时间 TTL 自动删除;长期 Artifact 不自动删除。
- 验收证据:Runtime 数据库迁移与
quick_check、交互和任务事件、真实 Provider usage、Nomad Job/Allocation、Cloudreve 回读、Runtime/Bridge 双层审计、Console 浏览器回归、API Gateway 目录契约、镜像摘要和公网正文。
预备工作包
1. 交互状态与响应速度
- 增加
queued、running、streaming、completed、failed、cancelled、interrupted持久交互状态,关联会话、消息、后端、预算快照、调用 ID、耗时和真实用量。 - Console 改用异步提交,用户消息在本地立即进入聊天区;目标为本地反馈小于 100 ms、服务端确认小于 1 秒、1.5 秒内显示执行阶段。
- 提供状态读取、SSE 流、取消和显式重试接口;10 秒仍无首个内容时显示慢响应提示和已等待时间。
- OmniRoute 转发文本增量;不支持增量的 Codex/Claude 显示阶段进度,完成后一次展示全文。
- SSE 重连从 SQLite 恢复已保存状态和文本。Runtime 重启将未完成调用标为
interrupted,不得自动重放并重复消耗 Token。 - 使用
client_request_id建立幂等约束,重复点击或网络重试不得产生重复消息、任务或费用;原同步接口暂时保留给兼容 Smoke。
2. Token 与费用硬预算
| 档位 | 输入上限 | 输出上限 | 单次规划调用上限 | 单任务上限 |
|---|---|---|---|---|
| 保守 | 约 8k | 1k | 4 次 | 40k Token |
| 均衡 | 约 12k | 2k | 6 次 | 100k Token |
| 宽松 | 约 24k | 4k | 10 次 | 250k Token |
- 默认使用“均衡”,每次交互保存不可变预算快照;运行中不得自动提高档位。
- AI BOSS 全局每日硬上限默认 500k Token,只能通过 root-only 配置调整,Console 不提供提额入口。
- 调用前预留预算,调用后按 Provider 真实 usage 结算;usage 缺失时保留估算并明确标记,不得记为 0。
- 瞬时错误最多自动重试一次,返工最多两轮;达到硬上限立即停止,不自动切换模型或追加额度。
- Console 展示本次、当前任务、当前会话和当日累计 Token 与费用。
- CLI 官方客户端含固定系统上下文,2026-08-06 Codex 图片 Smoke 实际输入为
14219 Token,高于保守档原9000 Token预留;CLI 后端因此按输入与输出档位之和的 2 倍预留,任务档位硬上限不变。 - CLI 返回真实分项但省略
total_tokens时,Runtime 使用真实值求和并标记为真实;Anthropic 独立返回的cache_creation_input_tokens/cache_read_input_tokens计入输入合计,Codex 已包含在输入总数中的cached_input_tokens不重复相加。只有输入或输出分项也缺失时才保留估算标记。 - 会话与当日硬预算汇总在读取历史记录时也按上述 Anthropic 分项重算,不改写已完成交互的原始 usage 快照,避免旧版
total_tokens低估当天剩余额度。
3. 上下文与长期记忆
- 上下文按系统约束、相关已确认记忆、滚动摘要、最近对话、当前消息的顺序组装并按预算裁剪。
- 各后端独立执行数据分级;CLI Gateway 继续只允许
public数据,不得因切换模型外发私有内容。 - 滚动摘要保存覆盖消息范围、版本、来源和更新时间,不自动升级为系统事实。
- 长期记忆分为用户偏好、确认决策、项目事实、当前目标和待确认候选;保存来源、数据等级、状态、版本、时间与删除标记。
- 明确“记住”的请求可直接保存,权威 Runtime 事件可写系统事实,普通对话只形成摘要或待确认候选。
- Console 支持查看、确认、新增、修正、删除和来源追踪;旧聊天保留原文,迁移生成可追溯摘要,稳定事实只进入待确认区。
4. AI BOSS 工作台
- 保留 Console 全局导航,AI BOSS 内部改为“对话”“任务与审核”“记忆”“系统操作”四个分区。
- 对话区使用消息主栏和实时执行侧栏;模型选择器移入输入工具栏并使用简短名称,完整 Provider、客户端和模型信息放入说明。
- 预算使用“保守 / 均衡 / 宽松”分段控制,并从 Runtime 预算目录显示各档输入/输出数字;私有、公开和三档预算均提供延迟悬停与键盘焦点说明。宽松不是无限,Console 不提供绕过单次、单任务或每日全局硬上限的入口。发送后按钮切换为停止,侧栏展示接收、模型调用、任务创建、耗时、Token 和错误。
- 桌面端显示执行侧栏;窄屏折叠为可展开执行区,不遮挡聊天与输入框;不使用多层嵌套卡片。
- 任务与审核合并任务图、Worker、结果、证据、审核和返工;记忆区管理来源和版本;系统操作区只显示固定 Action 和双层审计。
5. 规划、执行与恢复
- 将模型结果约束为普通问答、需要澄清、任务规划、工具调用、固定系统动作和拒绝六类结构化意图。
- 使用 Pydantic 契约生成目标、任务、依赖、Worker、验收标准、预算和数据等级;模型文本不能直接成为命令。
- 建立 Runtime 能力目录,公开当前可用的 Worker、模型、工具、固定 Action、数据等级和不可用原因。
- 普通任务立即执行,不增加审批;真实外部业务动作或数据破坏风险继续保留 Benson 最终决定与 dry-run/apply 边界。
- 补齐暂停、取消、恢复和终止状态;待执行 Nomad Envelope 必须持久化或可确定性重建。
- 自动审核增加证据可访问性、结论支持度、冲突、时效和重复性检查;无法验证时写“证据不足”。
6. 剪贴板、附件与多模态
- 输入框监听
paste并读取浏览器提供的clipboardData.items/files;截图 Blob 直接形成缩略图,浏览器提供 File 对象时支持复制文件后粘贴。 - 混合文字和图片时保留文字并追加图片;普通文字保持默认粘贴;不读取剪贴板中的本地文件路径。
- 永久保留附件按钮和拖放作为兼容入口,展示文件名、类型、大小、缩略图、进度、错误和删除操作。
- 上传完成后消息只提交附件 ID;上传中或失败时禁止发送。
- 每条消息最多 5 个附件;图片单文件 10 MiB,文本/PDF 20 MiB,单条合计 40 MiB;聊天附件总配额默认 5 GiB。
- 首版支持 PNG、JPEG、WebP、TXT、Markdown、JSON、CSV 和 PDF;拒绝压缩包、可执行文件、脚本与宏文件。
- 使用真实文件头、图片解码和 PDF 解析校验,并限制图片像素、PDF 页数和提取字符数。
- 图片只对真实 Smoke 通过的模型开放;不支持时明确拒绝或显示 OCR/文本提取模式,禁止静默丢图。
- 2026-08-06 同图真实 Smoke:OmniRoute 交互
adf6b378fe054a47b037命中claude-sonnet-4.5并准确识别,真实结算6697 Token;Codexgpt-5.6-sol交互f6a920e0776245f7a016准确识别,真实结算14739 Token;Claudeclaude-opus-4-8交互50c47539fc5f4057a28f准确识别,缓存创建、缓存读取和输出合计真实结算4260 Token。claude-opus-5保留文本能力但不开放图片能力,图片请求在 Runtime 调用模型前返回409 production_smoke_not_approved,不会产生模型调用或 Token 费用。
7. API Gateway 可见性
- Gateway 页面版本从
APP_VERSION动态读取,禁止硬编码;展示健康、最近检查时间、数据新鲜度和脱敏上游状态。 - 接口目录按“匿名只读、管理员只读、内部签名写入、受控状态操作”分组,至少覆盖健康、状态、节点详情、Nomad、告警和 Android 探针。
- 每项展示方法、路径、认证方式、调用方、数据来源和用途;POST 只展示契约,不提供页面直接执行按钮。
- 提供管理员只读
/api/gateway/catalog,目录由显式安全元数据生成;不得向浏览器返回密钥、Token、Tailnet IP、主机路径或原始 OpenAPI Schema。 - 页面增加 A-Auth、Console、Status、Runtime 与 API Gateway 的关系说明;退役接口必须明确标记或移出目录。
- Console 继续嵌入 Gateway 自身页面,不在 Console 复制接口目录;不改变
api.yohan.fun认证、BaoTa 入口、私有监听和 Nomad 只读 Token 边界。
公共接口与数据变化
- 新增异步交互提交、状态、SSE、取消和显式重试接口。
- 新增预算档位目录、预算快照和用量摘要接口。
- 新增记忆 CRUD、确认、来源和会话摘要接口。
- 新增附件上传、消息关联、元数据查询和删除接口。
- 扩展模型后端目录,返回流式、图片、附件解析和数据等级能力。
- 新增 API Gateway 安全目录接口
/api/gateway/catalog。 - SQLite 只做增量迁移,旧消息、任务、审计、告警和 Artifact 保持可读;新策略只影响新交互和新任务。
实施步骤
- 完成计划与架构文档切换,将主动工作循环定义为阶段五、原应用计划顺延为阶段六,并建立发布、备份和回滚清单。
- 实施交互持久状态、幂等、异步提交、SSE、取消、重试和耗时观测,先解决“发送无反馈/响应慢”。
- 实施 Token 预留、结算、硬上限、预算档位和 Console 用量展示,再开放更长上下文或自动返工。
- 实施上下文裁剪、滚动摘要、长期记忆模型和管理界面。
- 重构 AI BOSS 工作台,并补齐结构化意图、能力目录、生命周期、Envelope 恢复和证据审核。
- 先开放文本/PDF 附件,再开放剪贴板图片和逐模型多模态;每个后端独立完成真实 Smoke。
- 收口 API Gateway 安全目录和运行视图,修正版本来源并验证敏感字段不会进入浏览器。
- 按 API Gateway、Runtime、CLI Gateway、Console、Docs 顺序滚动发布;每步健康、正式 API、真实聊天和回滚验证通过后继续。
验收与发布
- 代码、文档和运行态检查:覆盖幂等、预算预留/结算、上下文裁剪、记忆冲突、数据分级、附件校验、取消、SSE 重连、Runtime 重启和 Gateway 目录契约;严格 Docs 构建与计划状态检查必须通过。
- 真实交互:分别验证 OmniRoute 流式、Codex/Claude 阶段状态与最终回复;跨后端验证上下文连续性和私有数据隔离。
- 附件与浏览器:验证截图粘贴、文件粘贴、混合剪贴板、拖放和附件按钮;拒绝伪 MIME、危险文件、超限文件、图片炸弹、超页 PDF 和不支持图片的模型。
- 页面:使用 Playwright 检查 AI BOSS 与 API Gateway 的桌面和移动端布局、文本溢出、输入区、附件预览、流式更新和执行状态,不以接口检查替代真实页面验收。
- 底座接入的真实证据:Nomad Job/Allocation、Storage 回读、Runtime/Bridge 审计、真实 Provider usage、Gateway 脱敏告警和服务健康分别留证。
- 发布:部署前备份 Runtime 与 API Gateway SQLite 并执行
quick_check;每个实施批次提交并推送 GitHub,仓库同步、生产部署、真实调用和 Docs 发布分别记录。 - 回滚和清理:保留旧镜像、部署脚本和迁移前数据库;回滚不得删除新附件原文件或覆盖长期 Artifact;临时测试产物统一进入项目
temp/。
阶段四出口与阶段五进入条件
只有响应体验、工作台、Token 硬预算、上下文、历史摘要、长期记忆、规划执行、幂等与恢复、证据审核、附件、剪贴板、多模态、安全边界、生产部署和公网 Console 验收全部通过,且 API Gateway 页面与真实接口一致、版本无漂移、职责边界清晰,才完成并归档阶段四,进入阶段五受控主动工作循环。阶段六应用不得越过阶段五直接启动。
默认以 Chrome 系浏览器稳定提供剪贴板图片为验收基线。复制普通文件能否产生 File 对象取决于操作系统与浏览器,因此附件按钮和拖放必须永久保留。