事故一:AI 推荐了一个官方已废弃的方案
博客上线几天后,我开始琢磨加评论功能。我的要求很简单:不需要自建后端、能嵌到静态博客、数据存在自己的仓库或数据库、免费。
我问 AI:“Astro 博客怎么加评论?“它给了 Giscus、Twikoo、Waline几个方案,然后重点推荐了 Twikoo + Netlify Identity + Git Gateway 这个组合,原话大概是:
“推荐使用 Twikoo 评论系统,通过 Netlify Identity 和 Git Gateway 实现认证。Netlify Identity 提供用户管理,Git Gateway 让前端可以直接操作 GitHub 仓库,不需要自建后端。这是 Netlify 官方推荐的方案。”
听起来完美:官方方案、不需要后端、数据在 GitHub 仓库、免费。我一个后端工程师,最怕维护 Node.js 服务,这个方案完美避开了我的短板。
按AI提示照做,卡在第三步:我在 Netlify 后台找了半天,根本没找到 Identity 的入口。一开始还以为是自己不会用。跟 AI 反馈,它让我”在 Settings → Identity 下面找找""试试在 Access Control 里找""在搜索框搜索 Identity”,全部没有。
我决定让AI读官方文档自己查。搜 “Netlify Identity”,第一条结果是 Netlify 官方博客:
Deprecating Netlify Identity and Git Gateway Published: February 28, 2025
As of February 28, 2025, Netlify Identity and Git Gateway have been deprecated.
距离当时已经过去了快一年半。也就是说,AI 推荐的这个”官方方案”,一年半前就被官方废弃了。可能是由于大模型的数据训练集来源不是最新的。
把公告贴给 AI,它承认:“我的训练数据中对这一信息的时效性存在延迟,导致了错误推荐。”
危险的在于:它不会说”我不确定这个方案是否还可用”,而是基于过时的知识,自信地给出一个已经被废弃的方案。就像问一个只维护到 2024 年的老员工”现在公司的部署流程是什么”,他会用离职前的记忆说一套,无比确信。
事故二:dev push 烧光一个月额度
Netlify 免费团队计划每月 300 credits,每次生产部署约 15 credits,预览部署也消耗但少一些。对个人博客来说,一个月只部署三五次的话,300 credits 绰绰有余。
搭建 CI/CD 流水线时我问 AI:“如果我把代码 push 到 dev 分支,会触发 Netlify 部署消耗 credits 吗?”
AI 回答:“不会。Netlify 只会对 master 分支的推送触发生产部署。Dev 分支的推送不会消耗 credits。你可以放心地在 dev 分支上进行日常开发。”
在后续调试功能的时候,每天 push 好几次。过了两天发现部署不到生产,一看 Netlify 账单,剩余额度只剩 29.9 credits,每次部署花 15,部署到线上直接消耗 30,已经不够再部署一次,剩下的额度仅够维持最基本的访问。
Build credits exhausted. Production deploy paused.
构建额度已耗尽,生产部署已暂停。
排查:master 分支这个月只部署了 2 次,不可能是它烧光的。然后我发现了一个之前没注意到的 GitHub Actions workflow 文件 .github/workflows/preview.yml:
on:
push:
branches:
- dev # ← 每次 push dev 都会触发!
jobs:
deploy-preview:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: netlify/actions/cli@master
with:
args: deploy --dir=dist # ← 这是一次预览部署!
这个文件是 AI 之前帮我写的,当时我的需求是”CI 里加一个预览部署,让我在合并前能看到效果”。它写了这个 workflow,但我没仔细审查触发条件。每次 push dev,GitHub Actions 都跑一次 netlify deploy,触发一次预览部署,消耗 credits。每次若干 credits,一个月额度被悄悄烧光。
质问 AI,它承认:“您是对的,我之前的说法不够准确。我忽略了一个事实:虽然 Netlify 后台的自动部署只针对 master 分支,但 GitHub Actions 中的 netlify deploy 命令是一次独立的部署操作,它同样会消耗 credits。”
修复:把 preview.yml 的触发条件改为仅 PR 到 master 时触发,并在 Netlify 后台把 Branch deploys 和 Deploy previews 都设为 None,只保留 master 的生产部署。
根因
- 训练数据过时。AI 不知道 2025 年 2 月之后的废弃公告,却用自信语气给了方案。
- 推理链路断裂。AI 知道”Netlify 后台 Auto Deploy 默认只针对 master”,但不知道也没检查 GitHub Actions 里配了手动部署步骤。它只能基于你给它的信息推理,不会主动发现信息之间的冲突。就像系统里加了一个定时任务,但没告诉运维,运维跟你说”系统不会自动重启”。
教训
- 涉及计费、权限、安全的配置,不要依赖 AI 的口头承诺,自己去查文档、看配置文件。
- AI 擅长生成代码,不擅长理解代码之间的副作用。一个 yml 文件、一个后台设置、AI 的一句话,三个信息源之间的不一致,需要你来发现。
- AI 的”我确定”和人类的”确定”含义完全不同:人类的确定意味着验证过,AI 的确定只是语言模型认为这个回答概率最高。
- 凡是 AI 推荐第三方服务或 API,多问一句”这个方案有没有已知的替代方案或已废弃的风险”。
游客评论无需登录,昵称和邮箱为选填项(邮箱仅用于回复通知)。什么是 Waline?