AI 分支适用于在 Apifox 项目中为 AI Agent 提供独立的编辑分支。通过 AI 分支,AI 可以在不直接改动主分支或普通迭代分支的情况下,创建、更新项目资源;修改完成后,在客户端或 CLI 中确认差异,并通过合并或合并请求将结果合入目标分支。为什么需要 AI 分支 ?#
AI 编辑行为存在不可控的风险,而 Apifox CLI 提供了大量编辑功能,AI 分支针为这类高风险的 AI 发起的编辑行为而生,让 AI Agent 在受控范围内完成项目资源编辑。您也可以更新至 Apifox 2.8.31 及以上的版本,于 项目设置 -> 功能设置 -> 外部 AI 编辑权限 中按需开启:主分支、标准迭代分支和通用分支的直接编辑权限,这将忽略 AI 分支的直接限制。什么是 AI 分支 ?#
AI 分支是一种特殊的迭代分支。它和普通迭代分支一样承载项目资源变更,但默认用于外部 AI 行为(CLI),并在合并前保留人工确认环节。1.
隔离编辑:CLI 来源对接口、文档、数据模型、场景用例等资源的修改在 AI 分支中,不会直接影响主分支或来源分支。
2.
来源明确:在 Apifox 端内无法直接创建,必须由 CLI 或 MCP 来源发起创建。AI 分支会记录来源分支。合并时通常回到该来源分支,便于理解 AI 修改的上下文。
3.
人工确认:AI 分支中的改动需要用户确认后再合并。用户可以查看差异、选择资源范围,并决定直接合并或创建合并请求。
4.
不限数量:AI 分支当前未主动限制创建数量限制,可以驱动 AI Agent 按业务、迭代和功能模式分类处理数据。
5.
自动归档:为了防止在项目协作中 AI 分支数量无序增多,AI 分支 每 24 小时 会对比和源头分支的差异,若无差异将自动归档。您随时在 Apifox 内恢复已归档的 AI 分支,也可以从 Apifox CLI 重新创建新 AI 分支,均无限制。
AI 分支用于承接外部 AI 或 CLI 的写入结果。端内用户在客户端中的正常编辑、合并和审核仍按项目成员权限与分支保护规则执行。
适用场景#
AI 分支适合用于需要让 AI 参与项目资源维护,但又希望保留人工确认和分支隔离的场景。| 场景 | 说明 |
|---|
| 根据代码生成接口草稿 | AI 读取代码后,在 AI 分支中创建或更新 HTTP API 接口,用户确认后再合并。 |
| 批量整理接口资源 | AI 可调整接口目录、补充说明、更新数据模型或响应组件,避免直接影响当前协作分支。 |
| 生成自动化测试草稿 | AI 可在 AI 分支中创建场景用例、测试用例或测试数据,后续由测试人员确认。 |
| 修复接口文档缺口 | AI 可根据错误报告、接口实现或 OpenAPI 文件补充缺 失字段。 |
| 在 CI/CD 中批量写入 | 自动化流程可将生成结果写入 AI 分支,等待用户审核后合并。 |
基本流程#
2
将需要编辑的资源导入 AI 分支,或在 AI 分支中创建新的资源。
3
AI Agent、CLI 或自动化脚本在 AI 分支中完成资源修改。
4
用户查看 AI 分支与来源分支之间的差异,确认要合并的资源范围。
创建 AI 分支#
使用 sprint-branch create --ai 创建 AI 分支。sprint-branch、sb、branch 是等价入口。| 命令 | 说明 | 示例 |
|---|
sprint-branch create --ai | 创建 AI 分支。 | apifox sprint-branch create --project <projectId> --name "ai/20260312-from-main-userRegister" --ai |
sprint-branch list | 查看项目中的普通迭代分支和 AI 分支。 | apifox sprint-branch list --project <projectId> |
sprint-branch view | 查看指定分支详情,包括分支类型和来源信息。 | apifox sprint-branch view <branchName> --project <projectId> |
AI 分支推荐命名为 ai/年月日-from-来源分支名-功能或模块名,例如 ai/20260312-from-main-userRegister。清晰的命名有助于团队理解分支来源、用途和创建时间。
在 AI 分支中编辑资源#
CLI 写入项目资源时,可通过分支参数将资源写入 AI 分支。不同资源命令的参数略有差异,使用前建议先查看对应命令帮助和 JSON Schema。| 资源类型 | 常用命令 | 示例 |
|---|
| HTTP API 接口 | endpoint create、endpoint update | apifox endpoint create --project <projectId> --branch <aiBranchName> --file ./endpoint.json |
| 数据模型 | schema create、schema update | apifox schema update <schemaId> --project <projectId> --branch <aiBranchName> --file ./schema.json |
| Markdown 文档 | doc create、doc update | apifox doc create --project <projectId> --branch <aiBranchName> --file ./doc.json |
| 场景用例 | test-scenario create、test-scenario update | apifox test-scenario update <scenarioId> --project <projectId> --branch <aiBranchName> --file ./scenario.json |
| 测试套件 | test-suite create、test-suite update | apifox test-suite create --project <projectId> --branch <aiBranchName> --file ./suite.json |
| 测试数据 | test-data create、test-data update | apifox test-data create --project <projectId> --branch <aiBranchName> --file ./test-data.json |
创建或更新复杂资源时,建议先通过 cli-schema 查看并校验数据结构。从来源分支导入资源#
如果 AI 分支需要基于已有资源继续修改,可先使用 sprint-branch pick-to 将来源分支中的资源导入 AI 分支。导入后,AI 可在 AI 分支中继续编辑这些资源。| 命令 | 说明 | 示例 |
|---|
sprint-branch pick-to | 从源分支导入资源到目标 AI 分支。 | apifox sprint-branch pick-to --project <projectId> --from <sourceBranchName> --to <aiBranchName> --endpoint-ids <ids> |
pick-to 只会导入命令中显式传入的资源。需要目录、数据模型、响应组件或其他关联资源时,请在导入前确认资源范围。
查看 AI 分支改动#
合并前,建议先查看 AI 分支和目标分支之间的候选改动。CLI 可使用 merge-request preview 扫描当前支持的资源类型,客户端中也可以查看更完整的分支差异。| 命令 | 说明 | 示例 |
|---|
merge-request preview | 扫描候选改动,用于合并前确认资源范围。 | apifox merge-request preview --project <projectId> --from <aiBranchName> --to <targetBranchName> |
sprint-branch view | 查看 AI 分支基本信息。 | apifox sprint-branch view <aiBranchName> --project <projectId> |
merge-request preview 用于扫描 CLI 当前支持资源类型的候选差异。它不是完整资源 diff,正式合并前仍建议在客户端中确认关键资源内容。
合并 AI 分支#
AI 分支修改完成后,可将改动合并回来源分支或目标分支。未受保护的目标分支可使用 sprint-branch merge 直接合并;受保护主分支通常使用 merge-request create 创建合并请求并走审核流程。| 命令 | 说明 | 示例 |
|---|
sprint-branch merge | 直接合并 AI 分支中的指定资源。 | apifox sprint-branch merge --project <projectId> --from <aiBranchName> --to <targetBranchName> --endpoint-ids <ids> |
merge-request create | 创建合并请求。 | apifox merge-request create --project <projectId> --from <aiBranchName> --to <targetBranchName> --reviewer-ids <userIds> --endpoint-ids <ids> |
merge-request approve | 批准合并请求。 | apifox merge-request approve <mergeRequestId> --project <projectId> --to <targetBranchName> --file ./approve.json |
merge-request reject | 拒绝合并请求。 | apifox merge-request reject <mergeRequestId> --project <projectId> --to <targetBranchName> |
直接合并和合并请求都只会合并显式传入的资源清单,不会自动补引用资源或目录资源。创建合并范围时,应确认接口、目录、数据模型、响应组件和测试资源之间的依赖关系。
归档和删除 AI 分支#
AI 分支合并完成或不再使用时,可先归档,再删除。删除前建议确认分支中的改动已经合并或不再需要。| 命令 | 说明 | 示例 |
|---|
sprint-branch archive | 归档 AI 分支。 | apifox sprint-branch archive <aiBranchName> --project <projectId> |
sprint-branch delete | 删除已归档的 AI 分支。 | apifox sprint-branch delete <aiBranchName> --project <projectId> |
外部 AI 编辑权限#
CLI 默认推荐通过 AI 分支写入项目资源。这样可以让 AI 的修改先进入独立分支,再由用户确认后合并。如果希望外部 AI 或 CLI 直接编辑主分支、标准迭代分支或通用分支,需要在客户端中开启对应权限:项目设置 - 功能设置 - AI 功能设置 - 外部 AI 编辑权限
这些开关用于控制外部 AI、CLI 或自动化调用对项目分支的直接写入范围。开启前应确认团队协作规则和项目数据安全要求。| 权限项 | 说明 |
|---|
| 主分支直接编辑权限 | 允许外部 AI 或 CLI 直接写入主分支。 |
| 标准迭代分支直接编辑权限 | 允许外部 AI 或 CLI 直接写入普通迭代分支。 |
| 通用分支直接编辑权限 | 允许外部 AI 或 CLI 直接写入通用分支。 |
| AI 分支直接编辑权限 | 允许外部 AI 或 CLI 写入由 AI 创建和维护的 AI 分支。通常保持开启。 |
为了确保项目资源安全,建议优先让外部 AI 或 CLI 写入 AI 分支,再由用户确认后合并。只有在明确需要自动化流程直接修改目标分支时,再开启对应直接编辑权限。
最佳实践#
1.
按任务创建 AI 分支:一个 AI 分支对应一个清晰任务,例如补充用户注册接口、整理订单模块文档或生成支付场景用例。
2.
先导入再编辑:需要修改已有资源时,先用 pick-to 导入资源,再在 AI 分支中更新,避免混淆来源。
3.
合并前预览差异:使用 merge-request preview 或客户端差异视图确认资源内容和依赖关系。
4.
显式选择合并范围:合并命令只处理传入的资源清单。涉及接口目录、数据模型、响应组件、测试用例等关联资源时,应一并确认。
5.
保留人工审核:AI 生成的接口定义、测试脚本和数据模型建议由项目成员审核后再合并。
6.
及时归档分支:已合并或废弃的 AI 分支应及时归档,保持分支列表清晰。
常见问题#
AI 分支是一种特殊的迭代分支,主要用于承接外部 AI 、CLI 或自动化脚本的写入结果。它会记录来源分支,并鼓励在合并前由用户确认差异。普通迭代分支通常用于团队成员日常协作开发。
不会。AI 分支中的修改会先保存在 AI 分支中。只有用户执行直接合并或创建并批准合并请求后,相关资源才会进入目标分支。
在 Apifox 项目内进入 项目设置 - 功能设置 - AI 功能设置 - 外部 AI 编辑权限,按需开启主分支、标准迭代分支或通用分支的直接编辑权限。开启后,外部 AI 或 CLI 才能在对应分支范围内直接写入。
不会。sprint-branch merge 和 merge-request create 都按显式传入的资源清单执行。涉及接口引用的数据模型、响应组件、目录或测试资源时,请在合并前确认并补充对应资源范围。
不强制删除。建议在确认改动已合并或不再需要后归档,并按团队规范决定是否删除,避免历史分支长期堆积。