目标是让你只和一个主 Agent 对话,由主 Agent 调度多台 Mac、Windows 和云服务器上的 Codex 线程进行开发。 每个项目都可以查看聊天记录、执行进度、命令历史和补丁结果,并通过外部记忆系统解决长上下文导致的“越写越钝”问题。
手机端始终只有一个主对话入口,真正执行代码的是多个短上下文 Codex worker。
LangGraph 负责任务编排,Codex 负责本地和远程代码执行,会话历史由统一事件库镜像。
项目事实、设计约束、决策记录和阶段摘要统一保存在控制平面,避免单个线程长期膨胀。
这张是完整的总架构脑图,不是摘要版。你可以把它理解成“整个产品怎么拼起来”的树状图。
| 上下文预算等级 | 阈值 | 主 Agent 默认动作 |
|---|---|---|
| `safe` | `>= 60%` | 正常推进任务,但持续刷新阶段摘要和关键证据引用。 |
| `watch` | `40% ~ 59%` | 不再向该线程追加大块背景信息,开始准备阶段摘要和下一线程交接包。 |
| `urgent` | `25% ~ 39%` | 优先完成当前原子子任务,同时预创建接力线程,确保 compaction 前完成 handoff。 |
| `critical` | `< 25%` | 禁止继续扩张上下文,立即执行“压缩前收尾”:固化 patch、命令、测试结论、关键决策、未决问题和证据链接。 |
| 设计项 | 规格 |
|---|---|
| 线程全局地址 | `{node_id}:{thread_id}`,例如 `mac-01:thread-abc`、`win-gpu-02:thread-xyz`。 |
| Thread Registry | 保存 `project_id`、`node_id`、`thread_id`、`role`、`status`、`allowed_peers`、`access_mode`、`last_seen_at`、`context_budget`。 |
| 消息 Envelope | 至少包含 `message_id`、`project_id`、`sender_thread_ref`、`receiver_thread_ref`、`intent`、`summary`、`attachments`、`ttl_seconds`、`approval_mode`、`created_at`。 |
| 监管模式 | `observe`、`approve_first`、`strict` 三种。默认项目内线程采用 `approve_first`。 |
| 传输链路 | `Sender Thread -> Local Thread Gateway -> Inter-Thread Broker -> Receiver Gateway -> Receiver Thread`。 |
| 结果回传 | 目标线程回复后,结果按原路返回并写入双方 thread mirror,同时产生 broker 级事件日志。 |
| 失败处理 | 目标线程离线、超时、拒绝、权限不足时进入重试或 dead-letter 队列,并由主 Agent 决定重派、降级或人工介入。 |
| 服务 | 建议部署位置 | 原因 |
|---|---|---|
| 手机端 Web / App | 手机浏览器 / App | 只作为统一入口,不承担调度和记忆。 |
| API 网关 + WebSocket | 云服务器 | 保证外网访问稳定,统一所有设备接入。 |
| Master Agent Runtime | 云服务器主节点 | 主调度器不依赖个人电脑是否开机,适合持续运行。 |
| Thread Registry / Inter-Thread Broker | 云服务器 | 管理跨节点线程地址、权限、消息路由、重试和审计留痕。 |
| Project Memory / Event Store / Postgres / Redis | 云服务器或云数据库 | 需要集中存储,便于跨设备读取和灾难恢复。 |
| gptpluscontrol Backend | 云服务器 | 作为现成额度监控服务,提供账号、Agent、容量和 SSE 实时流。 |
| Audit Orchestrator | 云服务器 | 负责编排规则审计、软件审计、硬件审计、多模态审计和总审计结果汇总。 |
| Ops Control Plane / Ops Policy Engine | 云服务器 | 统一计算巡检模式、汇总节点健康、管理修复工单、审批策略与紧急接管规则。 |
| Ops Extension Registry / Connector Runtime | 云服务器 | 作为开放式主运维层的扩展入口,用来注册其他项目、其他服务、其他测试台的运维域、连接器和 Runbook Pack。 |
| Chief Ops Audit Agent / Ops Ledger | 云服务器 | 负责跨节点运维复核、主控离线时的最终修复判断、修复留痕与主控恢复后的同步汇报。 |
| Rules Audit Engine | 云服务器 | 与主控分离运行,持续监听任务和节点状态。 |
| Specialist Audit Agents | 云服务器 | 包含软件审计、硬件审计、多模态审计和总审计 Agent,按事件或策略触发。 |
| Mac Worker Daemon | 每台 Mac 本机 | 负责 Xcode、前端、macOS / iOS 相关开发任务。 |
| Thread Gateway(Mac) | 每台 Mac 本机 | 接收和发送本机线程消息,把跨节点对话接入 Broker。 |
| gptpluscontrol Agent(Mac) | 每台 Mac 本机 | 负责上报本机 Codex 当前账号、5h/7d 剩余额度、登录切换和心跳。 |
| Local Ops Agent(Mac) | 每台 Mac 本机 | 负责本机 Worker、Thread Gateway、Test Rig、gptpluscontrol Agent 等组件的巡检与修复执行。 |
| Local Ops Audit Agent(Mac) | 每台 Mac 本机 | 负责监督本机运维 Agent、复验修复动作、在主控离线时参与紧急修复判断。 |
| Windows Worker Daemon | Windows 本机的 WSL2 | 兼顾 Codex 兼容性和 NVIDIA / Windows 工具链调用。 |
| Thread Gateway(Windows) | Windows 本机的 WSL2 或本机桥接层 | 负责 Windows 线程与云端 Broker 之间的消息收发和状态同步。 |
| gptpluscontrol Agent(Windows) | Windows 本机 | 负责上报 Windows 节点的额度、当前绑定账号、Agent 在线状态和切换事件。 |
| Local Ops Agent(Windows) | Windows 本机或 WSL2 邻近桥接层 | 负责本机 Worker、GPU Bridge、Thread Gateway、测试桥的巡检与自愈执行。 |
| Local Ops Audit Agent(Windows) | Windows 本机或 WSL2 邻近桥接层 | 负责监督本机运维 Agent、复验修复动作、在主控离线时做本地紧急修复复核。 |
| GPU Bridge / Windows 工具桥 | Windows 本机 | 为 Mac 或云端 worker 暴露 GPU 推理和原生工具能力。 |
| Test Rig Gateway / 硬件测试桥 | 挂载测试外设的 Mac / Windows / 独立测试台 | 向审计层暴露摄像头、麦克风、扬声器、拇指机器人、串口、继电器等可接管测试能力。 |
| Cloud Worker Daemon | 云服务器或云工作机 | 承担长耗时任务、批处理、CI、测试矩阵和后台流程。 |
| Thread Gateway(Cloud) | 云 worker 同机部署 | 负责云侧线程加入跨节点协作网络并接收主控监管。 |
| Local Ops Agent(Cloud) | 每台云 worker 同机部署 | 负责云 worker、线程网关、CI 进程、日志上报和修复脚本执行。 |
| Local Ops Audit Agent(Cloud) | 每台云 worker 同机部署 | 负责监督本机运维 Agent、复验修复动作、保障云侧节点自愈链路可用。 |
| Standby Controller | 第二台云服务器或同云异可用区 | 主控故障时接管调度。 |
| 方案 | 建议 | 适用阶段 |
|---|---|---|
| Postgres + pgvector | 最推荐,部署简单,备份和高可用可以与主数据库统一管理。 | MVP 到中期产品 |
| 独立 Qdrant / Weaviate | 当检索规模、性能、分片需求更高时再拆出。 | 中后期 |
| 每台 worker 本地向量库 | 不建议作为主记忆,只能做本地加速缓存。 | 仅优化阶段 |
额度监控不新做,直接复用现有 `gptpluscontrol` 项目。当前项目已经具备云端 Backend、macOS / Windows Agent、REST API 和 SSE 实时刷新能力。
| 接口 | 用途 |
|---|---|
| `GET /api/v1/agents` | 读取每台设备的在线状态、当前 Codex 账号、5h/7d 剩余额度、最近切号和交接信息。 |
| `GET /api/v1/accounts` | 读取账号池列表、剩余额度、重置时间、当前使用状态、账号占用情况。 |
| `GET /api/v1/accounts/{account_id}` | 读取单个账号的详细历史、错误和趋势。 |
| `GET /api/v1/dashboard/summary` | 读取总账号数、正常数、失败数、在线 Agent 数量等总览卡片数据。 |
| `GET /api/v1/capacity/report` | 读取容量预警、剩余覆盖天数、预计耗尽时间和建议。 |
| `GET /api/v1/events/stream` | 通过 SSE 接收实时刷新事件,推动前端更新设备和额度状态。 |
Mac、Windows、云节点上的线程可以互相对话,但消息必须经过 `Inter-Thread Broker` 和主控监管。
线程通信受项目边界、角色边界、监管模式、TTL 和 turn 预算共同限制。
默认只传摘要、必要附件和最近结论,避免两个线程互相放大无关上下文。
| 步骤 | 说明 |
|---|---|
| 1. 发送方封装请求 | 发送线程生成 `intent + summary + attachments`,交给本地 Thread Gateway。 |
| 2. Broker 做权限与策略检查 | 检查 sender / receiver 是否允许通信,是否同项目,是否超过 turn budget,是否需要主 Agent 审批。 |
| 3. 路由到目标节点 | Broker 把消息转发到目标节点的 Thread Gateway,再交给目标 Codex 线程。 |
| 4. 目标线程执行 | 目标线程基于收到的摘要完成计算、读取文件、运行命令或请求本地硬件能力。 |
| 5. 结果回传 | 目标线程将摘要结果、状态、附件引用返回给 Broker,再回传给发送线程。 |
| 6. 留痕与展示 | 整段通信写入 Event Store,并在项目 UI 的“跨节点协作”时间线上展示。 |
如果主 Agent 既派任务又自己评价自己,就容易忽略执行偏差、低效率循环和错误判断。
规则引擎做硬性判断,专项审计 Agent 做语义判断,多模态和硬件场景由专门审计 Agent 接管。
所有关键信息都写入事件库和项目记忆,主控只是当前执行者,而不是唯一记忆体。
| 组件 | 职责 |
|---|---|
| 主 Agent | 任务拆分、节点选择、上下文裁剪、上下文预算管理、压缩前收尾调度、阶段调度、人工沟通。 |
| Rules Audit Engine | 检测超时、重复失败、压缩次数过多、rate limit、队列积压、worker 离线、视频流断开、测试进程缺失等硬规则异常。 |
| 软件审计 Agent | 复核代码变更、测试覆盖、行为回归、接口契约、日志解释和发布风险。 |
| 硬件审计 Agent | 复核固件版本、设备状态、串口日志、传感器读数、OTA 后行为和外设联动是否正确。 |
| 多模态审计 Agent | 分析截图、关键帧、短视频、摄像头画面、音频片段,判断设备动作、屏幕状态和拟人化交互是否符合预期。 |
| 总审计 Agent | 汇总规则审计和各专项审计的结论,给出通过、驳回、需人工复核和返工建议。 |
运维层负责发现问题和执行修复,运维审计层负责监督运维行为、判断权限、复验结果和紧急接管。
高频模式看活跃用户、活跃任务、能力租约、现场测试和高优先级告警;全空闲时降到每小时一次。
只要主 Agent 在线且可正常响应,运维修复必须先经它同意;主控失联后才由运维审计层做最终修复判断。
它既监管当前 Codex 多机协作系统,也作为统一运维底座接管后续其他项目、其他服务、其他测试台和其他机器群的运维场景。
新项目接入时,不需要重写整套运维层;只要注册新的运维域、连接器类型、健康探针和修复剧本,就能接入主运维层统一监管。
| 组件 | 职责 |
|---|---|
| Ops Control Plane | 汇总全局健康、管理巡检模式、修复工单、Runbook、开放式运维域和紧急接管策略。 |
| Local Ops Agent | 在每个节点本地巡检进程、日志、队列、额度、硬件桥和网关,并执行修复动作。 |
| Local Ops Audit Agent | 监督本地 Ops Agent 是否健康、是否越权、修复是否成功,并在主控离线时做紧急修复判断。 |
| Chief Ops Audit Agent | 做跨节点复核、处理主控失联下的最终修复判定、在主控恢复后回放修复结果。 |
| Ops Extension Registry / Connector Runtime | 负责把其他项目、外部服务、外部测试台通过标准化 Connector 与 Runbook Pack 接入主运维层。 |
| Ops Ledger | 保存故障、修复动作、复验结论、主控恢复回执和 Runbook 映射。 |
| 场景 | 决策链路 |
|---|---|
| 主 Agent 在线且能正常返回 | `Ops Agent` 发现问题后先提交修复建议,由主 Agent 审批;审批通过后执行修复,再由 `Ops Audit Agent` 复验并回报主 Agent。 |
| 主 Agent 失联 | `Ops Audit Agent` 确认主控失联并升级到 `Chief Ops Audit Agent`;运维审计层做最终修复执行判断,`Ops Agent` 执行修复,运维审计层复验并写入账本,待主控恢复后同步。 |
| 阶段 | 目标 | 部署 |
|---|---|---|
| V1 | 先跑通 1 个主控 + 2 台 Mac + 1 台 Windows + 1 台云 worker 的项目调度、线程查看,以及每节点最小运维 Agent / 运维审计 Agent 心跳与修复工单。 | 主控和数据库在云端,worker 在各自本机;所有节点同步部署 Local Ops Agent 与 Local Ops Audit Agent。 |
| V2 | 加入项目记忆、自动摘要、跨节点线程对话、规则审计、专项审计 Agent、限额调度、异常重派,以及主控离线下的运维紧急修复判定与复验。 | 新增向量库、线程 Broker、审计编排服务、Ops Control Plane、Chief Ops Audit Agent、备用控制器。 |
| V3 | 加入开放式硬件接管、跨项目调度、GPU 任务编排、拇指机器人和多模态完整测试链路,以及多节点联动自愈和策略化运维。 | 扩展云 worker、Windows GPU 服务、硬件测试台、合成探针与更细粒度 Runbook 策略。 |
下面这块是压缩后的方案总览,适合快速过一遍全局逻辑,也方便你后面拿去继续讨论产品边界和开发排期。
下面这份文档已经单独整理成可直接开发的协议规格,建议后续数据库、API、消息总线、前端联调都以它为准,不再从正文里反复抽取定义。
Markdown 规格文档:
capability_registry_and_audit_protocol_cn.md
运维规格文档:
ops_layer_and_repair_protocol_cn.md
技术选型文档:
detailed_technical_stack_cn.md
开发子任务文档:
development_subtasks_and_delivery_plan_cn.md
中国区 UI 参考库:
china_ui_reference_apps_cn.md
微信式会话首页规格:
wechat_project_conversation_mapping_cn.md
上下文预算规格:
thread_context_budget_and_handoff_protocol_cn.md
本机绝对路径:
/Users/kris/code/Talking/capability_registry_and_audit_protocol_cn.md
/Users/kris/code/Talking/ops_layer_and_repair_protocol_cn.md
/Users/kris/code/Talking/thread_context_budget_and_handoff_protocol_cn.md
/Users/kris/code/Talking/detailed_technical_stack_cn.md
/Users/kris/code/Talking/development_subtasks_and_delivery_plan_cn.md
/Users/kris/code/Talking/china_ui_reference_apps_cn.md
/Users/kris/code/Talking/wechat_project_conversation_mapping_cn.md
| 顺序 | 先做什么 | 原因 |
|---|---|---|
| 1 | 建 `capability_providers` / `capabilities` / `capability_leases` / `audit_requests` 等基础表 | 先把注册、租约、任务账本落库,后续协议才有稳定主键和状态流。 |
| 2 | 做 Capability Gateway 的注册、心跳、租约接口 | 这是摄像头、串口、机器人接入和后续抢占的最小闭环。 |
| 3 | 做 Audit Orchestrator 和三类专项审计任务协议 | 先打通任务下发和结构化结果回收,后面再接真实模型与硬件。 |
| 4 | 接 Evidence Collector 和对象存储 | 没有证据归档,多模态和硬件审计无法复盘。 |
| 5 | 接前端项目页的能力占用、审计结果、抢占事件展示 | 这样手机端和 Web 控制台才能真正看到系统状态,不只是跑后台逻辑。 |
这张图把当前已经确定下来的主流程、执行层、审计层、能力层和容灾层压成一张图,适合直接对着讨论开发边界和服务拆分。
这张图专门从业务推进角度整理,从你发起项目、主控拆任务、多机开发、审计复核、硬件测试到结果交付和异常恢复,每个环节都标了使用的关键技术。
如果你想更直观看“谁在什么时候做什么”,就看这张泳道图。它现在把用户、主 Agent、Worker、审计层、硬件能力层、运维层 / 运维审计层、数据与容灾层拆成 7 条泳道,并标出了关键技术、开放式运维接入和反向抢救切换点。
这张图专门把运维层和运维审计层拆开,展示动态巡检、日志命名、主控在线审批、主控离线紧急接管、修复复验和主控恢复回放的完整闭环。
下面这版是“可以直接开工”的技术选型,不再停留在抽象架构层,重点回答:用什么语言、什么数据库、什么消息总线、什么向量库、什么对象存储、什么观测体系。
先做 PWA / Web 控制台,再视情况封装原生 App。这样手机端和管理后台可以共用一套组件和状态流。
主控编排、审计编排、运维编排、Capability Registry、Thread Registry 都建议统一到 Python 栈。
因为需要深度对接 Codex app-server / SDK、串口、音视频、硬件测试和多模态审计,Python 最顺手。
| 层 | 推荐选型 | 理由 |
|---|---|---|
| 主数据库 | `PostgreSQL 16` | 项目、任务、线程、审计、Capability、运维工单都能统一管理,事务和 JSONB 足够稳。 |
| 向量库 | `pgvector` 起步,后期再考虑 `Qdrant` | MVP 阶段最简单,和主库同备份;规模上来后再拆独立向量库。 |
| 缓存 / 锁 | 极轻云默认先不用,后续按需补 `Redis 7` | MVP 先用 Postgres 行锁和应用内 TTL cache 顶住,放大后再补 Redis。 |
| 事件总线 | 极轻云默认 `Postgres job table + LISTEN/NOTIFY`,后续可升级 `NATS JetStream` | 先保住功能,不先引入额外常驻服务;等并发和消息量上来再升级。 |
| 对象存储 | 极轻云默认本机短期缓存 + 异步备份,后续可接 `S3 / MinIO` | 云端不常驻对象存储服务,原始大证据尽量留在边缘节点。 |
| 监控指标 | 极轻云默认健康探针 + 结构化指标表,后续可接 `Prometheus + Grafana` | 先保住健康检查和关键指标,不先上重型观测栈。 |
| 日志检索 | MVP 用 `Postgres + JSON 日志`,中期补 `ClickHouse` | 先快落地,后面再把高吞吐 fault_key 检索单独拆出。 |
这里不是因为服务器小才降配,而是无论云服务器配置如何,都主动把云端压缩到最轻;同时保留双云容灾,但让备云只承担接管准备,不承担常态重负载。
建议保留 `FastAPI BFF + Master Agent + Audit Orchestrator + Ops Control Plane + PostgreSQL + pgvector`,其余尽量不常驻。
默认先不单独上 `Redis`、`NATS`、`Qdrant`、`ClickHouse`、`MinIO`,优先用单体服务 + Postgres 顶住。
视频流、音频流、OCR、检测、串口长采集都放到 Mac / Windows / Test Rig 节点先做边缘处理,只上传摘要、关键帧和异常片段。
这里不是继续堆技术,而是明确说明:在“云端尽可能轻”和“原有业务能力不能砍”之间,哪些可以换实现位置,哪些是唯一真正的硬矛盾。
| 矛盾点 | 推荐取舍 |
|---|---|
| 手机端要随时看项目进度,但云端又要极轻 | 保留文本线程、状态、摘要、故障、修复结果实时上云;原始视频、音频、大日志改为按需回传,不持续上传。 |
| 要多机实时协作,但不想跑重消息系统 | 保留跨节点协作能力,把 `NATS` 降成 `Postgres job queue + LISTEN/NOTIFY`;功能不砍,但吞吐上限降低。 |
| 要主控层、审计层、运维层都在,但云内存很小 | 保留逻辑角色,不保留多常驻进程;改成单体服务里的模块 + 按需执行器。 |
| 要跨设备运维,还要开放式主运维层 | 云端只做编排和审批,具体修复动作下沉到目标节点的 `Local Ops Agent` 本地执行。 |
| 要多模态、硬件测试,但云带宽和云成本都要压低 | 保留测试闭环,放弃原始流持续上云;边缘先做裁剪、摘要、关键帧、短片段。 |
| 既要云端尽可能轻,又要云端容灾 | 保留双云,但让 `Cloud B` 只做热备 / 温备,不承担常态重负载。主云承担业务,备云承担接管准备。 |
这张图把最终确定下来的部署原则画成了可落地的拓扑:`Cloud A` 只承担主用控制面和主库,`Cloud B` 只承担热备 / 温备和接管准备,所有重执行、重媒体、重测试、重运维动作全部下沉到设备端。
在“云端尽可能轻”且“不能明显降低稳定性和业务保障能力”的前提下,我建议按下面这个下限准备两台云服务器。
| 角色 | 硬最低可跑 | 推荐最低要求 |
|---|---|---|
| `Cloud A`(主用) | `2 vCPU / 4 GB / 80 GB SSD` | `2 vCPU / 8 GB / 100 GB SSD` |
| `Cloud B`(备用) | `2 vCPU / 4 GB / 80 GB SSD` | `2 vCPU / 8 GB / 100 GB SSD` |
系统从设计上同时支持两种备用接管路径:`单云 + 单 Mac 备用控制器`,以及 `双云热备 / 温备`。部署时可以二选一,也可以同时启用。
| 模式 | 组成 | 优点 | 边界 |
|---|---|---|---|
| `单云 + 单 Mac 备用控制器` | `Cloud A` + 一台常开 `Standby Mac` | 更省云成本,本地接管更快,适合已有常开 Mac mini 的环境。 | 如果主云和现场 Mac 同时断电或断网,这条链路也会失效。 |
| `双云热备 / 温备` | `Cloud A` + `Cloud B` | 公网可达性更稳,不依赖现场某一台设备,接管路径更标准化。 | 成本更高;最后一跳的硬件接管仍要依赖现场设备在线。 |
可以,但要分清楚“功能还能跑”和“稳定性与业务保障能力不明显下降”不是一回事。这里把可继续压缩的边界和不能继续下沉的系统真相拆开。
| 能力 | 继续压云的做法 | 云端仍需保留的真相 |
|---|---|---|
| Embedding 生成 | 在 worker / audit 节点本地生成 embedding,再写回云端。 | 向量、chunk 元数据、项目记忆索引。 |
| 长日志处理 | 本地先裁剪、归类 fault_key、保留最后 N 行再上传。 | fault ledger、工单、修复记录。 |
| 视频 / 音频处理 | 本地做关键帧、短片段、OCR、检测,只传证据摘要。 | 证据索引、审计结论、回放引用。 |
| 审计执行 | 尽量在拥有能力的节点本地跑专项审计。 | 审计工单、复验结论、风险等级。 |
| Test Rig 控制 | 摄像头、串口、机器人、麦克风、扬声器一律本地网关执行。 | 租约、抢占真相、任务结论。 |
| 运维修复动作 | 重启、拉日志、切账号、跑 runbook 都在目标节点本地执行。 | 审批、修复工单、复验结果。 |
| 额度轮询 | 每台机器本地采集 Codex 额度,再定时回报精简状态。 | 统一额度看板、切换历史。 |
可以把云端进一步压轻。思路不是把业务砍掉,而是把“云端常驻重服务”改成“外部 API 调用 + 设备端本地执行”,让云端只做最小控制面和最小系统真相。