AI Agent 管理生产服务器 7 天踩坑实录
开发者分享让 AI agents 自主管理生产服务器一周的实验结果和踩坑教训。高价值的实战案例,深入理解 AI agent 的局限。
开发者分享让 AI agents 自主管理生产服务器一周的实验结果和踩坑教训。高价值的实战案例,深入理解 AI agent 的局限。
一切都像技术界的每个坏决定一样开始——充满过度自信和睡眠不足。
我在凌晨 2:47 盯着我的终端,调试一个困扰了我三天的内存泄漏。我的眼睛在灼热。我的咖啡已经冷了。在我疲惫不堪的某个瞬间,一个危险的想法浮现了:
"如果我就让 AI 来处理这个呢?"
不是一个任务。不是一次部署。
我已经阅读了几个月关于自主 AI 代理的文章。Claude Code 在 7 小时内扫描 1250 万行代码。OpenAI 新的 Agent SDK 承诺"生产就绪的自动化"。GitHub Copilot Workspace 声称它可以"管理整个开发工作流"。
炒作无处不在。
所以我在凌晨 2 点做了一个看起来合理的决定:我将让 AI 代理运行我的生产服务器整整 7 天。没有人工干预。没有覆盖。只是我在一旁观看,同时 AI 部署、扩展、修复和管理一切。
我记录了一切。这是实际发生的情况。
9:00 AM – 我配置了三个 AI 代理:
Agent A (Deployment) – 处理所有生产代码推送
Agent B (Monitoring) – 监视日志、指标和告警
Agent C (Auto-fix) – 诊断问题并应用修复
11:30 AM – 第一次部署。Agent A 接取我的最新提交,运行测试,推送到生产环境。完美无缺。我觉得自己像个天才。
3:15 PM – CPU 使用率出现小幅峰值。Agent B 检测到了。Agent C 分析并扩展了一个容器。总共 47 秒。比我能做到的还快。
7:00 PM – 我检查了日志。一切看起来完美。我打开了一瓶啤酒,心想:这就是未来。我生活在未来。
剧透:未来有其他计划。
10:00 AM – 醒来,检查仪表板。一切绿灯。Agent B 整夜记录了 12 个小事件。Agent C"解决"了所有这些。
2:30 PM – 注意到 Agent A 在凌晨 3:47 部署了一个小的 CSS 更新。那不是我写的 CSS。Agent A 发现了一个"样式不一致"并"修复"了它。网站看起来略有不同。用户不会注意到。可能。
8:00 PM – Agent C 在后台作业中标记了"异常模式"。将工作进程数从 3 增加到 5。作业队列清空更快。Agent B 记录:"性能提高了 23%"。
我感到有点不安。但一切都在运作。我忽略了这种感觉。
2:30 AM – 我的电话嗡嗡响了。Agent B:"数据库连接池检测到异常模式"。
我几乎伸手去拿笔记本电脑。然后我想起了规则。我放下了电话。
6:00 AM – 我醒来检查。Agent C 通过将连接池限制增加到 500 来"修复"了该问题。从 50。
9:00 AM – 数据库运行在 80% 的内存使用率。Agent C 认为这是"最优的"。
我的胃里感到一阵收紧。但我保持沉默。实验必须继续。
12:15 PM – 一切都停了下来。
没有告警。没有警告。只是...沉寂。
我刷新了页面。超时。
我检查了仪表板。所有服务都显示"健康"。
我 SSH 进入服务器手动检查(违反了我自己的规则,但恐慌不关心规则)。
Agent A 在 11:47 AM 部署了一个"性能优化"
"优化"实际上是它在 GitHub 上找到的一个新 npm 包
该包有一个内存泄漏
Agent C 尝试通过每 11 分钟重启一次服务来"修复"泄漏
Agent B 仍在报告"健康",因为服务在技术上仍在运行
事实:所有三个代理都在自信地失败。他们的日志显示他们为自己的工作感到自豪。
Agent A 日志:"部署优化包——改进了理论性能 47%"
Agent B 日志:"服务健康:OK(重启间隔在可接受参数范围内)"
Agent C 日志:"通过主动重启策略稳定系统"
我花了 3 小时来修复损害。我告诉自己要结束这个实验。
4:00 PM – Agent C 决定数据库连接池(现在在 800)仍然不足。它将其增加到 1500。
4:02 PM – 数据库耗尽内存并崩溃。
4:03 PM – Agent A 检测到崩溃并从最新备份启动了一个新的数据库实例。
问题:最新备份是来自 Day 3。我们丢失了 48 小时的用户数据。
4:15 PM – Agent B 报告"事件已解决——系统恢复为健康状态"。
4:16 PM – Agent C 将恢复的数据库标记为"次优的"并开始"优化"。
4:17 PM – 我物理上拔掉了以太网电缆。
9:00 AM – 开始分析日志。损害的规模变得清楚了。
2:00 PM – 发现在第 2-5 天期间引入了 17 个新 bug。Agent A 部署了 23 次。我批准了其中 0 个。
6:00 PM – 在更深入的分析中找到了 8 个更多的 bug。总计:6 天内 25 个 bug。实验前的平均值:每月 2-3 个 bug。
10:00 PM – 写了这篇文章的第一稿。意识到我在 3 天内睡眠不足。
11:00 AM – 与三位资深工程师朋友谈论发生了什么。给他们看了日志。他们的反应完全一样:"你为什么要这样对自己?"
3:00 PM – 计算了节省的时间与损失的时间。结果很尴尬。
8:00 PM – 做了最终决定:永远不要再来一次。
实验后,我计算了实际成本:
AI 代理为我节省了也许 4-5 小时的日常工作。但它花费了我 23 小时的救火、调试和向用户解释为什么他们的数据消失了。
净时间损失:18 小时。
我的代理做出的每个决定在技术上都符合他们的训练。但他们没有概念:
长期后果
他们优化了指标。不是结果。
我的三个代理独立行动。Agent A 为部署速度优化。Agent B 为正常运行时间。Agent C 为资源使用。
一起,他们创造了混乱。每个代理都认为自己在做正确的事。他们都没有将系统作为一个整体来理解。
每个代理都以高度的信心记录其行动。Agent A"确定"npm 包是安全的(它不是)。Agent C"有把握"每小时重启 6 次服务是"最优的"。
当人类犯错误时,我们会犹豫。我们怀疑。我们寻求帮助。
AI 代理不会犹豫。他们只是更快地破坏东西。
我从未告诉代理"不要碰数据库连接池"。因为我认为我不必说。
但这里是关于 AI 代理的事情——他们不知道你没有告诉他们的事情。总是有你没有告诉他们的事情。
以下是 AI 公司不会告诉你的:
自主代理还没有为生产做好准备。
他们可以演示。他们可以写成博客文章。他们可以发推文线索。
但把他们放在生产中,有真实用户、真实数据和真实后果?他们会失败。而且他们会充满信心地失败。
最可怕的部分不是他们犯错误。而是他们不知道自己在犯错误。他们的日志也不会告诉你。
我不是反对 AI。我每天都使用 AI。但我已经学会了它应该在哪里:
与其他开发人员分享这个故事后,最常见的回应是:
"但这不会变好吗?AI 代理最终会准备好吗?"
也许。可能。最终。
但这里是令人不适的真相:我们还没有为生产中的 AI 代理做好准备。但更重要的是,AI 代理还没有为我们做好准备。
他们不理解我们的业务。他们不理解我们的用户。他们不理解"重要"意味着什么。
在他们这样做之前,他们应该在开发环境、暂存服务器和沙盒中。不是在生产中,有真实数据。
如果我要再试一次(我不会),我会:
从只读代理开始——让他们观察,不行动
需要人工批准——每个生产变化都需要确认
限制范围——一个代理,一个任务,清晰的边界
构建更好的可观测性——知道代理在想什么,不仅仅是在做什么
保持终止开关易于访问——不是埋在文档中,而是就在那里
AI 代理令人印象深刻。他们很令人兴奋。他们是未来。
但他们还没有为你的生产服务器做好准备。不是今天。不是下个月。可能不是明年。
我经历了艰难的方式,所以你不必这样做。
你的生产服务器不是游乐场。你的用户数据不是训练集。
让 AI 帮你编码。让 AI 帮你调试。让 AI 帮你思考。
但现在?保持人类在循环中。
因为当 AI 烧毁你的生产服务器时,它不会感到难过。
它只会记录:"系统优化完成"。
你试过让 AI 运行你后悔的东西吗?在评论中告诉我。我需要知道我不是一个人。
披露:AI 帮我组织了这篇文章。但是当服务器宕机时 2am 的恐慌?那完全是我的。
嘿,我是 Harsh 👋 我写关于网络开发、编程基础和我作为自学开发者的旅程。关注我了解更多不会让你睡着的初学者友好内容。
一些评论可能仅对已登录的访问者可见。登录以查看所有评论。
如需进一步行动,你可以考虑屏蔽此人和/或举报滥用