大神网
大神网

暂无菜单项

首页/文章/AI 实践/
打开 MD 链接

Codex No.1教程:喝茶聊天谈合同,最速项目一天交付,代码称斤时代已经到来

大神
发布于 9/5更新于 1天前
10

这不是一篇“安装 Codex、输入提示词、等待它写代码”的入门文章。

这是一套已经在真实软件接管、并发开发、自动测试、客户交付和系统自举中使用过的方法:人类掌握目标与最终控制权,Codex 负责架构、调度和收口,多家 CLI 按能力与额度协同,合同与原始素材被编译成任务图、验收标准和可恢复的软件交付链。

写这篇文章的起因是,我要去做其他事情了。

而且你也不一定选Codex做主脑(猪脑)

怎么便宜怎么来。

我的蜂群上线已经到了4096,还算是浪漫的数字吧。

未来就是不死鸟。

说了不写教程真的是打自己的脸蛋啊。🧐

主要要点流量,最近要搞搞宣发。

图像

Codex No.1教程:别再把 Codex 当聊天框,用蜂群OS把合同、素材和多 CLI 编译成一支高速 AI 开发团队

一、为什么市面上大多数 Codex 教程还停留在“玩具阶段”

最近关于 Codex 的教程越来越多,但大量内容仍然围绕几个初级动作:安装 CLI、选择模型、写一段很长的 Prompt、接入几个 MCP、让 Agent 修改一个文件,然后展示一句“测试通过”。

这些内容不能说错,但它们回答的只是“一个 AI 能不能帮我写代码”,没有回答真正进入生产后必然出现的问题:

  • 一个项目有几十个任务时,谁决定先做什么?
  • Codex、Claude、Kimi、GLM 等多个 CLI 同时可用时,谁应该接单?
  • 某个模型额度不足、登录失效或者响应变慢时,任务怎样换人但不降级?
  • 多个 Agent 同时写代码,怎样避免相互覆盖?
  • 聊天窗口关闭、电脑重启或某个 CLI 崩溃后,任务怎样恢复?
  • Agent 说“完成了”,它到底完成的是代码、测试、部署,还是客户真的能用?
  • AI 开发 AI 自己时,怎样避免候选版本把唯一稳定版本一起弄坏?
  • 合同、访谈、客户素材、旧系统和数据库,怎样进入工程,而不是沦为 Prompt 附件?

真正的分水岭,不是你会不会写提示词,而是你有没有一套“Agent 可以读取、执行、验证和恢复”的工程环境。

OpenAI 在介绍 Codex App 时已经把方向说得很明确:开发正在从“和单个编码 Agent 配对”,转向“监督多个 Agent 完成设计、开发、发布和维护的全生命周期”,并且使用独立 Worktree 让多个 Agent 在同一仓库并行工作而不相互冲突。OpenAI 对 Codex App 与多 Agent Worktree 的说明

OpenAI 后来把这种工作称为 Harness Engineering:工程师的核心工作不再只是亲手写每一行代码,而是设计环境、表达意图、构造反馈循环,让 Agent 能可靠地完成工作。OpenAI:Harness engineering

蜂群OS的出发点与此一致,但再往前一步:

不把 Codex 当成一个更聪明的代码补全工具,而把它当成 AI 开发组织的主入口;不把其他模型当成聊天备胎,而把它们当成需要入职考试、权限、额度、岗位和验收记录的工程成员。

本文所谓“Codex No.1”,不是宣称某个模型永远占据排行榜第一。模型排名会变化,价格会变化,额度会变化,入口也会变化。这里的 No.1 指的是一条第一原则:

人类控制目标,系统控制流程,模型负责执行,证据决定完成。

二、蜂群OS到底是什么:不是模型套壳,而是一家可执行的 AI 公司

蜂群OS(SwarmOS)是一层位于人类目标和各类 AI 执行器之间的开发操作系统。它的兼容内核可以叫 DeliveryOS,团队内部可以叫 Agent 军团,但其逻辑只有一套:

text

人类蜂王主脑
    │ 目标、边界、最终批准
    ▼
蜂群OS 控制面
    │ 项目、任务图、身份、策略、Session、事件、证据
    ├───────────────┐
    ▼               ▼
质量路由器        耐久调度器
能力/质量/额度     队列/重试/恢复
    └───────┬───────┘
            ▼
本机或远程 Worker
            │
  Codex / Claude / Kimi / GLM / 其他合格 CLI
            │
            ▼
Worktree → 测试 → 审查 → 候选版本 → 交付证据

这里有四个经常被混淆的身份。

第一,人类是唯一蜂王主脑。人类决定业务目标、资金动作、最终风险接受程度和版本晋级。AI 可以处理大量日常事务,但不能把“安装了一个插件”解释为“获得了全局治理权”。

第二,蜂群OS Core 是控制面。它保存项目、任务依赖、运行状态、权限、派单结果和证据。这些状态不能只活在某个聊天窗口里,否则换一个平台、关掉一个会话,整个团队就失忆。

第三,Worker 是执行节点。它可以是当前电脑、另一台工作站、服务器,也可以是未来接入的临时算力节点。Worker 只执行获批任务,不拥有全局调度权。

第四,CLI 是可替换的员工入口。Codex、Claude、Kimi、GLM 或其他模型渠道都只是适配器。它们使用设备所有者自己的账号、登录和额度;蜂群身份凭据只负责证明“谁有权接什么任务”,绝不能复制或冒充模型账号。

这一区分极其重要。没有它,多 Agent 系统很容易变成一堆脚本互相调用:任何脚本都能改策略,任何节点都能发任务,任何模型都能自称审查通过。看起来热闹,实际上没有组织。

三、AGENTS.md 不是提示词,而是这家 AI 公司的工程宪法

很多人把 AGENTS.md 理解成“告诉 Codex 代码风格的地方”。这只用了它很小的一部分价值。官方资料也建议用 AGENTS.md 给 Codex 持续提供仓库级上下文,例如代码组织方式、测试方法和工程约定。OpenAI:Codex 与 AGENTS.md

在蜂群工程里,AGENTS.md 应该承担四层职责。

1. 身份层:谁能决定什么

markdown

- 用户是唯一 controller,拥有项目创建、Worker 批准和版本晋级权。
- worker 只能执行被分配的任务并回传证据。
- standalone 只能管理本机范围,不能自动加入全局蜂群。

这不是“建议”,而是运行时权限合同。界面隐藏按钮不算权限控制,API、MCP 和 Core 必须真正拒绝越权请求。

2. 行为层:哪些事情自动做,哪些事情必须停下

好的 Agent 团队不应该每三分钟问一次“我可以继续吗”。普通安装、依赖修复、测试、进程重启和候选部署,应当在明确范围内自主完成。真正需要人类确认的是付款、整机重启、整机关机、不可逆数据删除、正式版本晋级等少数动作。

授权边界越清楚,Agent 越快。模糊的权限不会带来安全,只会带来两种坏结果:要么 Agent 什么都问,团队失去速度;要么 Agent 自己猜,风险反而更大。

3. 工程层:怎么写、怎么并行、怎么验证

markdown

- 写任务必须拥有唯一文件范围。
- 多个写入型 Agent 默认使用独立分支与独立 Worktree。
- 一个提交只包含一个可解释、可验证、可回退的变化。
- “进程启动”不等于“功能完成”;必须验证真实用户入口。
- 不覆盖唯一稳定版本,候选版本单独安装和验收。

这里最关键的不是“写 TypeScript 还是 Python”,而是把并发边界写清楚。真正的并行不是让四个模型一起改同一个文件,而是把任务拆成互不重叠的所有权:一个负责数据面,一个负责 API,一个负责前端,一个负责部署,一个只读审查。

4. 记忆层:让错误变成下一次的能力

每次失败都必须留下可复用记录:症状、根因、无效尝试、最小解法、验证方法、回滚方式和防复发动作。否则同一个团队只是拥有很多上下文很长、但每天都会失忆的聊天机器人。

因此,一个成熟仓库至少应该有这些事实源:

text

AGENTS.md                 全局治理与工程规则
README.md                 管理入口
catalog.yaml              资产索引
projects/<id>/PROJECT     项目定义
projects/<id>/TASK-GRAPH  可执行任务图
projects/<id>/LEDGER      时间、成本、错误、证据账本
members/                  设备、服务、模型、插件档案
runbooks/                 可重复操作方法
logs/                     已发生事件
evidence/                 测试与验收结果

四、最快的 AI 开发,不是从 Prompt 开始,而是把现实“编译”成工程

软件项目最原始的输入,通常根本不是代码。它可能是一份合同、四个压缩包、一堆截图、客户语音、旧数据库、产品原型、历史聊天记录,以及一句“帮我尽快上线”。

普通做法是把这些材料扔进模型,让它总结需求。蜂群方法不是“总结”,而是“编译”。

为什么要用编译这个词?因为编译有源文件、有中间表示、有类型检查、有错误、有目标产物。原始合同不能在模型总结之后消失;模型的推断不能伪装成客户事实;模糊条款必须成为待决问题;每一项交付要求必须能追到验收动作。

完整链路如下:

text

合同 / 原始素材 / 旧系统 / 客户访谈
                │
                ▼
第一层:原件保全
哈希、只读副本、版本、来源、时间、缺失项
                │
                ▼
第二层:事实抽取
角色、业务对象、流程、接口、数据、非功能约束
                │
                ▼
第三层:交付定义卡
本期做什么、不做什么、什么叫可演示、什么叫可交付
                │
                ▼
第四层:验收 Oracle
可重复执行的业务、权限、性能、恢复和客户体验判定
                │
                ▼
第五层:任务 DAG
依赖、Owner、能力角色、写入范围、输入、输出、失败条件
                │
                ▼
第六层:Agent 执行与证据回写
Session、Worktree、提交、测试、部署、日志、成本

原件保全:先确保 AI 没有“理解错后毁掉证据”

接管旧项目时,不要先运行格式化,不要先删除“看起来没用”的文件,更不要为了 Git 状态漂亮直接清理现场。应该先记录:

  • 原始包和关键归档的 SHA-256;
  • Git Bundle 或仓库历史是否完整;
  • 未提交、已删除、未跟踪内容;
  • 数据库和容器卷是否可恢复;
  • 原平台实际入口与运行版本;
  • 哪些数据源才是业务权威。

AI 时代最昂贵的错误,经常不是代码写错,而是把唯一原件覆盖后,所有 Agent 都在错误事实之上高速前进。

交付定义卡:把“做完”变成类型,而不是情绪

一个项目至少要区分四种状态:

  1. code-complete:代码已实现,局部测试通过;
  2. integrated:与主链合并,回归通过;
  3. preview:真实入口可访问,目标角色能操作;
  4. deliverable:备份恢复、迁移、客户文档、公网入口和最终验收全部完成。

很多 AI Demo 的问题,是把第一个状态叫成第四个状态。页面打开了,就说系统交付了;接口返回 200,就说业务闭环了;容器在运行,就说部署成功了。

蜂群OS要求每个状态都有证据,状态不能靠 Agent 的语气推进。

验收 Oracle:在写代码之前定义“机器如何判案”

Oracle 不是一句“请确保质量良好”,而是可执行判定。例如:

yaml

task: appointment-concurrency
input:
  appointment_id: seeded-fixture-01
action:
  concurrent_requests: 2
expected:
  success_count: 1
  conflict_count: 1
  audit_records: 1
  final_status: confirmed

当两个请求同时修改一个预约时,究竟应该发生什么?如果这个问题没在任务开始前说清楚,两个模型可能分别写出“看起来合理”的实现,而集成时才发现业务语义冲突。

五、任务图:把“帮我做完项目”变成可以并行的依赖网络

大目标不能直接平均切成四份。任务图必须先找依赖,再找可以并行的边界。

yaml

waves:
  - id: W0
    name: 事实冻结
    tasks:
      - id: contracts
        mode: readonly
        outputs: [业务合同, 角色矩阵, 数据字典]

  - id: W1
    name: 基础内核
    depends_on: [W0]
    tasks:
      - id: api-kernel
        write_scope: [apps/api/**]
      - id: plugin-sdk
        write_scope: [packages/plugin-sdk/**]

  - id: W2
    name: 领域并行
    depends_on: [W1]
    tasks:
      - id: health-domain
        write_scope: [domains/health/**]
      - id: finance-domain
        write_scope: [domains/finance/**]
      - id: report-ai
        write_scope: [domains/reports/**]

  - id: W3
    name: 集成与交付
    depends_on: [W2]

一个任务节点至少包含:目标、依赖、角色、读写模式、唯一写入范围、输入版本、输出、测试、超时、重试、回退、成本影响和证据位置。

模型名称不应该成为业务合同。任务写的是“需要通过后端并发角色实测的实现者”,而不是永远写死“必须某模型”。今天最强的模型,明天可能额度不足;今天失败的渠道,明天可能升级。供应商是路由层的决定,不是产品层的依赖。

六、多 CLI、多模型调度:谁空闲、谁合格、谁有额度,谁上

“多模型协作”最容易被写成一张华丽的架构图:一个模型负责规划,一个模型负责代码,一个模型负责审查。问题是,现实中的渠道不是永远在线的。额度会重置,账号会掉登录,代理会波动,CLI 会升级,模型身份会漂移,某个擅长前端的模型也未必适合财务并发。

所以蜂群调度不能固定成一张供应商座位表,而要像生产调度系统一样,每次派单重新计算。

第一道门:角色资格

模型必须先通过对应岗位的真实考试。例如:

  • implementation/frontend:能否理解现有设计系统、完成响应式页面、通过构建和浏览器测试;
  • implementation/backend:能否处理事务、幂等、状态机、并发和迁移;
  • review:能否找到可复现的问题,而不是只输出风格意见;
  • research:能否区分官方资料、二手线索和本机实测;
  • mechanical:能否稳定完成 Schema、格式、批量边界检查。

没有通过岗位实测的模型,即使便宜、空闲、额度很多,也不能接这个岗位。质量资格永远先于成本。

第二道门:当前身份与健康

调度器要确认实际调用的模型是谁、CLI 版本是什么、登录是否有效、网络和代理路径是否可用、最近一次真实调用是否成功。配置文件写着“高级模型”不代表当前运行的就是它。

第三道门:可信额度

“我感觉还有额度”不能用于自动派单。额度记录至少要包含:

  • 已使用和剩余比例;
  • 额度窗口与重置时间;
  • 官方数据、会话消耗还是本地估算;
  • 采集时间和是否过期;
  • 是否需要人工登录;
  • 保留线。

未知额度的渠道可以被人工点名做健康探测,但不能加入自动路由。某渠道达到保留线后停止接收新任务,保留给关键收口或用户直接使用。

第四道门:空闲槽位与重复消费保护

同一个任务必须有稳定的幂等键。即使控制面超时,也要先查询后端是否已经接受,不能因为“没看到回复”就再派一次,导致两个模型同时写同一任务、消耗两份额度。

可以把路由逻辑简化为:

python

eligible = [
    worker for worker in workers
    if worker.role_certified(task.role)
    and worker.model_identity_verified
    and worker.login_healthy
    and worker.quota.is_fresh
    and worker.quota.above_reserve
    and worker.available_slots > 0
    and task.provider_pool.allows(worker.provider)
]

selected = rank(eligible, by=[quality, latency, cost, load]).first()

这里最容易犯的错误是“显式指定模型就绕过其他规则”。正确语义应该是取交集:用户点名的 Provider 仍然必须属于项目允许池,仍然必须通过角色、额度、健康和权限门禁。空 Provider 池意味着禁止任何模型自动执行,不能因为请求里又写了一个模型名就把它重新塞回来。

不平均分配,也不浪费已购买渠道

蜂群不是为了追求“每个模型今天都用一次”。平均分配看似公平,实际会把关键任务交给不合适的模型。正确目标是单位墙钟时间内的有效交付:

  • 合格、空闲、有可信额度的成员优先;
  • 多个合格者同时存在时,按质量、速度、成本和负载排序;
  • 某渠道需要反复弹网页登录,就标记为手动,不让它拖住后台队列;
  • 同一模型连续失败不无限重试,按预设 cascade 换人;
  • 实现和最终独立审查使用不同供应方;
  • 主脑模型也在规则内,不应把自己额度打空再让其他 CLI 闲置。

七、连接层改用 Tailscale:让蜂群跨设备,但不把控制权交给网络

蜂群从单机扩展到工作站、服务器、手机和异地节点后,首先需要解决的是私有连接。目标不是“所有设备互相 ping 通”,而是让正确身份只能访问正确端口,并且节点更换网络后仍能被稳定发现。

蜂群OS下一版连接层采用 Tailscale,但必须明确两层身份不能混为一谈:

text

Tailscale 身份:这台设备能否到达某个 IP/端口
SwarmOS 身份:这台设备能否接任务、改策略、批准 Worker、晋级版本

Tailscale 负责加密网络、设备发现和网络访问策略;蜂群OS Core 仍负责 controller、worker、standalone 权限。一个节点能连接 Core,不等于它有权创建全局项目。

推荐拓扑

text

Tailscale tailnet

       ┌──────────────────────────────────┐
       │                                  │
蜂王控制端                         只读观察端
tag:swarm-controller              tag:swarm-observer
       │                                  │
       ├──── Core API / Event Stream ─────┤
       │
       ├──────────────┬──────────────┐
       ▼              ▼              ▼
开发工作站         GPU/模型节点       部署服务器
tag:swarm-worker  tag:swarm-worker   tag:swarm-prod

新 tailnet 如果没有自定义访问策略,不能想当然地认为已经完成最小权限。Tailscale 当前推荐新配置使用 Grants;Grants 可以按用户、组、标签、目标和端口声明访问能力。Tailscale:Grants

下面是概念示例,不是可直接复制到任何账号的生产配置:

jsonc

{
  "tagOwners": {
    "tag:swarm-controller": ["autogroup:admin"],
    "tag:swarm-worker": ["tag:swarm-controller"],
    "tag:swarm-observer": ["autogroup:admin"]
  },
  "grants": [
    {
      "src": ["tag:swarm-controller"],
      "dst": ["tag:swarm-worker"],
      "ip": ["tcp:22", "tcp:8890"]
    },
    {
      "src": ["tag:swarm-worker"],
      "dst": ["tag:swarm-controller"],
      "ip": ["tcp:8890"]
    },
    {
      "src": ["tag:swarm-observer"],
      "dst": ["tag:swarm-controller"],
      "ip": ["tcp:8890"]
    }
  ]
}

真实配置必须进一步区分“控制 API”“只读事件流”“部署入口”,不能让观察端因为能打开控制台就自动拥有修改权。

节点入网方式

人工设备可以通过交互登录加入;服务器适合使用带标签的 Auth Key,临时容器或一次性 Worker 使用 Ephemeral Key。长期自动化不要把永不过期的密钥写进仓库,可以使用受限 OAuth Client 动态生成 Auth Key。Tailscale 的服务器部署指南也建议用标签约束服务器访问,并针对长期自动化使用 OAuth Client。Tailscale:设置服务器 Tailscale:OAuth Clients

蜂群档案中只记录凭据引用、用途和恢复方法,不输出密钥本身。

从现有连接迁移到 Tailscale 的正确顺序

不要一上来卸载旧网络。生产迁移使用双轨法:

  1. 只读盘点现有节点、地址、服务、路由和防火墙;
  2. 安装 Tailscale,但保留旧连接;
  3. 给控制端、Worker、服务器分配清晰标签;
  4. 写 Grants,并用策略测试验证允许与拒绝路径;
  5. 让 Worker 通过 Tailscale 完成一次真实任务领取、执行、证据回传;
  6. 模拟 CLI 失败、节点掉线和控制端重启,验证恢复;
  7. 更新资产档案和 MagicDNS 名称,不把临时 IP 写死在项目里;
  8. 观察稳定后再停止旧路径;
  9. 回滚窗口结束后,旧网络才进入退役,而不是直接删除。

如果需要更强的节点加入保证,可以评估 Tailnet Lock,由受信节点签署新节点密钥;但它属于后续安全增强,不应在功能迁移的每一步反复打断开发。Tailscale:Tailnet Lock

八、Session、Worktree 和事件流:让并行开发可恢复,而不是靠聊天记忆

每次可恢复工作都必须拥有 Session ID。Session 不是聊天标题,而是一条工程记录:

yaml

session_id: 20260902T150626Z-glm-xxxxxx
team: fast-development
task: report-data-plane
provider: glm
mode: write
repo: health-platform
branch: agent/swarm/...
worktree: /isolated/worktrees/...
write_scope:
  - apps/reporting/**
started_at: ...
status: running
final_commit: null
evidence: []

写入型 Agent 默认使用独立 Worktree。只读研究可以共享仓库,但不能写。每个文件范围只有一个 Owner;其他 Agent 可以审查该范围,却不能同时改它。

任务运行时,控制面追加事件:

text

control/created
control/approved
control/dispatch_claimed
control/dispatched-by-core
control/observed running
verification/command_started
verification/command_completed
control/observed succeeded

为什么要追加事件,而不是只保存一个 status=succeeded?因为最终状态无法解释发生了什么。一个任务可能在后端已接受后网络超时,如果控制面误以为没派出去,又重新派一次,就会形成重复消费和并发写入。事件流让系统判断“从未接受”“已接受但确认未知”“Worker 已开始”“Worker 已结束”这些完全不同的状态。

更重要的是,进度终于可以给人看。用户不应该面对一个沉默七小时的黑箱。控制台至少要展示:当前波次、正在执行的任务、负责人、模型、Session、Worktree、开始时间、最近事件、测试进度、额度状态、阻塞原因和下一验收点。

九、狗粮循环:蜂群OS必须先能安全地开发自己

狗粮循环不是一句“我们也使用自己的产品”。真正的自举必须让当前稳定版创建候选版,并且候选版不能覆盖唯一可用版本。

蜂群OS的发布链是:

text

stable 稳定版
  → 创建自举项目与任务图
  → 独立 candidate Worktree
  → 合格且有额度的 CLI 实现
  → 自动测试
  → 异源 Provider 功能审查
  → 独立安全审查阶段
  → 插件清单与 Skill/MCP 验证
  → 使用新 cachebuster 并行重装候选插件
  → 干净新会话重新发现与真实调用
  → 蜂王主脑批准晋级
  → 新 stable

为什么必须重新安装

源码通过测试,不代表用户实际加载的插件就是这份源码。插件缓存、版本号、Skill 发现和 MCP 配置都可能仍指向旧版本。因此候选必须使用新版本标识安装到独立缓存,并比较源码与安装产物;当前稳定缓存保留,出现问题可以恢复。

为什么必须用干净新会话

当前聊天可能已经加载旧 Skill、旧工具清单和旧说明。只有新会话从零发现插件、识别蜂群身份、读取最新 AGENTS.md,并完成一次真实任务,才能证明“下一位用户真的拿到了新版本”。

为什么安全审查放在功能完成之后

高速开发不等于没有安全。正确做法是阶段化:日常实现先完成业务功能和自动测试,项目功能收敛后再启动一次独立安全审查。这样安全审查面对的是稳定候选,不会在每个小步骤上重复检查尚未成形的代码。

只有三类事件允许中途紧急拦截:正在发生的凭据泄露、不可逆数据损失风险、权限越界。其余安全检查进入收尾阶段,由异源 Provider 或独立安全角色执行,开发者不能自我批准。

一次真实自举暴露了什么

在蜂群OS自举测试中,曾出现一个很有代表性的竞态:调度后端已经接受任务,Worker 启动得非常快,抢在 Core 持久化标准执行对象之前进行了恢复。任务本身成功了,但发布门禁需要的“由 Core 确认派单”事件缺失。

如果只看最终状态,这个任务是绿色的;如果看事件链,它不具备可证明的主脑调度路径。

修复不是简单地“多等几秒”,而是同时建立三条规则:

  1. Worker 给 Core 一个短暂的优先确认窗口;
  2. Core 晚到时,只能对 attempt、claim、execution 和 idempotency key 完全一致的恢复结果做幂等确认;
  3. 发布门禁必须绑定当前这一次 execution,旧尝试留下的成功事件不能替新任务过关。

另一次独立审查发现:项目已经明确给出空 Provider 池,但请求又显式指定模型时,路由器把该模型重新加入了候选。所有自动测试当时都通过,因为测试只覆盖了“空池+自动选择”,没有覆盖“空池+显式模型”。异源审查提出反例后,路由语义改为交集,并补上正反回归。

这就是狗粮循环的价值:不是为了证明系统永远不出错,而是强迫系统在开发自己时,把隐藏假设变成运行时规则和防复发测试。

十、脱敏实战:某大健康 SaaS 如何把一天压缩成可交付 V1

下面的数据来自一个真实的大健康软件接管与交付项目。为保护客户和业务数据,项目名称、域名、账号、机器地址、仓库路径、患者信息、报告内容和凭据全部省略;保留的只有任务类型、时间跨度、测试数量和可验证结果。

起点不是空仓库,而是约 4.5GB 的复杂现场

输入包括两套 Git 历史、多个容器卷归档、旧平台的未提交现场、ERP/医疗业务引擎,以及客户要求保留的原始资料。团队首先完成哈希校验和恢复演练,把正式 Git 开发工作区精简到约 86MB,同时保留原件、未跟踪交付物、已删除现场痕迹和原始数据卷。

这一步没有直接产生新页面,却决定了之后的所有高速开发是否可回滚。

并发不是一句口号,而是十条独立 Session

开发队把任务拆为数据面、API、前端、AI 报告链、任务与预约、生产容器、独立审查和最终集成等边界,共留下 10 条可恢复 Session。Kimi、GLM、Claude 与 Codex 使用不同分支和 Worktree,Codex 主要承担架构、集成、关键修复和最终验收,而不是把批量编码全部压在一个渠道上。

已登记的第一条并发开发 Session 在当晚 23:06 启动。到次日 01:40,生产化前端入口、API 反向代理、容器健康检查和发布包更新已经形成提交:关键开发窗口的墙钟跨度约 2 小时 34 分。

到次日 12:30,专业 V1 最终提交形成:从第一条 Session 到最终提交的墙钟跨度约 13 小时 24 分。这个数字包含模型执行、集成、返工、容器构建和测试等待,不应解释为单个 Agent 连续编码 13 小时,也不等于从商业立项到客户签收只需 13 小时。它说明的是:当任务边界、环境和验收足够清楚后,一支多 CLI 团队可以把大量原本串行的工程工作压入同一夜和半天。

真实速度不只看“写了多少代码”

AI 报告链使用脱敏 PDF 和 JPG 进行真实端到端测试:上传、OCR、AI 结构化处理、医生审核发布、用户读取与提问、时间线回读全部跑通。桌面路径用时 54.9 秒,移动路径用时 57.3 秒。服务重启后,7 份已发布报告仍然存在。

这比“接口响应 200”更接近用户感知速度:一分钟内完成一条完整业务链,而且结果经过重启持久化验证。

最终验收规模

专业 V1 收口时,机器证据包括:

图像

此外还完成了财务开单、收款、应收结清和总账回读,库存入库、出库、盘点调整与流水回读,备份与隔离恢复演练,以及公网多角色登录与关键业务读取。

独立审查为什么没有拖慢项目,反而节省返工

异源审查复现了预约状态转换的并发问题:两个并发请求可能同时成功并产生两条审计。实现者自己的常规测试没有暴露它。修复使用原子条件更新,并新增六项并发与边界回归。

这说明 review 的价值不是每做一步就让同一个人再看一遍,而是在功能和自动测试形成后,由不同模型主动构造反例。一次有效的异源审查,远比十次“代码看起来不错”的自我检查有价值。

这个案例也暴露了流程损耗

真实项目并非完美演示。最大的时间浪费不在写代码,而在以下内容确定得太晚:

  • “Demo”“V1”“可交付”“客户可用”的口径不同;
  • 客户入口、账号和文档标题反复变更;
  • 开工前没有保存所有模型的额度基线,无法严谨计算项目净消耗;
  • 客户手册和验收脚本接近结尾才集中制作;
  • 身份库与业务权威数据源一度被混淆。

因此蜂群OS后来把交付定义卡、客户验收 Oracle、入口冻结点、四层成本账本和错误事件流提升为开工门禁。真实项目的意义,不是提供一个漂亮的成功故事,而是让下一次开发少走同样的弯路。

十一、如何估算 AI 项目:别再只说“几个人天”

传统人日仍可用于商务沟通,但它不再是最准确的工程单位。蜂群项目应同时报告三种时间:

  1. 机器执行时间:所有 Agent、测试、构建累计消耗的时间;
  2. 关键路径墙钟时间:从开工到满足下一门禁的现实时间;
  3. 外部等待时间:登录、付款、平台审核、客户反馈、DNS 生效等非工程等待。

再分别给出 P50 和 P90。假设三条独立任务各需一小时,并行执行后机器时间是三小时,关键路径可能只有一小时;但如果最后必须等待一次人工批准,关键路径仍由批准时间决定。

AI 时代真正稀缺的资源往往不是生成 Token,而是人类注意力、清晰决策、可测试环境和可靠反馈。OpenAI 的公开工程实践也强调,随着 Agent 吞吐提高,人类 QA 会成为瓶颈,因此需要让 UI、日志、指标和测试本身对 Agent 可读。OpenAI:Harness engineering

十二、一个团队如何从单个 Codex 升级为蜂群

不需要第一天就搭建完整平台。可以按四个阶段升级。

阶段一:让单个 Codex 可预测

  • 写一份简洁但强制的 AGENTS.md;
  • 固定真实测试命令;
  • 记录项目事实源;
  • 每个任务明确写入范围;
  • 要求结果附带验证证据。

阶段二:让多个 Agent 可并行

  • 为写任务创建独立 Worktree;
  • 定义文件 Owner;
  • 使用任务 DAG,而不是共享待办清单;
  • 把实现和审查分给不同 Agent;
  • 建立小而完整的提交规范。

阶段三:让多个 CLI 可调度

  • 为每个 CLI 建能力档案;
  • 做岗位实测,不照抄厂商宣传;
  • 接入官方额度、健康和登录状态;
  • 设置保留线、手动渠道和失败 cascade;
  • 用幂等键防止重复派单与重复消费。

阶段四:让团队可跨设备、自举和发布

  • 用 Tailscale 连接控制端与 Worker;
  • 网络标签与蜂群身份分层;
  • 状态离开聊天窗口,进入 Core 与事件存储;
  • 稳定版和候选版并存;
  • 建立完整狗粮循环;
  • 只有人类 controller 能批准晋级。

十三、可以直接复制的项目开工清单

markdown

## 目标
- 客户最终拿走什么?
- 哪些角色使用?
- 什么叫 code-complete / preview / deliverable?

## 原始输入
- 原件路径与哈希
- 合同版本
- 权威数据源
- 已知缺失和冲突

## 边界
- 本期明确包含
- 本期明确不包含
- 必须人工批准的动作
- 不可触碰的稳定资产

## 任务图
- 依赖
- 能力角色
- 唯一写入范围
- Session / Branch / Worktree
- 验收 Oracle

## 路由
- 合格 Provider 池
- 当前额度和采集时间
- 保留线
- 手动渠道
- 失败回退链

## 发布
- 自动测试
- 异源功能审查
- 独立安全审查
- 候选安装
- 干净会话验收
- 回滚路径
- controller 晋级批准

最后:提示词会过时,工程闭环会复利

如果只是让 Codex 帮你改一个按钮,当然不需要蜂群OS。但当你开始接管真实项目、处理合同和原始数据、同时使用多个 CLI、连接多台设备、需要客户验收并且不能破坏稳定版本时,单个聊天窗口很快会到达极限。

这时真正决定速度的,不是再写一段更神奇的 Prompt,而是建立一套可读、可执行、可恢复、可验证的组织:

  • 合同和素材被编译成事实、任务和 Oracle;
  • AGENTS.md 把治理意图固化成工程宪法;
  • Tailscale 提供跨设备私有连接,蜂群身份继续控制业务权限;
  • 多 CLI 按能力、质量、额度、健康和空闲动态上岗;
  • Session、Worktree 和事件流让并行工作可恢复;
  • 自动测试决定功能事实,异源审查寻找反例;
  • 狗粮循环保证系统先能可靠地开发自己;
  • 最终版本只能由人类蜂王主脑晋级。

模型会越来越强,单次生成会越来越便宜。真正长期增值的,是你的合同编译器、任务图、测试 Oracle、错误知识库、模型能力档案和发布闭环。它们会让下一批 Agent 比上一批更快,让每次失败都变成团队资产。

这才是 Codex No.1 的含义:不是把一个模型捧上神坛,而是让 Codex 成为一支可管理、可替换、可证明的软件蜂群的第一入口。

资料与数据口径

  • Codex、Worktree、AGENTS.md 与 Harness Engineering 的产品方向,参考 OpenAI 官方公开资料;文中蜂群OS架构、路由、狗粮循环和项目流程来自实际工程实践。
  • Tailscale 部分依据其官方 Grants、服务器部署、OAuth Client 和 Tailnet Lock 文档撰写;示例为目标架构,实际迁移必须在节点盘点、双轨验证和回滚准备后执行。
  • 案例来自内部项目账本、Session 档案、Git 提交时间和验收日志。为了脱敏,删除了项目名、客户名、域名、账号、设备、路径、提交号、健康数据和凭据。
  • “2 小时 34 分”和“13 小时 24 分”均为已登记 Session 启动时间到对应提交时间的墙钟跨度,不是单模型纯推理时间,也不用于推导传统团队必然需要多少人日。

来源:https://x.com/dashen_wang/article/2096157899554693239

0 点赞
0 收藏
分享
0 讨论
反馈
0 / 600
细中粗
0 讨论
热门最新
总结
暂无总结
嗨,下午好!
把实践写下来。AI、教程、杂文与生活。
文章
教程
Skills
关于
关于大神
关于
AI 实践、杂文、生活记录、教程与下载分享。

装箱单空白模板:只记箱件、重量、尺码和唛头,不写货价

2次下载
免费
下载分享
24 000

商业发票空白模板:填写字段、费用说明与核对清单

2次下载
免费
下载分享
20 000

报价单空白模板:列出货价、术语地点、有效期和付款条件

2次下载
免费
下载分享
25 000

散人杂谈 国庆节特别篇|你可以随时打开自己,也可以随时关掉自己

杂文
65 000

从这里开始:大神网会分享什么

杂文
54 000

我在改写你们的过去

杂文
13 000
大神 AI 转型AI 转型把 AI 用进真实工作了解
教程与下载教程下载一步一步能跟着做查看
Skill HubSkill Hub自有 Skill 与工具入口进入
大神网
大神网
首页
文章
AI Hub
生活
小店
导航
社区
教程
关于
大神 · 把实践写下来
AI、教程、杂文与生活
关于文章教程小店隐私政策服务条款退款与交付联系客服
大神网 © 2026