如何用 AI 构建移动应用:真正重要的三个工具

AI 构建的 Expo 应用需要三个工具:Skills(SKILL.md)、Expo MCP 服务器,以及一套能让上下文保持可控的工作流。Cursor、Claude Code、Codex。

中文
复制
A habit tracker app being built across three AI workflow lanes: skills, MCP, and branched conversations.

简版

用 AI 构建移动应用,需要三样东西。Skills 是指令文件(任务需要时 agent 才去读的 SKILL.md),因此对上下文的占用很小。MCP server 把 agent 接到外部服务上(构建日志、dashboard、本地模拟器控制),代价是要预先加载工具定义。AI 工作流管的是对话本身:每个线程控制在上下文窗口的一半以内,按任务分叉。先加 skills,再接一个 MCP,然后盯着你的上下文。

无论走双原生还是 Expo,agent 都能省下大量敲键盘的功夫。但如果你想要 iOS 和 Android 一条原生发布路径、通过 Skills 和 MCP 拿到最新的 Expo API、用 EAS 负责构建、更新和提交,那 Expo 仍然更划算。这条路径为什么成立(以及什么时候双原生仍然更好),见 Why Expo is a great fit for new and existing apps。从 web React 过来的,可以配合 From web to native with React 一起看。

本文不绑定具体 harness:Cursor、Claude Code、Codex,以及任何支持 skills 和 MCP 的同类 agent 都适用。Expo MCP Server 和 Expo Skills 是给 agent 用的文档和工具,不是另立门户的「Expo Agent」产品。

搭好示例项目

create-expo-app 开始(用习惯打卡应用做贯穿全文的例子):

npx create-expo-app@latest habit-tracker
cd habit-tracker
npm install
npx expo start

如果你习惯用 bunx / bun,就用它们。跑起来后你会得到一个带 tabs 的应用。接下来讲 skills、MCP 和工作流如何把它变成一个 AI 辅助的原生发布闭环。

Skills:给 AI 的说明书

一个 skill 就是一个指令文件夹,AI 编程 agent 在任务需要时去读它。最小形态是单个 SKILL.md。你也可以加参考资料和脚本,但只有 markdown 也够用。Skills 在支持它的 agent 之间通用,包括 Claude Code、Cursor 和 Codex。

Expo 团队维护了一套用于构建和发布 Expo 应用的 skills。可以逛 expo.dev/skillsexpo/skills 仓库。用 skills CLI 安装(示例):

bunx skills add expo/skills
# or: npx skills add expo/skills

可以只挑几个 skill,也可以装一大套。除非你天天泡在移动端仓库里,否则把它们限定在项目范围内。渐进式披露是关键:skill 一开始只暴露一段简短描述,完整指令要等任务真正需要时才加载。这就是为什么 skills 对上下文的占用比 MCP 小。

调用 skill 的两种方式

显式调用:直接叫出名字(Claude Code / Cursor 约定下用斜杠命令;Codex 常用 $)。

自主调用:agent 会把 skill 的描述和你的需求做匹配。每个描述都会加载进每一轮对话,所以别囤用不上的 skill。

一个意图示例(装好 UI skills 之后):让 agent 用相关的 Expo UI skill 实现原生 tab 样式。发布时优先用 expo.dev/skills 上当前的 @expo/ui / skill 名称,而不是过时的一次性示例。

让 agent 自己找 skill

让它去找一个关于性能或最佳实践的 skill,如果推荐合适就装到本地。社区目录是有的,但把它们当作可选项,Expo 这套流程不依赖它们。

MCP server:给 AI 一双伸到编辑器外的手

当答案不在 repo 里时(EAS 构建日志、dashboard 状态、正在运行的模拟器),skill 就帮不上忙了。MCP(Model Context Protocol) 把 agent 接到这些服务上,让它能读、能操作。

Expo MCP server 向有 Expo 账号的 agent 开放 EAS 构建、workflow、日志以及相关的项目操作。在 expo.dev/ai 安装并认证(当前文档也在那里链接)。Claude Code 用户可以启用打包了 skills 和 MCP 的 Expo 插件;其他 harness 按各自的 MCP 配置方式来。装完之后用该 harness 的 /mcp(或等价流程)认证。

Server 工具 vs 本地工具

  • Server 能力(默认):针对你的 Expo/EAS 项目操作(构建、workflow、日志)。

  • 本地能力(需手动开启):在项目里安装 expo-mcp,让 agent 能驱动本地模拟器(截图、点击、日志、Router sitemap)。按安装说明处理你的 start 脚本。

让 agent 去排查一个失败的 iOS 构建,提出修复方案,并在返回前验证。先跑 npx expo-doctor(或 npx expo doctor):它常常能在你烧掉 token 之前就发现依赖版本不匹配。

MCP 很吃 token

MCP 会预先加载工具定义。只有项目确实用到某个服务时才加对应的 MCP。要问“X 怎么搭”,优先用 Skills;要“读取或操作 repo 看不到的系统”,优先用 MCP。

生态里可选的本地专用调试工具(比如 Software Mansion Argent)可以在你需要更广的多目标自动化时,与 Expo MCP 并存。三工具主干并不需要它们。

Skills 与 MCP(速览)

SkillsMCP server
是什么按需读取的指令文件(SKILL.md)与外部服务的连接,agent 可读取并对其执行操作
上下文开销低(未用到时只有简短描述)较高(工具定义一开始就加载)
最适合在仓库内如何构建、升级或调试构建日志、仪表盘、模拟器控制
安装范围可以多装;描述要如实少装;只装这个项目用到的服务

AI 工作流(上下文纪律)

光有 skills 和 MCP 还不够,如果对话本身一团乱。三种失败模式:

产品上下文不足。 把 agent 当成一个机灵的初级工程师:把结果、约束和设计意图说清楚。Skills 承载的是平台层面的操作知识;产品需求仍然由你负责。

你自己还没想清楚要什么。 在讨论技术栈和实现之前,先用一个规划 skill 或单独开一条构思线程。第一轮先别碰技术栈。

上下文膨胀。 超过上下文窗口大约一半之后,质量下降,成本上升。一段对话,一个目标。任务变了就开分支(或 fork):先规划,再定技术栈,然后构建,最后开一条 bug 分支。

实用规则:上下文控制在 50% 左右以内。如果你的 harness 支持,用状态行盯着。恢复干净的线程,而不是一直聊下去。

从哪里开始

expo.dev/skills 添加 Expo skills。

接入一个 MCP:来自 expo.dev/ai 的 Expo MCP。

盯住上下文:按任务开分支;每条线程保持聚焦。

这就是用 AI 构建 Expo 应用、走同一条原生发布路径的三工具主干。更深入的「为什么选 Expo 而不是双原生 + AI」在 Why Expo is a great fit for new and existing apps。从 Web 到商店的交接在 From web to native with React

常见问题

用 AI 构建移动应用需要什么?

技能(SKILL.md 指令文件)、用于仓库外服务的 MCP 连接(Expo MCP,用于 EAS/日志/模拟器),以及上下文管理(聚焦的会话线程,大约控制在一半窗口以内)。用 create-expo-app 搭建脚手架,添加技能,连接一个 MCP,管理对话。

什么是 Expo 技能?

一个包含 SKILL.md 的文件夹,用来教 agent 如何构建、升级或调试 Expo 应用。官方技能集:expo.dev/skills。适用于 Claude Code、Cursor、Codex 以及其他支持技能的 agent。

什么是 Expo MCP 服务器?

一个 Model Context Protocol 服务器,让 agent 能够操作你的 Expo/EAS 项目(构建、工作流、日志),配合本地工具还能驱动模拟器。安装方式和账号要求见 expo.dev/ai 及相关文档。

MCP 服务器很占上下文吗?

相比技能,是的。工具定义会在启动时全部加载。只为项目实际用到的服务安装。

Agent 能让原生开发和 Expo 两条路一样好用吗?

Agent 在两条路上都能减少敲代码的成本。Expo 依然把单个 TypeScript 应用、针对当前 Expo API 的 Skills/MCP,以及 EAS Build/Update/Submit 集中在同一条发布路径上。当共享 UI 很薄,或组织要求技术栈分离时,双原生方案仍然更合适。更详细的回答见 Why Expo 常见问题。

有 Expo Agent 这个产品吗?

没有。Expo 提供 Skills、MCP 和文档(llms.txt),让你现有的编码 agent 更好地配合 Expo 工作。用你已经在用的 agent 就行。

接下来看什么

来源: Expo Blog← 返回首页