> ## 文档索引
> 获取完整文档索引： https://fushouagent.com/docs/llms.txt
> 先阅读此索引，了解所有可用页面。

# ios rpa generate

> 在目标设备上生成、验证并保存可复用 RPA 脚本。

```bash
fushou-agent ios rpa generate "具体目标"
```

此命令仅支持交互模式，请在交互终端运行。即使传入 `-p` 或 `--prompt`，也仍按交互模式处理。

可以只提供目标，也可以使用自然语言、标签文本或 JSON 对象描述完整需求，不要求固定标签写法。智能体先综合判断内容是否完整：完整时直接进入生成，不再要求确认；有缺失或歧义时，逐项提问并建议取值，已经明确的内容直接沿用。补充完整后自动继续。

需求涵盖目标、变量、初始页面、操作步骤、成功状态、验证变量。可将这些名称作为 JSON 对象的 key，也可在普通文本中说明。

填写要点：

- 变量：写出每次运行可能变化的内容，例如接收人、文本或金额，同时明确原始目标中首次执行的取值，并在验证变量中另外给出脚本生成后的验证取值。没有变量的脚本每次只能执行相同内容。只有已声明的变量允许变化，其余已明确的应用、素材、匹配规则等保持固定，直接写在目标或步骤中，无需单独填写“常量”。
- 初始页面：列出任务允许从哪些页面开始，可填写一个或多个，例如“应用首页、应用其它页面、手机桌面”，不区分正常、异常。智能体根据目标和步骤确定业务开始前应到达的页面，有歧义时才询问，无需额外填写业务入口。未指定起点且目标操作路径需要经过应用首页时，会将“应用首页、应用其它页面、系统桌面”作为一组推荐，接受后兼容这三个起点，也可自行缩小范围。已有明确起点时直接沿用；路径不经过首页时按实际路径建议。不要列出锁屏、未登录、缺少权限等执行前提不满足的情况。
- 操作步骤：只写一条确定的操作路径；需要发送或提交时明确写出。
- 验证变量：只填写变量及验证时使用的实际取值，例如“歌曲名=春天花会开”，不能指定初始页面或起点，也不填写操作步骤、恢复流程或预期结果。未提供时，智能体会推荐与原始目标不同、符合变量约束的取值并询问；无法可靠建议时请你提供。回答明确全部变量值后直接继续，已指定的值直接沿用。相同取值组合只验证一次，不按不同初始页面拆分；没有变量时使用空参数组合。
- 需求中不要要求保存脚本或验证回放，这些由命令自动完成。

每步开始前，智能体会输出当前步骤，例如“1/6 核验需求规则”。六步依次为：核验需求规则、初始页面验证、根据原始目标执行操作步骤、编写脚本、执行脚本并验证成功状态、输出脚本信息。整个流程由同一个智能体连续完成，由智能体自行衔接各步骤及必要的修复，无需重复描述需求。长任务接近配置的上下文阈值时会自动整理历史，保留任务进展后继续执行，无需重新输入需求。终端会显示具体工具调用。第六步汇报整个任务的结果。校验并保存成功后显示脚本 ID、参数和执行示例，命令自动结束，无需按 Ctrl+C；校验或保存失败时显示错误并退出。

生成时先按原始目标中的变量值执行一次业务并记录操作，再编写脚本；脚本编写完成后才使用验证变量回放验证。脚本参数默认值保留原始目标中的取值。例如原始目标播放《浪花一朵朵》、验证变量为《心太软》，第 3 步播放《浪花一朵朵》，第 5 步通过脚本播放《心太软》。生成期间会实际操作设备，并从每个初始页面分别验证能否进入业务入口；完整业务按不同验证变量执行，不与初始页面交叉重复。“应用其它页面”等宽泛描述会选择一个可安全到达的代表页面验证，并记录实际页面，不代表穷尽所有子页面。验收会结合本次回放的操作记录、过程截图和当前页面，核验选取顺序等过程要求及最终结果。验证失败时最多尝试三次；无法继续时命令报错退出。真实操作可能产生重复业务数据，请将验证变量用于允许重复执行的场景。

请授予与普通 `exec` 相同的设备权限。设备锁定、未登录或缺少权限等不可恢复情况报错退出。按 Ctrl+C 或终止进程会停止本地任务，已完成操作不自动撤销。


此命令会输出脚本 ID、参数等信息，可以在控制台/GUI智能体/自动化脚本查看具体的脚本信息。

## 本地执行与交互

请先安装 Node.js 22.19.0 或更新版本。任务在本机执行，在终端显示执行过程；没有交互终端时以退出码 `1` 结束，提示改用交互终端。脚本执行费只计算执行时间，准备和下载时间不计费。已发生的模型调用与脚本执行费用在任务取消后仍会保留。

仅在澄清工具 `ask_user` 提问时显示输入框并接收回答，其余时间不接受输入。需要恢复待回答会话时，可在同一电脑的交互终端执行 `fushou-agent ios rpa generate --resume SESSION_ID`。

## 相关主题

- [ios rpa exec](/docs/client/ios/rpa/exec.md)
- [ios exec](/docs/client/ios/exec.md)
