做 AI 工程自动化的开发者,大概率都迷信 LLM 万能,想把所有工作都丢给智能体处理。

市面上绝大多数 AI 工作流教程,都在灌输一套固定逻辑:给 LLM 挂载工具、设定目标、放手让模型自主完成全流程任务。

这套模式做 Demo、跑原型确实又快又省心,但一旦落地到企业级工程、需要可重复、高可靠、易维护的生产场景,弊端就会彻底暴露:推理成本高、执行不稳定、结果不可控、排查难度大。

图片

最近,我基于开源项目 ai-template-updater 重构了一套 AI 软件模板更新工作流,颠覆了传统 LLM Agent 的设计思路:

能靠确定性代码、API、脚本解决的工作,绝不调用 LLM;仅保留需要工程推理、场景判断的核心环节给大模型。

最终效果堪称惊艳:原本需要工程师 14 小时手动闭环的周期性 AI 模板维护工作,直接压缩至 2 小时人工参与,成功砍掉 12 小时无效重复工时,工程效率提升 7 倍。

开源项目地址:https://github.com/JslYoon/ai-template-updater,完整工作流架构、脚本、部署流程均可直接复用。

看似简单的 Jira 工单,藏着 14 小时的繁重工程劳动

在敏捷开发体系中,很多人觉得 “版本更新、模板维护” 是低端重复工作,不值一提。但真实的工程落地,远比想象中繁琐。

我本次优化的核心需求,只是一条极简的 Jira工单:将 RHDH 平台 AI 软件模板,更新至最新兼容版本。

看似一句简短的需求,完整闭环需要走完一整套超长链路,也是无数 AI 开发团队的日常痛点:

1. 扫描上游 vLLM、llama.cpp、whisper.cpp 等模型服务器版本,检测版本漂移;

2. 比对 Hugging Face 主流模型(Granite、Mistral、DETR 等)的最新迭代,核查兼容性;

3. 分析依赖变更、规避 CUDA、PyTorch、xFormers 等组件的兼容冲突;

4. 重新构建、打包容器镜像,推送至 Quay 镜像仓库;

5. 更新 RHDH AI 模板配置、重构模板文件;

6. 部署至 ROSA OpenShift 集群,完成功能验证;

7. 整理变更记录,向上游两个核心仓库提交 PR、完成版本归档。

这 14 小时里,真正需要动脑编码、做技术判断的工作不足 2 小时,剩余时间全部浪费在跨平台切换、重复上下文重建、机械性校验、固定流程操作上。

更关键的是:这类周期性维护工作频次极高,长期纯手动执行,不仅消耗大量工程人力,还极易出现人为疏漏、版本标签不匹配、更新遗漏等问题。

核心设计原则:能计算不推理,LLM 只做 “人该做的事”

最开始我也跟风传统方案,将 LLM 放在工作流核心,让智能体全权接管所有流程。

但落地后发现:大模型做机械性工作,又贵又不稳;做决策推理,才是真正的价值所在。

于是,我定下一条核心优化准则:所有可量化、可比对、可程序化执行的任务,全部交给确定性代码;只有需要工程经验、场景解读、复杂判断的工作,才交给 LLM。

我将全流程任务做了清晰拆分,彻底剥离 LLM 的无效负载,精准划分职责边界:

具体任务

最优实现方案

核心原因

查询镜像仓库标签、拉取版本信息

API/确定性代码

结构化数据查询,无推理需求,零误差、速度快

语义化版本比对、新旧版本校验

Python 代码

固定规则比对,避免 LLM 随机判断误差

读取 Hugging Face 模型元数据、检测版本漂移

API+代码扫描

批量结构化抓取,效率远超模型推理

重复更新任务去重、数据清洗

JavaScript 脚本

无 token 消耗,毫秒级完成去重

存储镜像标签、构建状态等核心工件数据

Google Sheets 持久化

状态可追溯、可复用,避免重复构建

校验命令执行结果、判断任务成败

程序退出码判定

精准客观,无主观偏差

解析版本重大变更、分析依赖兼容性

LLM 推理

需要解读发行日志、结合工程经验判断风险

修改陌生容器文件、跨目录批量适配变更

LLM 推理

场景灵活、无固定规则,需要智能适配调整

简单来说:机器能精准计算的,绝不麻烦 AI;只有机器无法标准化判断的复杂工程问题,才交给 AI。这也是这套工作流稳定、高效、低成本的关键所在。

搭建确定性核心:自定义 CLI,彻底解放 LLM

为了彻底剥离 LLM 的无效工作,我基于 Python 封装了专属的 agentic-template-ops 命令行工具,把所有标准化、重复性流程固化为稳定 CLI 指令,让整个工作流拥有坚实的确定性底座。

核心可用指令全覆盖核心流程,开箱即用:

agentic-template-ops configure    # 初始化环境、配置权限与路径
agentic-template-ops investigate  # 全局扫描版本漂移、生成审计日志
agentic-template-ops record-builds # 记录镜像构建信息、持久化工件标签
agentic-template-ops list-built   # 读取已完成构建的结构化数据

这套 CLI 工具承担了所有底层能力:自动检索各大模型服务器版本、解析语义化版本、过滤预发布无效版本、批量抓取 Hugging Face 模型元数据、并发执行多维度版本校验。

这就从根源上杜绝了一个常见误区:不要让昂贵的 LLM,充当低配版 HTTP 客户端、版本比对工具、线程池。标准化工作交给代码,成本趋近于零,稳定性拉满。

三大核心工作流拆解:全自动闭环,仅保留人工校验关口

整套自动化体系由 /setup、/stage-demo、/promote 三大工作流组成,分层解耦、各司其职,结合 Claude Code 子智能体实现精准分工,全程无人值守,仅关键节点保留人工审核。

1. 核心全量流程:/setup 工作流(从零完成更新、构建、部署)

这是整套体系的核心流水线,一次性完成从版本探测、镜像构建、模板更新到集群部署的全流程自动化,完整执行链路如下:

1)预飞行校验:自动读取环境配置、校验 Quay 镜像仓库权限、验证 CLI 工具可用性,提前规避环境问题;

2)版本漂移探测:批量扫描 vLLM、llama.cpp、Granite、Mistral 等所有托管模型与服务,生成完整版本差异报告,写入 Google Sheets 审计日志;

3)零成本数据去重:通过 JavaScript 脚本完成全局去重,10 个模板引用同一个服务更新,仅生成 1 次构建任务,无需重复调用 AI 推理;

4)并行镜像构建:调用 Sonnet 子智能体并行构建容器镜像,推送至个人 Quay 私有命名空间,大幅压缩构建耗时;

5)状态持久化记录:精准记录每一个镜像的唯一标签、构建状态,后续流程直接读取结构化数据,杜绝人工录入失误;

6)模板更新与分支推送:自动修改 RHDH 模板配置、重新生成模板文件,推送更新分支至 GitHub Fork 仓库;

7)集群滚动部署:自动部署至 ROSA OpenShift 集群,生成可测试演示环境,等待人工验收。

整个流程中,LLM 仅参与容器文件修改、依赖兼容分析、构建异常排查等复杂场景,大部分的流程均由确定性代码自动化完成。

2. 轻量化重测流程:/stage-demo 工作流(无需重建,快速复测)

日常迭代测试中,无需每次都重复版本探测、镜像构建等高耗时操作。/stage-demo 工作流专门适配二次验证、迭代测试场景,大幅提升测试效率。

它会直接读取 Google Sheets 中已构建完成的工件数据、复用已推送的代码分支,仅执行环境部署、服务启动、接口校验工作。

只有当 ROSA 集群 Pod 正常运行、ArgoCD 应用状态正常、RHDH 接口返回 200 状态码,才判定部署成功,保证测试环境的稳定性。

3. 上线收尾流程:/promote 工作流(人工核验后正式发布)

为保障生产稳定性,整套系统全程保留人工终审关口。所有自动化更新完成、人工测试验证通过后,才会执行 /promote 上线流程。

核心执行逻辑:

1)读取持久化的精准镜像标签与构建数据,二次去重校验;

2)将个人 Quay 命名空间的镜像,批量重标记迁移至官方生产命名空间;

3)顺序更新 rhdh-ai-developer-images 仓库版本目录,自动提交代码;

4)复用测试分支,替换官方镜像标签、重构模板,自动向上游两大核心仓库提交 PR;

5)完整留存审计日志,可追溯每一次版本变更记录。

优化精髓:结构化状态,拒绝 LLM 模糊推理

传统 LLM 智能体工作流最大的弊端,就是结果非结构化、状态依赖模型上下文,每次执行结果参差不齐,无法复用、无法追溯、极易出错。

本次优化解决了这个问题:所有工作流状态、工件信息、构建结果,全部以结构化 JSON 格式输出、持久化存储,完全脱离 LLM 上下文依赖。

{
  "success": true,
  "server_type": "vllm",
  "component": "server",
  "version": "0.12.0",
  "image_tag": "xxx"
}

简单来说:上下文交给 LLM 做推理,结构化状态交给代码做持久化。

后续所有部署、上线流程,直接读取精准结构化数据,无需模型二次解读,杜绝标签不匹配、版本错乱、更新遗漏等经典问题。

从 14 小时到 2 小时,本质不是 AI 提速,是人力减负

很多人会误解:这套工作流是 AI 用 2 小时干完了人类 14 小时的活。

核心真相是:自动化接管了 12 小时的机械重复劳动,把工程师从无效执行中解放了出来。

  • 优化前:工程师全程参与版本扫描、比对、构建、部署、日志整理、PR 提交,全程高度绑定,耗时 14 小时;
  • 优化后:工程师仅需做异常排查、功能验收、上线决策等高价值工作,仅需 2 小时即可完成全流程闭环。

从敏捷开发视角来看,原本消耗大量人力的周期性运维、模板维护工作,几乎不再占用核心研发资源,团队可以把更多精力投入到产品迭代、功能创新、架构优化上。

工程启示:智能工作流,从不等于 LLM 全覆盖

做 AI 工程自动化,最大的误区就是唯 LLM 论:认为调用模型越多、AI 参与度越高,系统就越智能、越先进。

本次项目落地给出了完全相反的答案:真正稳定、高效、低成本的 AI 工作流,一定是最小 LLM 原则。

  • 结构化数据查询,用 API 不用 AI;
  • 固定规则比对,用代码不用 AI;
  • 重复任务清洗,用脚本不用 AI;
  • 固定流程执行,用自动化不用 AI;
  • 只有复杂推理、场景适配、经验判断,才交给 AI。

优秀的智能体架构,从来不是让 LLM 包揽所有工作,而是精准划分边界,让代码做确定性执行,让模型做创造性推理。

当你开始主动精简 LLM 的无效调用,把更多工作交给确定性代码,你的 AI 工作流,才真正具备了生产级的可靠性与高效性。

附:项目核心技术栈与部署前置依赖