(一) 前言
在云计算平台的生态建设中,API 是连接产品能力与开发者的核心纽带。一套准确、完整、及时更新的 API 文档,直接影响开发者的接入效率和使用体验。然而,随着平台功能的不断迭代,API 规模持续膨胀,文档维护的压力与日俱增——每次 API 的新增、变更或下线,都需要同步更新开发手册、CLI 参考和 API Explorer。面对大量接口持续变动,如何确保文档与代码一致、统一多种发布格式,并兼顾双语效率与质量,成为 API 文档工程化的核心挑战。
本文从 ZStack ZCF(ZStack Cloud Foundation)API 文档实践出发,围绕 API 文档多通道发布架构、基于 AI Agent 的全链路自动化设计思路、工程落地中的核心难题与攻克方案,向大家全面深入介绍 API 文档全链路自动化的建设实践。
(二) ZCF API 文档的发布体系与挑战
ZStack Cloud Foundation(ZCF)是多产品能力深度融合的专有云方案,通过统一门户、统一运维、统一算力管理,提供友好、便捷的全栈管理体验。ZCF对外暴露丰富的 RESTful API 接口,涵盖计算、运维、监控告警等多个领域。
围绕 ZCF API,ZStack 建立了多通道、多格式的文档发布体系,以满足不同场景下的用户需求:
• PDF 手册:面向正式交付场景,提供中英双语版本,涵盖每个 API 的请求参数、返回字段、Curl 示例和 SDK 代码示例,适用于离线查阅和项目归档。
• HTML5 在线文档:面向日常开发场景,开发者可通过浏览器随时检索和浏览,快速定位所需接口。
• API Explorer:面向交互式开发场景,现已作为 ZSite 文档中心的 API 参考板块上线,提供全文搜索、分类导航、多语言代码示例,并支持版本变更标记(新增、修改、删除),帮助开发者直观感知 API 的演进。
• CLI 参考手册:面向运维和自动化场景,提供每个 API 对应的命令行调用方式与参数说明。
图1. ZCF API 文档多通道发布体系示意图
这套发布体系的底层由两大数据源支撑。其一是 Swagger 规范文件(swagger.json),由后端开发团队随代码自动生成,是 API 接口定义的唯一可信源(Single Source of Truth),包含每个 API 的路径、方法、参数结构、响应模型等结构化元数据。其二是 DITA 结构化文档,作为 ZStack 文档体系的内容底座,以 XML 格式组织文本内容,通过 DITA-OT 工具编译为 PDF 和 HTML5 等目标格式。
在引入自动化之前,ZStack API 文档的更新高度依赖人工,这一模式存在四个突出痛点:
• 效率瓶颈:单次版本迭代涉及数十个 API 变更,仅 DITA 编写和翻译通常就需要一到两周甚至更长时间,难以匹配高频发布节奏。
• 一致性风险:文档依赖后端提供的 Markdown 参考,若与实际代码不一致,容易引入文档错误,导致开发者获取的信息相互矛盾。
• 质量波动:人工编写依赖个人经验,不同工程师产出的文档在结构规范、术语使用、翻译质量等方面参差不齐,缺乏统一的质量兜底机制。
• 交互友好性曾是短板:早期流程尚未纳入 API Explorer 功能,缺乏统一的在线交互式能力;随着 ZSite 文档中心和 API Explorer 上线,这一能力已进入用户可访问的在线文档入口。
面对数百个 API 接口的持续演进和多渠道同步发布的刚性要求,传统的人工模式已难以为继。如何从根本上打通从 Swagger 到终端用户的文档全链路,实现"接口一变、文档自动跟",成为亟待解决的工程命题。
(三) 基于 AI Agent 的全链路自动化设计思路
面对上述挑战,ZStack 从 AI Agent 的视角重新审视 API 文档的生产流程:将文档工程师的手工操作拆解为可编排、可验证、可复现的自动化阶段,由 AI Agent 统一调度执行。不同于传统 CI/CD,AI Agent 具备语义理解能力,能够解析 Swagger 与 DITA 规范,在质量关卡进行通过/阻断判断,并以自然语言反馈各阶段执行情况。
整体架构采用"六阶段流水线"设计,以后端代码仓库中 swagger.json 的 Git 变更为驱动信号,依次完成从差异检测到终端发布的全链路自动化闭环。
图2. 全链路自动化流水线架构图
1. 阶段一:差异检测与内容生成(Generate)
流水线以 Swagger 变更检测为起点,当后端代码仓库中的 swagger.json 发生 Git 提交时,系统自动获取变更前后的版本,对其进行深度语义比对——递归解析 $ref 引用和 allOf 组合,精确识别每个 API 操作的变更类型——新增、修改或删除,并输出结构化的变更清单。随后,针对每种变更类型执行不同的处理策略:新增操作自动生成完整的 DITA 主题文件(含请求参数表、返回字段表、Curl 示例和 SDK 代码示例),并将其插入中英双语的 Ditamap 目录;修改操作定位已有文件并原地重新生成内容;删除操作则同步清理文件与目录引用。
2. 阶段二:静态模拟验证(Test)
生成的 DITA 文件在此阶段接受"文档 vs 规范"的交叉校验。系统从 DITA 源文件中解析出 API 元数据,与 Swagger 规范中的原始定义进行七个维度的逐项比对:API 名称、请求路径、必填参数、请求体字段、Curl 示例、返回示例、SDK 示例。该阶段无需启动任何后端服务,完全基于静态分析完成,可在秒级返回每个 API 的验证结果。
3. 阶段三:规则化双语翻译(Translate)
经过验证的中文 DITA 文件在此阶段被翻译为英文版本。由于机器生成的 API 文档具有高度结构化、词汇封闭的特点,系统采用纯规则化的确定性翻译策略,通过九步字符串替换流水线完成中英转换——无需调用任何大语言模型。翻译完成后,系统自动扫描输出文件中是否残留未翻译的中文字符,作为翻译完整性的兜底审计。
4. 阶段四:质量门禁(Review)
质量门禁是整条流水线的核心关卡,也是唯一的"硬门禁"——任何一条错误级别的审查发现都将阻断流水线,防止问题内容进入后续的编译和发布环节。系统对中英双语文件同时执行 22 条编码化的质量规则,覆盖六大检查类别:文档结构完整性(S)、API 内容准确性(A)、标题规范性(T)、表头一致性(H)、行内标签正确性(L)、翻译质量(Q)。每条规则均为纯函数实现,输入文件内容与语言标识,输出结构化的检查发现——确保质量标准可追溯、可复现、不因人而异。
图3. 质量门禁的六大检查类别示意图
**
- 阶段五:双语编译发布(Build)**
通过质量门禁后,系统分别编译中文和英文的 Ditamap,调用 DITA-OT 工具链生成 PDF 格式的开发手册。编译过程实时流式输出构建日志,并在完成后提取结构化结果(成功/失败、阻断性错误、警告信息、产物路径),供 Agent 解读和决策。
6. 阶段六:API Explorer 同步(Explorer)
最后一个阶段将变更同步至已上线的 API Explorer 平台。API Explorer 目前作为 ZSite 文档中心的一部分对外提供服务,入口为 https://docs.zstack.io/docs/api-explorer/zh-cn。 系统基于Swagger 差异生成变更清单(Change Manifest),然后重建 Explorer 所需的全套数据制品——包括每个 API 操作的详情文件、多语言代码示例、分类导航树、全文搜索索引等。新增和修改的 API 会被标记变更标签,已删除的 API 则以“近期删除”类别保留,确保开发者可感知接口的完整演进轨迹。
纵观整条流水线,以下四项设计原则贯穿始终:
• 增量驱动:以 Swagger 差异为唯一触发信号,仅处理发生变更的 API 操作,避免全量重建带来的资源浪费和不必要的文件变动。
• 报告链式传递:每个阶段输出标准化的 JSON 报告,下游阶段自动从上游报告中提取输入参数,实现松耦合与可独立调试。
• 确定性优先:六个阶段均基于确定性 Python 逻辑,保证相同输入得到一致输出,AI 仅参与编排与解读。
• 单一可信源:以 swagger.json 和 DITA Ditamap 为唯一信源,统一派生 PDF 与 API Explorer,消除多通道不一致。
(四) ZCF API文档全链路自动化实际建设难题与攻克
1. 混合智能:AI 与确定性规则的策略性分工
在 API 文档自动化中,"翻译"是贯穿全链路的关键能力,但不同翻译对象的特性截然不同。API 名称要求严格一致——同一 operationId 必须稳定映射为一致的中文标题,否则会引发开发者困惑;而 API 描述属于自然语言,更强调流畅与语义准确。若统一交由大模型处理,名称易产生波动;若完全依赖规则,描述质量又难以保证。
为此,系统采取"确定性规则 + AI"的混合策略,按翻译对象的特性精准匹配技术手段。对于 API 名称翻译,自研结构化语义解析引擎:首先维护 570+ 条精确覆写映射,处理不规则命名;未命中时将 operationId 按 PascalCase 拆解,依次进行动词识别、By{Scope} 模式检测,以及 4→3→2→1 级短语匹配,生成结构化中文标题,整个过程为确定性计算,保证输入输出一致。同时,API 描述翻译则交由大语言模型批量处理,并通过术语约束与字数限制(≤60 字符)控制质量。
此外,在阶段三的中英翻译中同样贯彻了"确定性优先"原则。由于机器生成的 API 文档词汇集合是封闭的,系统通过九步字符串替换流水线完成全部翻译,并在末尾以 Unicode 范围扫描审计残留中文字符——若未来生成器引入新词汇而翻译表未同步更新,审计机制会自动报警,而非静默产出漏翻内容。
图4. API 名称翻译的结构化语义解析流程
2. 复杂 Swagger 规范的深度语义解析
Swagger/OpenAPI 规范在理论上是结构清晰的接口描述标准,但在实际工程中,由后端框架自动生成的 swagger.json 往往存在大量边界情况。ZCF 大量 API 操作涉及复杂的数据模型嵌套,系统在解析过程中面临三类典型挑战。
• 循环引用问题: 部分数据模型通过 $ref 形成环状依赖。系统在递归解析中引入“已访问引用集合”,检测到重复即终止,避免无限展开。
• allOf 组合模式: 多个 Schema 通过 allOf 继承时,简单合并会丢失约束。系统采用深度合并:required 去重并集,properties 递归合并,确保约束完整保留。
• 异常描述文本: 部分描述为拼接字段名(如 alertintegrationplatformuuid)。系统通过正则识别后跳过直译,将字段按驼峰规则拆分并结合术语表翻译,生成可读描述。
- 编码化质量门禁与多层验证闭环
在全自动化流水线中,如何确保产出的文档质量不低于人工编写水准,是最核心的信任问题。传统方案依赖人工评审,不仅耗时且标准因人而异。系统构建了三层递进式的自动化质量保障体系,将质量标准从"经验"转化为"代码"。
第一层是阶段二的静态模拟验证。基于 Swagger 与 DITA 进行七维交叉比对(名称、路径、参数、请求体、Curl、返回、SDK),无需启动服务即可发现偏差;请求体采用“参数表 + Curl”双源校验,覆盖不同生成方式。
第二层是阶段四的编码化质量门禁。22 条规则覆盖结构、内容、格式与翻译质量,以纯函数实现;中英文同轮审查,任一错误即阻断流水线,避免问题进入 PDF 构建。
第三层是面向运行时的文档-接口一致性验证。发布后将文档内容与实际运行的 API 服务进行比对,覆盖多个质量维度(如请求参数、响应结构、示例数据等),以运行时行为作为最终校验依据。三层验证层层递进:静态比对确保"文档与规范一致",编码化门禁确保"文档符合工程标准",运行时校验确保"文档与真实行为一致",共同构成从生成到发布的质量闭环。
此外,针对少数 Swagger Schema 本身定义错误的情况(如返回模型结构与实际 API 行为不符),系统预置了精确的 Schema 覆写补丁,在解析阶段即完成纠偏——将业务逻辑层的修正前移至数据源层,而非在下游生成环节反复打补丁。
(五) ZCF API文档全链路自动化价值
1. 全流程自动化,显著提效
基于 AI Agent 的全链路自动化,将 API 文档的更新流程从"逐一比对、手工编写、分头翻译、分别构建"压缩为"后端提交 Swagger 变更,文档全链路自动跟进"。在实际工作流中,系统通过 Git 版本控制监测 Swagger 文件的变动,一旦检测到变更即自动触发后续全部阶段,全程无需人工介入。同时,增量驱动机制确保系统仅处理发生变更的 API 操作,而非全量重建,进一步提升处理效率。无论是日常的小版本迭代还是大规模的 API 变更,均可快速、稳定地完成全通道文档发布。
图5. 流水线执行过程与阶段报告
图6. 自动生成的 PDF 开发手册页面
图7. API Explorer(已上线 ZSite 文档中心)
目前,ZSite 文档中心已正式上线,API Explorer 作为其中面向开发者的核心板块同步开放。用户可以在同一入口完成产品文档检索、API 分类浏览、关键字搜索、多语言代码示例查看与版本变更追踪,从“查产品文档”自然延伸到“查接口、看示例、理解变更”。查看ZStack API Explorer,请访问https://docs.zstack.io/docs/api-explorer/zh-cn;更多产品文档,欢迎访问:https://docs.zstack.io/zh。
2. 质量可控、标准统一
平台将文档质量标准从"依赖个人经验的主观判断"转化为"22 条编码化规则的自动执行",确保每一份产出的文档都经过相同尺度的严格审查。中英双语文件在同一轮检查中同时受审,任何错误级别的发现自动阻断流水线,从机制上杜绝不合规内容进入发布环节。同时,确定性的生成与翻译逻辑保证了可复现性——相同的 Swagger 输入,无论何时执行、由谁触发,始终产出完全一致的文档内容,彻底消除多人协作中的风格差异和质量波动。
(六) 结束语
API 文档的工程化演进,本质上是对"准确、及时、一致"这一质量三角的持续追求。ZStack 文档团队通过引入 AI Agent 作为编排引擎,将 Swagger 规范变更到多通道文档发布的全链路打通为一条自动化流水线,在效率与质量之间找到了可持续的平衡点。这一实践验证了"AI 与确定性工程互补"的技术路线——让 AI 发挥其在语义理解和智能决策上的优势,同时让确定性规则守住一致性和可复现性的底线。
未来,我们将持续探索 AI 在文档工程领域的更多可能,也期待与业界同行共同推动这一方向的发展。