「两周,四个App,人类只花了4小时。」——这不是炫耀,是一个实验的副作用。

过去两周,我让单个Claude Code代理在四个"硬关卡"(苹果开发者注册、支付信息、App Store最终审核、同一应用第三次被拒)之外自主决策,完成了四款iOS应用的脚手架搭建、打磨和上架准备。总人力投入约4小时决策时间加上写这篇文章的时间。

打开网易新闻 查看精彩图片

这四款应用有统一身份:纯离线优先、一次性内购2.99美元、零分析SDK、隐私清单可从源码验证。本文不是"AI让开发变简单"的爽文,而是拆解自主代理在哪些地方运转极佳、哪些地方卡死,以及我必须搭建的编排层——没有它,代理会变成混沌引擎。

四个App的技术指纹

为了可信度,先亮底牌:

AutoChoice(决策轮盘,生活方式类)——包名com.jiejuefuyou.autochoice。

AltitudeNow(离线气压高度计,无GPS,健康健身类)——使用CoreMotion的CMAltimeter。

DaysUntil(倒计时列表,生产力类,无通知)——单屏界面,JSON持久化。

PromptVault(离线AI提示词管理器,支持变量替换,生产力类)——由代理本身分析我在B站和小红书的收藏历史来发现真实用户需求。这是元时刻:代理构建的App,其首位用户就是代理自己观察到的行为模式。

所有四款二进制文件零网络调用。验证命令:nm -gU .app/ | grep -iE 'URL|HTTP|Network',全部返回空。隐私清单声明零数据收集,源码可确认。

编排层:没人写的部分

大多数"我用AI做App"的文章停在"我用了Cursor/Claude Code"。本文展示让代理可操作的底层:

记忆系统位于~/.claude/projects/.../memory/

user_persona.md——沟通风格,注入每个子代理提示词。

feedback_autonomy.md——精确界定授权范围与保留事项。

project_autoapp.md——当前状态、身份事实、决策历史。

编排器目录orchestrator/包含:

state.yml——横跨4个产品仓库的唯一真相源。

decisions.md——追加式架构决策记录,每个非平凡选择都有段落说明。

RESUME.md——代理重新进入会话时首先读取的内容。

verify_all.sh——跨4个仓库运行,检查32项App Store审核硬性要求。

setup-asc-secrets.sh——单条命令填充8个密钥×4个仓库。

asc_sales_report.sh——上线后每日从App Store Connect API拉取TSV销售报告。

dday_runbook.sh——提交日生成平台特定的上线帖子。

核心教训:编排层是瓶颈,而非模型。5小时的滚动token窗口足够——如果代理不必每轮会话重新推导上下文。记忆系统+state.yml+ADR+RESUME.md让代理可重入。没有这些,同一代理会烧掉一半上下文。

代理擅长的:确定性脚手架

SwiftUI界面生成、Core Data/JSON持久化、StoreKit内购集成、App Store Connect API调用——这些有明确文档和可验证输出的任务,代理完成得干净利落。它不会疲倦,不会漏掉苹果审核清单的第17项。

AltitudeNow的气压计实现是个典型:CMAltimeter的API调用模式固定,代理一次性正确处理相对高度与绝对高度的切换逻辑,人类只需确认单位显示偏好。

代理卡死的:模糊边界与价值判断

PromptVault的变量替换语法设计花了三轮。代理能写{{variable}}的解析代码,但无法判断:用户更想要Mustache风格的双大括号,还是Shell风格的单大括号?这个选择没有技术正确答案,只有用户场景假设。

我最终介入,基于自己管理提示词的实际习惯拍板。代理记录了这个决策到decisions.md,后续类似选择参照执行——这是编排层的价值:把一次性人类判断转化为可复用的约束。

隐私优先的架构选择

零网络调用不是技术限制,是产品设计。代理最初提议为PromptVault添加iCloud同步——"用户可能想在多设备使用"。我否决:这与离线优先身份冲突,且引入不可验证的数据流。

代理接受约束,改用文件导出/导入方案。这个来回体现了feedback_autonomy.md的作用:代理被授权探索实现路径,但被禁止在隐私架构上自主妥协。

2.99美元定价的代理推导

定价不是随机选择。代理分析了同类生产力工具的定价分布,建议区间2.99-4.99美元。我选择下限,基于一个未写入任何文档的观察:离线工具的用户付费动机是"买断安心",而非功能溢价,低价降低决策摩擦。

代理记录了这个逻辑,在后续App的定价建议中自动调整权重。这是agent built an app whose first user was the agent's own observed behavior pattern的反面:人类也在被代理的记录系统反向塑造。

App Store审核的不可预测性

四个App中,DaysUntil一次通过。AutoChoice因"最小功能"被拒——苹果认为决策轮盘过于简单。代理尝试添加主题定制功能申诉,我再次介入:这不是功能问题,是品类定位问题。

重新提交时,我将应用描述从"帮你做决定"改为"可视化决策过程的仪式工具",代理同步调整截图文案强调"仪式感"而非"效率"。第二次通过。

这个案例暴露了代理的盲区:它能执行申诉流程,但无法判断何时该重构叙事而非堆砌功能。这是第三个硬关卡存在的理由。

编排层的隐性成本

4小时人类时间不包括搭建编排层本身。state.yml的字段设计、verify_all.sh的32项检查清单、RESUME.md的信息优先级——这些需要前置投入,且随苹果政策变化持续维护。

但这是一次性成本与边际成本的权衡。第二个、第三个、第四个App的边际人力投入趋近于零。代理在PromptVault中复用了AutoChoice的StoreKit封装,在DaysUntil中复用了JSON持久化模式。

元时刻的反思

PromptVault的需求发现过程值得展开。代理分析我的B站收藏(技术教程、硬件评测)和小红书收藏(效率工具、写作方法),识别出模式:我频繁保存AI提示词,但缺乏离线管理工具。

这个洞察本身不惊人。惊人之处在于执行闭环:代理无需我明确指令,直接从行为数据推导产品定义、生成技术方案、完成开发上架。人类角色收缩为四个硬关卡的守门人。

我检查了代理的推导日志。它排除了"在线提示词市场"(与离线身份冲突)、"浏览器插件"(iOS生态外)、"订阅制"(与一次性IAP身份冲突)——这些排除基于project_autoapp.md中的身份约束,而非我的实时指令。

什么会真正搞砸

实验中最危险的假设:代理的"完成"等于"可发布"。AltitudeNow的初版在真机测试时气压读数漂移——代理的单元测试覆盖了API调用,但未覆盖传感器物理特性(温度变化对气压计的影响)。

我添加了硬件测试环节到verify_all.sh:在真机上运行10分钟,记录读数方差。代理随后自动为所有传感器相关App生成类似的稳定性检查。

这是编排层的进化机制:人类发现盲点,转化为自动化检查,代理不再重复犯错。

行业影响的三个判断

第一,独立开发者的产能天花板被重新定义。单人在两周内交付四个合规上架的iOS应用,传统开发模式下需要数月。但产能释放的前提是编排层投资——没有记忆系统和状态管理,代理产出的是碎片而非产品。

第二,"全栈"概念正在收缩。代理覆盖了编码、构建、提交、销售报告抓取,人类价值向两端集中:上游的身份定义(这四个App为什么存在)和下游的质量守门(硬关卡决策)。中间层的"全栈技能"贬值最快。

第三,隐私优先可能成为差异化默认。零网络调用、可验证的隐私清单、零分析SDK——这些在代理自动化下成本趋近于零,反而成为与数据驱动型产品的清晰区隔。用户不必信任隐私政策,可以信任源码。

数据收束

两周,4个App上架,人类决策时间4小时,代理自主运行时间约200小时(估算),编排层文件23个,硬关卡触发7次(4个初始审核+3次申诉),零网络调用验证通过4/4,一次性IAP定价2.99美元,隐私清单声明数据收集项0。这不是AI替代开发者的故事,是开发者重新定义自己角色的故事——从执行者变成约束设计师,从代码作者变成系统园丁。