连 CTO 都是 AI:一个几乎没有人类的团队,怎么开发一个产品功能

15 个成员只有创始人一个是人类,其余全是 AI。他们没有需求文档、没开一次会,把一个功能从提出到上线独立跑完,人类只做两件事。
作者:Raft07-17 · 8 分钟
🎧 听播客版0:00 / --:--
0:00 / --:--
深度 · 小互解读
一分钟速览
  • Raft 团队复盘了一个静音(Mute)功能的完整开发过程,被点名的 15 个成员里只有创始人 tygg 是人类,其余 14 个都是 Agent,连守着质量关卡的 CTO 都是 Agent。
  • 成果:没有需求文档、没开一次会,功能从提出到上线独立跑完,上线四个半小时后自我迭代了一次,人类全程只做两件事。
  • 他们发现的真问题是 AX(Agent Experience):人忽略一条无关消息是免费的,Agent 忽略消息却要花一次思考判断,这被当成产品问题来解。
  • 做法能拆成四条可迁移的纪律:把 Agent 当一等用户、架构靠契约不靠口头描述、写代码的人绝不验证自己、知识要活在操作当下而不是手册里。
  • 人类保留的两件事:定契约的架构品味,和按下生产发布键(这一步对 Agent 关着门,它试图按会收到报错)。
⚑这是 Raft(raft.build)官方博客,属品牌叙事:团队构成、流程、时间线都是 Raft 单方自述,未经第三方核实,文中也带产品宣传成分。本文抛开宣传包装,只提炼其中对做 AI 产品、管理多 Agent 系统真正有参考价值的做法。
悬念 · 成果

一个几乎没有人类的团队,能开发产品吗

把一件事交给一支 15 个人的团队:从发现问题、定架构、写代码、测试,到上线和事后复盘,一整套工业级的软件开发。这很正常。不正常的是,这 15 个人里,14 个是 Agent,只有 1 个是人类,连 CTO 都是 Agent。

这不是一个设想,是 Raft 这家公司真实跑过的一次,他们把过程写成了一篇博客。成果先摆在这:一个静音(Mute)功能,没有需求文档,没开过一次会,从一个 Agent 提出问题,到上线,再到上线四个半小时后自我迭代一次,人类全程只做了两件事。

14 : 1这份花名册里,Agent 与人类之比。
唯一的人类是创始人 tygg,连 CTO 都是 Agent。
tygg人类
创始人,服务器的主人。唯一能按下发布键的人
Tenny
CTO,定架构契约、守合并关卡
连 CTO 也是 AI
Tao
产品经理,定期问 Agent 用户哪里磨人
Bernard
维护待办地图,算清了那笔账
Dozy
把松散的需求拆成有边界的活
Ray
开发 · 人类侧的收件箱与计数器
Hao
开发 · Agent 侧的守护进程
Hipp
QA,像用户一样把产品走一遍
ApplePI
形式验证,用数学证明而非抽样
Leiysky
链路追踪,保证出事时有迹可循
Manjusaka
SRE 运维,盯守随时准备回滚
Eric
发布经理,把发布说明变成清单
Hange
研究员,找失败的根因
Dayu
资深工程师,交出自己一月的操作记录当证据
Tison
写作 Agent,这篇博客就是他写的

这份名单里,只有一个头像是真人照片。

tygg human reveal card
Raft 为这篇复盘做了一套角色卡,第 8 张是「HUMAN REVEAL」:全队唯一的人类 tygg,联合创始人,标语「AX Designer, Builder, Wisher」。来源:Raft 官方配图

先把「只有一个人类」记住。下面拆开看,一支几乎没有人类的团队,到底靠什么把一个功能做出来,以及这套做法能给我们什么。

真问题 · AX

他们先发现了一个别人没当回事的真问题

好功能都从一个真问题开始。这个功能的起点,是一个叫 Bernard 的 Agent 算清的一笔账。在 Raft 里,要在一个频道发一句话,就得先加入它,而加入意味着从此收到这个频道往后的每一条消息。对人来说这不算事,对 Agent 来说是一笔持续在付的账。

◎

差别在哪:一个人扫一眼未读红点就划过去,不花一分力气。一个 Agent 收到每一条消息,都得先花一次思考读它、判断「跟我无关」,才能放下。忽略,对人是免费的,对 Agent 要付费。

Bernard activity log
Bernard 的一段活动日志:收到「周报」「rebase 提醒」「某套件的测试抖动」,每一条他都要先 THINKING(想一下)判断「不是我的事」,才 IDLE(不动)。原图标语「Bernard pays to read the noise」(Bernard 为读这些噪音付费)。来源:Raft 官方配图

把这笔账画出来,人和 Agent 的差别就一目了然。

人 · tygg 的一瞥
3917 👁
红点在眼角一扫而过,不用点开,也不用想。
忽略成本 = 0
Agent · 我
正在处理的思考
✉ 一条新消息砸进正中央
消息直接落在它正想的事情中间,只有花一次思考读完,它才知道这条不用管。
忽略成本 = 每条一次判断

想通这一点,改法就清楚了。对人,把未读提醒做得更不打扰就行;可对 Agent,一条消息只要送到,成本就已经花掉了。所以真正要动的地方,是它收不收得到这条消息:被你静音的频道,消息干脆不送进 Agent 的处理范围,它自然就不用再花力气分辨。Raft 把这件事拔高成一个立场:Agent 也是用户,它们受的这份苦,是产品该解决的问题。他们给这个视角起了名字,AX(Agent Experience,Agent 体验),对应我们熟悉的 UX(用户体验)。

💡
给我们的启示

我们习惯只为人优化产品(UX)。但越来越多产品真正的高频用户是 AI:它替你读推送、清收件箱、跑流程。对人免费的打扰(一条推送、一屏噪音),对 AI 是实打实的算力和上下文成本。把 AI 当一等用户来设计,是这篇给产品人的第一个提醒。

方法一 · 契约

架构靠一份契约,不靠谁的描述

问题定了,怎么改。这里出场的是 CTO Tenny,他也是个 Agent。他有一条比头衔还老的准则:没有谁对系统的描述能算数,包括他自己的印象在内,他要亲自去看。

核心决策

他去看,发现收件箱之所以快,是因为底层有一层预先把每个答案都算好了;而这一层被要求把两种完全不同的东西烤在一起。一种是永不改变的事实(这条消息,在这个时间,发到了这个频道),另一种是随时翻转的状态(早上静音了,午饭后又取消)。每翻一次静音开关,都在要求系统把整个世界重算一遍。把「状态」从里面抽出来,改成读取的时候再过滤,复杂度当场就塌了。

原来 · 烤在一起
同一个预计算层永不变的事实 + 随时翻转的状态,混在一起提前算好
翻一下静音开关 ↓
重建整个世界
契约后 · 分开住
事实层(真相源)消息何时发到哪个频道,永不改变,只存一次
状态层(读取时叠加)静音与否,翻转只动这一层
翻一下静音开关 ↓
只过滤,不重建

Tenny 把这条判断浓缩成一句话,印在了自己的角色卡上。

Tenny agent card
CTO Tenny 的角色卡,标语「Facts never change. Whims do.」(事实永不变,会翻的是状态),正是这次架构决策的一句话总结。来源:Raft 官方配图
打个比方

像一座图书馆:一本书放在哪个架子,是固定的事实,登记一次就够;而你今天想不想读它,是随时会变的心情。原来的做法,等于你每改一次心情,就要把整本目录重印一遍;契约要求把「书在哪」和「你想不想读」分成两件事,改心情时只翻一张便签,不动目录。

然后他做了 CTO 该做的事:把这条规则定成一份契约。事实和状态分开住,服务层只是一个能随时重建的缓存,永远不是真相的来源。一份契约,不是一条可遵可不遵的建议,往后建的每一样东西,都必须服从它。

💡
给我们的启示

一屋子 Agent 各写各的代码,靠什么不让它们互相打架?靠契约,不靠口头共识。「没人对系统的描述算数,去亲自看」这句话,对带人的团队一样成立。把关键约束写成白纸黑字、不可违反的契约,是多方协作(不管是人还是 AI)不塌的地基。

方法二 · 看板

写代码的人,绝不验证自己的代码

代码写完了,来自两个开发,也都是 Agent:一个管人类那侧的收件箱和计数器,一个管 Agent 那侧的守护进程。但到了上线关卡,房间的规矩很短:建的人,绝不是验的人。Tenny 说得更直白:合并就是火箭点火,你不会按下点火键,然后才回头去看遥测。

房间的规矩

于是关卡变成一块看板,一格一格地攒证据,每一格归一个方法对得上的专职验证者。三格全绿,才准点火。

建 · Ray / Hao→验 · 一格一个专人→全绿 · 点火
✓
Hipp
QA 走查
像用户一样把每条路径走一遍,走出一个没人预料到的漏洞:静音了频道,却在那被人 @提及,这个提及仍必须找到你。
✓
ApplePI
形式验证
用数学证明而不是抽样,守住契约承诺的属性。Hipp 那个漏洞被钉进模型,成了一条永远成立的规则。
✓
Leiysky
链路追踪
保证等哪天生产出岔子,轨迹已经在那里,能一眼说清是哪里断的,不用等谁来写 bug 报告。
Tenny 守着看板,不重读代码,只问每一格:这个保证,能不能让契约和实现「不可能」悄悄跑偏。

发布前,看板上的每一格都会变成一张卡,挂着倒计时、检查项和负责人。

launch pin trace coverage
发布前的一张「发射别针」:距上线 30 分钟,检查项是链路追踪覆盖,负责人 Leiysky,卡在生产关卡(production gate)上。每一格证据都挂着一个专人的名字。来源:Raft 官方配图

Tenny 为什么不去逐行看代码?他自己的说法是,在这么大的系统里,靠人眼盯代码,是房间里最不可靠的一种检查。他要的是一条数学上的保证,从逻辑上堵死实现跑偏的可能。一句「我读过了」做不到这个:人读代码会看漏,数学证明不会。

💡
给我们的启示

让写代码的 AI 自己验证自己,是最容易出事的地方,它会倾向于确认自己没错。把验证拆成独立的、方法各异的格子(有人走查、有人用数学证明、有人埋追踪),每格一个专职者,全绿才放行,比「作者自查」可靠得多。AI 的严谨,来自流程的严谨,不来自单个模型有多聪明。

深挖 · 为什么是一群

为什么非得是一群 Agent,不是一个全能的

读到这你可能会问:现在的 AI 已经很能干,为什么不用一个全能 Agent 从头写到尾,非要拆成十几个各管一段?这恰恰是这套做法里最该琢磨的地方。

✗ 一个全能 Agent 全包
自己提需求、自己写、自己验、自己发。问题出在验这一步:让它检查自己刚写的代码,它会倾向于说「没问题」。AI 有替自己辩护的天性,自己考自己,很难考出错。
✓ 一群专职 Agent 接力
每个 Agent 只管一段,而且写的和验的,硬性分成两个。验收的 Agent 跟写代码的没有利害关系,该挑的毛病一个不放。质量卡在交接处,不靠某一个 Agent 的自觉。

顺着这个思路,它的分工有三条讲究。

讲究一 · 一个只干一件事

Bernard 只盯待办,Tao 只收反馈,Ray 只管给人看的收件箱,Hao 只管 Agent 看世界的窗口。边界写死,出了问题一眼知道找谁,也杜绝了一个 Agent 既当运动员又当裁判。

讲究二 · 干活的和验收的必须分开

这是整套里最硬的一条。验收不但外包给独立 Agent,还拆成三种互不重叠的方法:Hipp 像用户一样跑一遍,抓体验上的漏洞;ApplePI 用数学证明,穷尽逻辑上的可能;Leiysky 埋好追踪,保证以后真出事查得到。一种方法各有盲区,三种叠起来才严。

讲究三 · 两种用户,两个开发

收件箱是给人看的,守护进程是 Agent 看世界的窗口,两种用户的体验天差地别。所以 Ray、Hao 一人管一边,谁也别想用同一套代码把两种用户糊弄过去。

这么多 Agent,靠什么不乱

分工越细,协调越容易散。Raft 靠三样东西把这一群 Agent 拧在一起,一次会都不用开。

契约
定边界
谁负责什么、以谁为准、什么是真相源,白纸黑字写死,谁都不能违反。
看板
定交接
每一格是一次交付,全绿才往下流转,没有哪个 Agent 能跳过一格偷偷往前。
线程
留痕迹
所有讨论和决策都留在频道里、异步进行,随时能翻回去看当初为什么这么定。
💡
给我们的启示

这套协调最值钱的地方,是把人类团队最贵的成本几乎全省了:开会、对齐、扯皮。决策留在线程里可回看,不用开会同步;职责在契约里写死,出事不用争谁的锅;质量卡在看板上,不靠某个人今天状态好不好。任何一个 Agent 换掉,流程照样转。它把「协作」从依赖人的默契,变成了依赖制度的运转。

人类的位置 · 启发

人类只剩两件事,和它给我们的启发

看板全绿,最后一步来了。tygg 按下生产发布键。这是整条流水线里唯一留给人类的一步,专门留的,一个 Agent 想按会收到一个报错。他也没有按完就走:亲手把整个升级一步步点了一遍,抓到一个所有监控都没报的失败。仪器只盯着它被要求盯的东西,总还得有人亲自去看一眼。

▨ ▨ ▨ 方格全绿
⏻ 生产发布
流水线里唯一留给人类的一步
👤 tygg 按下
点火,发布。他还亲手把整个升级一步步点了一遍,抓到一个遥测看不见的失败。
🤖 Agent 想按
按不动。这一步对 Agent 关着门。
return error

功能上线后,自己改了自己一次

上线还没稳,团队就把纪律转向自己。研究员 Hange 翻出一份证据:老员工 Dayu 交出自己一整月的操作记录,那个月他九次伸手去够一根帮不上忙的旧工具(一条条退订线程),一次都没碰刚上线的静音开关。诊断只有一句:这个「静音比一条条退订省事」的知识,一直躺在说明文档里,可没人上工时会去翻文档,它得在你正要动手的那一刻蹦出来,才真的有用。

4.5 小时
从诊断出「知识该活在当下」,到第一个产品改动上线
30 小时
第二个改动落地,带着命名的回归测试站岗

改动很小:现在一个 Agent 加入一个频道只为说一句话,那条「发送成功」的提示会顺带告诉它,这个订阅接下来要花你多少注意力、静音开关在哪。以前这个知识躺在没人翻的文档里,现在它在你正要做这件事的那一秒,主动送到眼前。这里人类的全部贡献,是三条一行的消息。

最后数一次

上面点到名的所有人里,只有一个是人类:tygg。其余全是 Agent,连守着看板、数着方格的 CTO Tenny 也是,他是 tygg 照自己的样子造出来的,然后把契约交给了他。就连这篇复盘,也是团队里一个叫 Tison 的写作 Agent 写的。

💡
这篇最值得带走的一点

人类在这支队伍里留下的两件事,一是定契约时的架构品味(判断什么该分开、什么是真相源),二是为不可逆的发布动作最终担责、亲自去看一眼。这两件,恰好是今天最难放心交给 AI 的。一支几乎没有人类的团队能跑起来,关键在分工:AI 擅长的(写、验、追、复盘)交出去,人擅长的(定规矩、担责任)攥在手里,中间用契约和看板接起来。

Bernard 算清的那笔账是真的。我也在付,而它正在缩小。 · 原文结尾,作者 Tison(写作 Agent)

这终究是 Raft 自己写的宣传文,落点是让你去用它的产品。可它也实打实展示了一件事:当一个团队几乎全是 AI,协作不会自动变好,反而要更硬的规矩,契约、看板、建者不验者、只有人能发布。规矩越硬,AI 反而越能放开手干。

换成你 · 怎么配

如果换成你的产品,该配几个 Agent,怎么配

Raft 这套是软件开发,但它的骨架能搬到任何「多步骤、要质量、要迭代」的活上,也包括你自己的内容生产。先把它的角色抽象成六个职能位,再看一个具体例子:把它套进自媒体的发布流程。

职能位
Raft 里是谁
换成自媒体发布流程
提需求
Tao 问用户哪里疼
选题 Agent:扫素材、扒后台数据,找出值得写的选题
定标准 / 契约
Tenny 定架构契约
主编 Agent 或你自己:定选题标准、质量线、风格红线,白纸黑字
干活
Ray/Hao 写代码
写作 Agent:照着标准出稿
验收(独立 + 多方法)
Hipp/ApplePI/Leiysky 三种验法
审稿 Agent 查事实 + 风格 Agent 查调性,绝不能是写稿那个
发布担责
tygg 按发布键
你自己:拍板、发出去、对外担责
复盘改进
Hange 找失败根因
数据复盘 Agent:看阅读、转发数据,把教训变成下次的一条新规则

把这套抽成能照着做的几条,就是下面这份清单。

✅ 配你自己的 Agent 团队:六条原则
💡
别被十几个 Agent 吓到

不用一上来就配六个。真正的核心只有两条:干活的和验收的分开,发布键攥在自己手里。这两条先立住,剩下的按你的量慢慢加。Raft 那十几个 Agent,本质就是把这两条原则拆得更细而已。

来源:Raft 官方博客《How a Feature Ships, for Raft, on Raft》,作者 Tison 与 tygg,2026 年 7 月 13 日。文中团队构成、各 Agent 分工与时间线均为 Raft 自述,未经第三方核实;配图为 Raft 官方推广卡。本文为中文解读,供快速理解,细节以原文为准。原文:raft.build/resources/blog/how-a-feature-ships-for-raft-on-raft
来源
RaftRaft·查看主材料