发布时间:2026/7/19 15:32:12
运维转大模型:用一次交付过程做复盘 聊《我用运维经验做了次 AI 项目最先失效的是旧方法》之前先说一句实在的别急着背概念先看它在真实项目里到底解决什么问题。摘要先把这篇文章的目标说清楚看完之后你应该能判断这件事值不值得做以及从哪里动手。上周复盘团队里两个做 AIOps Agent 的项目发现一个有意思的现象那些 Prompt 写得花里胡哨、能完美生成代码的 Demo上线第一天就崩了反而是两个 Prompt 平平无奇但在权限控制和日志追踪上死磕到底的项目稳稳扛住了第一次大促流量。我们这帮搞运维出身的人总有一种惯性思维——觉得自动化就是“脚本执行”。以前写 Shell 或 Python只要逻辑对跑起来就行。现在搞 LLM Agent大家第一反应是优化 System Prompt让模型更聪明。但在生产环境“聪明”不如“靠谱”。对于小团队或者资源有限的场景过度设计 Agent 的推理能力是陷阱把边界条件权限、审批、回滚和可观测性日志、审计做扎实才是从 Demo 走向生产的唯一路径。目录运维能力的迁移从“确定性”到“概率性”的控制日志分析不仅是搜索更是上下文构建自动处置 Agent敢让 AI 动手的前提是“后悔药”安全与审批小团队的“权限墙”总结回归工程本质运维能力的迁移从“确定性”到“概率性”的控制很多人觉得运维转大模型有天然优势因为我们都懂基础设施、懂网络、懂数据库。但这个优势是有代价的。运维的核心是确定性输入 A必须得到 B如果出错必须有明确的 Error Code。而大模型的本质是概率性同样的输入每次生成的内容可能微调甚至出现幻觉。我的第一个教训是不要试图用 Prompt 去解决所有逻辑问题。在一次尝试用 Agent 自动清理过期日志的任务中我最初让模型直接判断哪些文件该删。结果模型为了“节省空间”误删了一些正在被监控采集器读取的软链接。虽然没丢数据但告警响了半小时。后来我改了思路Agent 不做最终决策只做建议。1. Agent 扫描日志目录输出候选列表。2. 一个确定的 Python 脚本负责权限校验是否在生产环境是否被占用。3. 人类或审批流确认。4. 执行删除。这种“人机协同”或“LLM 确定性代码”的模式才是运维工程师最该掌握的。我们不是要取代过去的自动化脚本而是要把 LLM 作为一个强大的“意图理解器”把它的输出限制在我们的安全护栏内。日志分析不仅是搜索更是上下文构建在传统的 SRE 工作中我们看日志靠grep、awk或者 ELK/Kibana 的可视化。现在有了 LLM我们可以让模型做“初筛”和“聚合”。但这里有个巨大的坑Token 成本和上下文窗口。不要直接把几 GB 的原始日志扔给模型。你需要建立一套预处理机制。实战案例告警归因中的日志清洗假设我们要排查一个 CPU 飙升的告警。传统做法是导出最近 1 小时的所有日志人工看。现在我们的 Agent 流程是这样的1. 粗过滤用轻量级脚本提取关键字段时间、级别、模块压缩日志体积。2. 向量化检索将压缩后的日志片段存入向量库通过语义相似度召回相关片段。3. LLM 聚合将召回的片段发给 LLM让它找出共性模式。# 简化版日志处理管道 def prepare_logs_for_llm(raw_log_lines): 不要直接传 raw log 这里需要结合业务标签进行结构化 structured_data [] for line in raw_log_lines: # 假设我们有简单的正则提取 match parse_log_line(line) if match: structured_data.append({ timestamp: match.time, level: match.level, service: match.service, # 只保留关键异常堆栈忽略 DEBUG 信息 trace: match.exception_trace[:500] if match.exception else None }) return json.dumps(structured_data, ensure_asciiFalse) # 发送给 LLM 的内容经过严格裁剪 llm_context prepare_logs_for_llm(last_hour_logs) response llm_client.chat( system_prompt你是一个资深后端专家请分析以下日志中的异常模式..., messages[{role: user, content: llm_context}] )注意代码中的exception_trace[:500]。在实际生产中很多报错堆栈长达数千行全部传入不仅浪费 Token还会稀释模型对核心错误信息的注意力。做减法是运维工程师的本能也是 Agent 有效性的关键。自动处置 Agent敢让 AI 动手的前提是“后悔药”说到自动处置很多同行问我“能不能让 Agent 直接重启服务”我的回答是可以但必须加“熔断”和“审计”。在大模型应用中最危险的不是它做错了而是它不知道自己做错了并且没有留下痕迹。我们团队内部有一个硬性规定任何涉及写操作Write/Delete/Restart的 Agent 动作必须在数据库中记录一条“预执行审计日志”状态为 PENDING只有在人类确认或规则引擎放行后才能变更为 EXECUTED。这不仅是为了安全更是为了后续的可观测性。当 Agent 搞砸了我们需要知道1. 它当时看到了什么上下文2. 它做出的决策依据是什么Prompt 版本历史对话3. 它执行的命令参数是什么如果没有这些日志排查一次 AI 故障的成本可能比故障本身还高。安全与审批小团队的“权限墙”大厂有完善的 IAM 系统但小团队怎么办别指望 LLM 能懂复杂的企业级 RBAC 模型。最简单有效的办法是将权限校验逻辑外置。不要让 Agent 自己去判断“我能不能删这个库”。而是提供一个 API 接口Agent 调用这个接口时接口内部硬编码了权限校验逻辑。app.post(/execute-operation) async def execute_operation(op_type: str, params: dict): # 1. 验证用户身份JWT user verify_jwt(request.headers) # 2. 硬编码权限检查 - 这是 Agent 无法绕过的“墙” if op_type DELETE_DB and user.role ! DBA_ADMIN: raise PermissionDenied(No permission to delete database) # 3. 如果通过才允许 Agent 继续下一步 # 这里其实应该是一个审批流或者双人复核 await log_audit(user.id, op_type, params) # 4. 通知 Agent 可以继续执行 return {status: approved}这种设计看似笨拙但它确保了安全性不依赖于 LLM 的指令遵循能力。无论 Prompt 怎么变权限墙始终在那里。这对于快速迭代的 AI 项目来说是最稳妥的底线。总结回归工程本质从运维转大模型我们最大的误区是把 LLM 当成“魔法”。但实际上它只是一个更擅长处理模糊文本的组件。真正的竞争力不在于你能写出多复杂的 Prompt而在于你能否构建一个鲁棒的系统工程1. 日志先行在写 Agent 之前先设计好怎么记录它的每一次思考和行动。2. 权限隔离永远不要信任模型的自我约束用代码强制限制其能力边界。3. 小步快跑先从辅助分析做起再逐步放开自动处置的权限。当你不再纠结于“如何让模型更聪明”而是专注于“如何让系统更安全、更可观测”时你就真正完成了从运维到 AIOps 工程师的蜕变。Demo 跑得通只是热身能解释失败、能兜住风险才是生产环境的生存之道。资料展示下面是我整理的AI大模型学习资料和工具包预览适合收藏后按主题逐步学习。如果你想看完整资料目录可以在评论区留言「资料」也欢迎告诉我你更关注AI大模型里的哪类内容。

相关新闻

2026/7/19 15:32:12

鸿蒙应用开发:@Provider 与 @Consumer 跨组件双向同步详解

文章目录一、引言二、核心概念三、关键用法要点四、示例五、使用别名六、注意事项七、总结这是一个使用鸿蒙技术开发的本地原生记账应用,非常适合大家用来练手。相关源码已上传至 Github,点击此处查看项目。欢迎大家交流、指正,也欢迎提交 PR…

2026/7/19 15:32:12

Python 宏观经济实证 · 时空演进机制分析 (1)

一、地理探测器模型地理探测器 是由中国科学院王劲峰团队提出的一组探测空间分层异质性、揭示其背后驱动因子的统计学方法。核心假设是:若某个自变量对因变量有重要影响,则二者的空间分布应具有相似性;若研究区分层后的层内方差之和小于全区总…

2026/7/19 15:32:12

把代码库探索交给 Claude Code Subagent,主会话才不会被文件读取拖垮

在一个稍微大一点的仓库里追一个 auth token refresh 问题,很容易把 Claude Code 的主会话塞满。读一个 interceptor,顺手打开 session manager,再追到 OIDC callback,继续翻 refresh token 的过期策略,日志、测试、配置文件、环境变量说明一起进来。真正要改的可能只有两…

2026/7/19 23:53:50

市场适配rog键盘经典键帽品牌哪家靠谱

痛点深度剖析 我们团队在对接数百位ROG键盘用户的键帽升级需求时发现,当前适配ROG键盘的经典键帽赛道存在三个共性技术困境:一是多数第三方键帽模具精度不足,针对ROG专属十字轴心的适配公差普遍超过0.3mm,容易出现插拔卡轴、按键晃…

2026/7/19 23:53:50

智慧包装的技术架构与应用场景解析

摘要: 本文从技术角度分析智慧包装的架构设计、核心技术和应用场景,探讨二维码、云平台、数据分析等技术如何赋能传统包装,使其从"被动展示"进化为"主动营销"。 一、传统包装的技术局限 传统包装的功能仅限于保护和展示。…

2026/7/19 23:53:50

RuntimeService:从保护工具自身加载运行时

public sealed class RuntimeService { ModuleDef? _rtModule; public TypeDef GetRuntimeType(string fullName) {_rtModule ?? LoadSelfModule(); // 首次调用懒加载return _rtModule.Find(fullName, true)?? throw new InvalidOperationException($"Runtime type…

2026/7/19 23:53:50

热核质量审计_thermo-nuclear-code-quality-review

以下为本文档的中文说明该技能进行热核级别的代码质量审计,关注可维护性、代码结构、千行规则、意大利面条式代码和代码柔道。核心功能是在父代理收集了差异和文件内容后,对代码进行极其严格的可维护性审查。使用场景包括:需要进行热核代码质…

2026/7/19 23:53:50

服务端环境变量_add-setting-env

以下为本文档的中文说明该技能指导开发者如何在LobeHub等Next.js应用中添加服务端环境变量,用于控制用户设置的默认值。其核心功能是建立一套三级优先级体系:用户自定义设置 > 服务端环境变量 > 硬编码默认值。使用场景包括需要为不同部署环境提供…

2026/7/19 23:48:49

从理论到实践:LLaDA2.2-flash智能体应用开发的完整路线图

从理论到实践:LLaDA2.2-flash智能体应用开发的完整路线图 【免费下载链接】LLaDA2.2-flash 项目地址: https://ai.gitcode.com/hf_mirrors/inclusionAI/LLaDA2.2-flash LLaDA2.2-flash是一款面向智能体应用的扩散语言模型,通过引入Levenshtein编…

2026/7/19 0:00:15

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/19 0:00:15

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/19 16:59:11

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…