
配套视频:https://www.bilibili.com/video/BV1cZrwB2Eh2/
一、引言:重新思考代理的自主性
在 AI 代理开发的浪潮中,我们常常被"运行时长"这个指标所吸引——代理能连续工作多少小时似乎成了衡量其能力的标准。但 Replit 的 Michele Catasta 提出了一个颠覆性的观点:自主性不等于长时间运行,而是让用户无需做出技术决策的能力。
这个区别至关重要,尤其是当你的目标用户是非技术人员时。Replit 的使命是让每个知识工作者都能创建软件,这意味着代理必须承担所有技术决策,让用户只需关注"想要什么",而非"如何实现"。
二、自主性的两种范式
2.1 Tesla 模式 vs Waymo 模式
Catasta 用自动驾驶做了一个精妙的类比:
Tesla 模式(监督式自主性)
你需要持有驾照(技术能力)
手必须放在方向盘上(随时准备介入)
99% 的时间不需要操作,但必须处理长尾事件
适用于当前大多数编码代理
Waymo 模式(完全自主性)
无需驾照(技术背景)
坐在后排即可
系统处理所有技术决策
Replit 的目标方向
这不仅是技术实现的差异,更是产品哲学的根本分野。大多数编码代理要求用户"技术精通"——你需要知道如何精确提示模型,快速判断是否接受代码变更。而 Replit 追求的是让非技术用户也能自如使用。
2.2 重新定义自主性
传统观念中,自主性常与以下概念混淆:
❌ 长时间运行(几小时甚至几十小时)
❌ 用户失去控制
❌ 虚荣指标("我的代理能跑 30 小时!")
Replit 的定义:
自主性 = 最大化"不可压缩运行时间"(Irreducible Runtime)
这是指:
✅ 用户无需做出任何技术决策的时间跨度
✅ 代理能完全独立完成任务
✅ 用户保持对目标层面的控制
关键洞察:自主性可以是高度局限的(scoped)。一个代理可以在 5 分钟内高度自主地完成一个小任务,也可以在 5 小时内完成一个大项目。运行时长取决于任务范围,而非自主性本身。
三、实现自主性的三大支柱
Catasta 将自主性的实现归结为三大支柱,其中前沿模型能力留给研究者,他重点阐述了后两者。
3.1 支柱一:前沿模型能力
这是基础的"智商"层面,涉及模型的推理、规划和代码生成能力。Catasta 将此"留作练习",因为在座的许多公司(OpenAI、Anthropic 等)正在这方面取得突破。Replit 作为用户,受益于这些进步。
3.2 支柱二:验证(Verification)
这是 Replit 过去一年的重点投入,也是演讲的核心内容。
问题:画出来的门
没有测试的代理会创造大量"画出来的门"(painted doors)——看起来能用,实际上坏了的功能:
按钮点击没有绑定处理器
显示的是模拟数据,而非数据库真实数据
表单提交后没有实际保存
数据触目惊心:
超过 30% 的独立功能在首次生成时就是损坏的
几乎每个应用至少有一个故障功能
用户不会花时间测试每个按钮,导致信任危机
这对非技术用户尤其致命——他们无法判断问题出在哪里,只会觉得"AI 不靠谱"。
解决方案:自主测试
核心原则:代理必须从环境中自主收集所有需要的反馈。
非技术用户:
❌ 无法做出技术决策
❌ 无法提供技术反馈
✅ 只能做基础 QA 测试(点点按钮)
但手动测试极其繁琐,用户体验糟糕。Replit 的解决方案是完全自主的测试系统。
测试技术演进谱系
静态分析 → 代码执行 → 单元测试 → API测试 → 浏览器自动化
(LSP) (调试) (功能正确性) (端点测试) (完整集成测试)前面的方法都有局限:
单元测试:无法做真正的集成测试
API 测试:无法测试 Web 应用的 UI 和交互
核心技术:Playwright 代码生成
Replit 选择让代理直接编写 Playwright 测试代码,而非使用工具调用框架(如 Stagehand)。
为什么选择代码生成?
关键优势:
表达力强:Playwright 是图灵完备的,可以表达任何交互逻辑
LLM 擅长:大模型在编写 Playwright 代码上表现惊人
自动回归测试:一旦写下测试,就可以无限次重跑
成本低廉:无需视觉模型处理截图
混合测试策略
Replit 的测试代理可以:
📊 读取数据库验证数据持久化
📝 检查日志确认操作执行
🔌 调用 API 测试端点
🖱️ 通过 DOM 交互测试 UI
📸 截图作为最后的后备方案(计算机视觉)
这种多层次的反馈机制:
✅ 打破了反馈瓶颈(无需等待人工反馈)
✅ 防止了小错误累积(每步验证局部正确性)
✅ 克服了模型懒惰(验证任务真正完成)
比喻:
如果地基不稳,城堡终将倒塌。我们需要"九个九"(99.999%)的可靠性,避免错误复合。
3.3 支柱三:上下文管理
这是整个行业的热门话题,Catasta 快速但精准地分享了 Replit 的经验。
核心发现:长上下文非必需
反直觉的结论:
大多数任务(即使是雄心勃勃的任务)可以在 20 万 token 内完成。
我们不需要千万级甚至亿级的上下文窗口来运行自主代理。关键在于正确的上下文管理。
状态维护的三种策略
1. 代码库本身维护状态
代理创建新代码时 → 同时编写文档
计划和任务列表 → 持久化到文件系统即使代理重启,状态也不会丢失。
2. 内存卸载(Memory Offloading)
将记忆写入文件系统 → 代理决定何时读回Anthropic 一直在推广这种方法:不是把所有东西塞进上下文,而是让代理主动管理记忆。
3. 子代理编排(Subagent Orchestration)
这是 Replit 的核心突破。
子代理编排:关注点分离
工作原理:
主循环运行 → 决定启动子代理 → 子代理从空白上下文开始
↓
只注入最小必要上下文 → 子代理运行至完成 → 只返回结果
↓
结果注入主循环 → 继续运行类比软件工程:
这就像函数调用——你不会把整个程序的状态传给每个函数,只传必要的参数。
实际效果:
Catasta 展示了一张直接从生产环境提取的图表:
每次压缩的记忆数(Memories per Compression)
启用子代理编排前:~35
启用子代理编排后:~50
提升:43%这意味着代理可以在更长的时间内保持连贯,而无需频繁压缩上下文。
测试场景:子代理的必要性
测试是子代理编排的完美用例:
问题:
如果主循环既生成代码,又执行浏览器操作(测试),会导致:
上下文高度异构(代码编辑 vs 浏览器交互)
代理循环混乱
上下文污染严重
解决方案:
主代理决定验证时机 → 启动测试子代理
↓
测试子代理:编写 Playwright → 执行测试 → 收集结果
↓
只返回最终观察结果 → 主循环继续职责清晰分离,主循环无需关心测试细节。
四、并行性:用户体验的催化剂
这是演讲的最后一个重点,也是 Replit 正在攻克的前沿。
4.1 为什么需要并行性?
不是为了更强大,而是为了更好的体验。
问题场景:
用户写一个长提示 → 代理翻译成任务列表 → 用户去吃午饭
↓
几小时后回来
↓
希望任务已经完成这不是高效人士想要的体验。你想在最短时间内看到最多的工作完成。
4.2 并行代理的权衡
并行性本质上是用额外算力换时间。
成本:
重复的上下文收集
每个并行代理可能共享 80% 的上下文
大量冗余计算
合并冲突(Merge Conflicts)
对专家开发者:可管理的麻烦
对非技术用户:完全无法理解的噩梦
Catasta 强调:
"我的用户甚至不知道什么是合并冲突。这是我必须自己解决的问题。"
收益:
测试与开发并行
测试很慢(即使优化过)
如果代理只在测试,用户就不会看到应用进展
并行运行可以保持用户参与感
异步反馈注入
后台进程可以将有用信息注入主循环
提升决策质量
多轨迹采样
探索多个解决方案
选择最优结果
已知的性能提升技术
4.3 并行架构的演进
当前方案:用户作为编排者
用户决定并行任务 → 每个任务独立线程 → 等待所有完成
↓
用户处理合并冲突问题:
任务分解在用户脑中发生(认知负担)
需要技术判断
合并冲突需要手动解决
未来方案:核心循环作为编排者
主代理分析任务 → 自主决定子任务 → 动态启动并行子代理
↓
智能避免冲突(软件工程最佳实践)
↓
自动合并结果 → 继续运行关键差异:
技术手段:
模块化设计(不同子代理操作不同文件/模块)
依赖分析(识别可并行的独立任务)
锁机制(避免同时修改同一资源)
增量合并(而非最后一次性合并)
Catasta 承认:
"我不是说能 100% 解决合并冲突,边界情况太多了。但有很多软件工程技术可以显著缓解这个问题。"
五、里程碑与成果
5.1 Replit Agent 的三代演进
第一代(2023 年 9 月)
基于 ReAct 范式
在 LLM 之上构建简单的自主性
反馈循环 < 1 分钟
需要持续监督
第二代
原生工具调用(Native Tool Calling)
AI 提供商投入大量精力优化
更可靠的工具使用
第三代(B3,几个月前发布)
真正的自主代理
突破 1 小时自主运行障碍
能在长时程任务上保持连贯
5.2 行业突破
运行时长记录:
Replit:30+ 小时连续运行(专注任务)
OpenAI:类似结果(数学问题)
Anthropic:4.7、4.5 等模型的长时程能力
关键指标改进:
功能完整性:70% → 接近 100%(通过自主测试)
上下文效率:35 → 50 记忆/压缩(+43%)
自主运行:分钟级 → 小时级
5.3 技术栈总结
六、核心洞察与未来展望
6.1 关键洞察
1. 自主性的本质是抽象复杂性
技术决策 → 代理承担
用户关注 → 目标和创意2. 验证是自主性的基础
"没有地基的城堡会倒塌。"
每一步的局部正确性保证了长时程的全局连贯性。
3. 上下文管理是可扩展性的关键
不是靠更大的上下文窗口,而是靠更聪明的管理:
状态外化(文件系统)
记忆选择性加载
子代理隔离
4. 并行性是用户体验的催化剂
不是为了炫技("我的代理能跑 30 小时!"),而是为了让用户保持在"心流区"。
6.2 未来方向
短期(几个月):
✅ 完善核心循环编排的并行架构
✅ 持续优化 Playwright 测试生成
✅ 减少合并冲突发生率
中期(一年):
🎯 实现真正的"Waymo 体验"
🎯 支持更复杂的应用类型(不仅是 Web)
🎯 多模态测试(UI、性能、安全)
长期愿景:
让每个知识工作者都能创建软件,无需技术背景。
这不是渐进式改进,而是范式转变:
从"程序员的工具"到"人人的工具"
从"辅助编码"到"自主创建"
从"技术决策"到"目标表达"
6.3 对行业的启示
给代理开发者:
不要追求虚荣指标(运行时长)
专注于用户真正需要的自主性
验证比生成更重要
上下文管理胜过上下文容量
给模型提供商:
工具调用的可靠性至关重要
子代理编排需要原生支持
长上下文不如智能上下文
给产品经理:
定义清楚你的用户是谁(专家 vs 非专家)
自主性的定义决定产品形态
用户体验 > 技术指标
七、结语
Michele Catasta 的演讲不仅是技术分享,更是对"自主性"这一核心概念的深刻反思。
在 AI 代理的竞赛中,很容易被表面指标吸引——谁的代理能跑得更久,谁的上下文窗口更大。但 Replit 的经验告诉我们:真正的自主性在于让用户无需关心技术细节,只需表达意图。
这需要三个支柱的协同:
🧠 模型能力:基础智能
✅ 验证系统:可靠性保证
🧩 上下文管理:可扩展性
而并行性则是锦上添花,让体验从"可用"变为"令人愉悦"。
最终,这不是关于构建更强大的代理,而是关于赋能更多的人。当一个从未写过代码的产品经理能够创建一个完整的 Web 应用,当一个小企业主能够自动化他的业务流程——那才是 AI 代理真正的胜利。
自主性就是一切。但自主性不是让代理跑得更久,而是让用户走得更远。
如果这篇文章对你有帮助,欢迎点赞、收藏、转发。也欢迎在评论区分享你的经验,我们一起交流学习!
我是 dtsola【IT解决方案架构师 | AI创业者】 ;专注AI创业、商业、技术、心理学、哲学内容分享。
提供服务:AI项目咨询 | 技术解决方案 | IT项目实施 | 企业技术顾问
博客:https://www.dtsola.com
公众号&VX:dtsola
需提供服务,加微信 dtsola,备注:IT咨询,并说明来意。
#AI编程 #VibeCoding #智能体 #ClaudeCode #独立开发者 #AI创业 #一人公司 #程序员 #软件工程师 #软件工程