跳转至

阶段四: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 Tokenestimated=false。Runtime 49 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. 交互状态与响应速度

  • 增加 queuedrunningstreamingcompletedfailedcancelledinterrupted 持久交互状态,关联会话、消息、后端、预算快照、调用 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;Codex gpt-5.6-sol 交互 f6a920e0776245f7a016 准确识别,真实结算 14739 Token;Claude claude-opus-4-8 交互 50c47539fc5f4057a28f 准确识别,缓存创建、缓存读取和输出合计真实结算 4260 Tokenclaude-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 保持可读;新策略只影响新交互和新任务。

实施步骤

  1. 完成计划与架构文档切换,将主动工作循环定义为阶段五、原应用计划顺延为阶段六,并建立发布、备份和回滚清单。
  2. 实施交互持久状态、幂等、异步提交、SSE、取消、重试和耗时观测,先解决“发送无反馈/响应慢”。
  3. 实施 Token 预留、结算、硬上限、预算档位和 Console 用量展示,再开放更长上下文或自动返工。
  4. 实施上下文裁剪、滚动摘要、长期记忆模型和管理界面。
  5. 重构 AI BOSS 工作台,并补齐结构化意图、能力目录、生命周期、Envelope 恢复和证据审核。
  6. 先开放文本/PDF 附件,再开放剪贴板图片和逐模型多模态;每个后端独立完成真实 Smoke。
  7. 收口 API Gateway 安全目录和运行视图,修正版本来源并验证敏感字段不会进入浏览器。
  8. 按 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 对象取决于操作系统与浏览器,因此附件按钮和拖放必须永久保留。