Agent Engineering 课程阅读
首页/课程五 · LLMOps 生产运维/LLMOps 毕业整合:运维就绪的 kb-qa v2

在 GitHub 查看原文

本页目录

Lesson 13 — LLMOps 毕业整合:运维就绪的 kb-qa v2

本课目标:把 A/B/C/D 四模块的能力在 kb-qa 上收敛成一个「运维就绪」的版本,写一份运维手册 + 生产上线检查清单,让 kb-qa 从「能跑的 demo」升级为「能讲完整运维故事的生产服务」

学完你能回答面试官那句终极问题:「你这个项目上线之后,从运维角度看,你都做了什么?」——一张检查清单,每项都指向具体代码/文档证据。


1. 为什么要有毕业整合课?

前 12 课每个都在 kb-qa 上落地了一块能力(日志、追踪、评估、鉴权、防御、MCP、缓存、压测、选型)。但它们是逐课加的、散落的。毕业整合把它们收敛成一个统一的运维视图,回答:

  • 这些能力现在全了吗?(检查清单)
  • 每项能力指向哪段代码?(证据链)
  • 从运维角度,kb-qa 现在是个什么水准?(运维视图)

🎯 核心价值:这课不写新代码,是把散落的能力编织成一个可讲述的运维故事。面试时你不是说「我加了个缓存」,而是说「我的服务在这四个维度都做了运维准备,这是检查清单和证据」——这是 demo 和生产服务的本质差距。


2. 运维视图:kb-qa v2 的四个维度

把 L01–L12 的成果按运维的四个维度重新组织:

① 可观测性(Observability)——「出问题怎么查」

能力 来自 代码证据 面试可讲
结构化日志(trace_id 贯穿) L01 src/kb_qa/observability.py 按 trace_id grep 还原链路
全链路追踪(Langfuse/降级) L02 src/kb_qa/tracing.py 面板看每步耗时/成本
线上评估闭环(抽样+反馈) L03 src/kb_qa/online_eval.py + POST /api/feedback 低分自动进队列

运维回答:「线上出问题,我按 trace_id 捞日志还原链路;想看整体,Langfuse 面板有每次问答的检索/生成/成本;质量下降,线上抽样 ragas 自动抓坏答案进 review_queue。」

② 安全(Security)——「怎么防攻击」

能力 来自 代码证据 面试可讲
API 鉴权(key) L04 src/kb_qa/auth.py require_api_key 无 key → 401
限流(滑动窗口) L04 src/kb_qa/auth.py SlidingWindowLimiter 超速 → 429
Prompt 注入攻击测试集 L05 eval/attack_set.json + run_attack.py 量化失守率
输入输出守护栏 L06 src/kb_qa/guardrails.py 失守率 90%→显著下降

运维回答:「接口有 key 鉴权和按 key 限流防未授权/刷爆;针对 RAG 头号威胁间接注入,我做了输入隔离+输出过滤的纵深防御,攻击测试集失守率从 90% 打下来,核心用例固化进 CI。」

③ 集成(Integration)——「怎么被别的系统用」

能力 来自 代码证据 面试可讲
MCP Server(知识库成标准工具) L08 mcp_server.py Claude Desktop 配一行 JSON 调用
Agent 作 MCP Client L09 research-assistant kb_mcp_client.py 两项目打通

运维回答:「知识库封成了 MCP server,任意 MCP host 配一行就能调用;我的 Agent 项目能作 client 调它,实现了内部知识库+联网双源研究——标准协议下的系统集成。」

④ 性能与成本(Performance & Cost)——「怎么扛并发省钱」

能力 来自 代码证据 面试可讲
语义缓存 L10 src/kb_qa/semantic_cache.py 同义命中省 LLM 调用
压测基线 L11 loadtest/run_loadtest.py QPS 天花板 + 信号量保护
成本/质量选型 L12 eval/run_cost_eval.py 按环节选模型的数据决策

运维回答:「语义缓存让同义问题不重复烧钱;压测定了 QPS 天花板并用信号量保护上游;按环节选模型(生成 glm-4/辅助 flash)用 ragas 数据支撑。」


3. 生产上线检查清单(Production Readiness Checklist)

这是本课的核心产出——每项都指向具体证据,全勾才算运维就绪。详见同目录 production_readiness_checklist.md

可观测:  ✅ 日志(trace_id)  ✅ 追踪(Langfuse)  ✅ 线上评估闭环
安全:    ✅ 鉴权(key)  ✅ 限流(429)  ✅ 注入防御(纵深+CI)
集成:    ✅ MCP Server  ✅ Agent Client(两项目打通)
性能成本:✅ 语义缓存  ✅ 压测基线  ✅ 成本选型报告

🎯 这份清单的用法:面试时拿出来——「这是我的生产上线检查清单,每一项我都能指出对应的代码和验证方式」。这比口头说「我做了很多优化」有说服力 100 倍。有清单 = 工程化思维;没清单 = 凭感觉。


4. kb-qa 的演进:从 demo 到运维就绪

   起点(rag-lessons 毕业后)         现在(ops-lessons 毕业后)
   ─────────────────────────         ─────────────────────────
   能跑 RAG 问答                      能跑 + 可观测 + 安全 + 可集成 + 控成本
   print 调试                         trace_id 贯穿 + Langfuse 面板
   接口裸奔                           key 鉴权 + 限流
   无安全意识                         注入测试集 + 守护栏 + CI 防回归
   只能 HTTP 调                       MCP 标准工具,生态即插即用
   每次都调 LLM                       语义缓存命中省调用
   不知道能扛多少                     压测定了 QPS 天花板
   拍脑袋选模型                       ragas 数据支撑选型

这就是「做过 demo」和「运维过生产 AI 服务」的分界线——也是这套 ops-lessons 课程的核心目标。


5. 毕业后的能力对照(任务书最终验收)

面试官会问 学完后你能指着代码说
上线后怎么知道好不好? Langfuse trace + 线上抽样 ragas + 点踩队列(L01–L03)
有人在文档里藏恶意指令? 注入测试集 + 输入隔离/输出过滤,失守率 before/after(L04–L06)
接口安全吗? key 鉴权 + 按 key 限流,401/429 有测试(L04)
了解 MCP 吗? RAG 封成 MCP server,Agent 作 client,两项目打通(L07–L09)
怎么控成本扛并发? 语义缓存 + 压测基线 + 模型选型数据报告(L10–L12)

每一句都不再是空话,而是有代码、有数据、有验证的硬实力。


🎯 面试话术(终极版)

「我的知识库问答服务是运维就绪的生产级系统:可观测性上,结构化日志 trace_id 贯穿全链路、接了 Langfuse 看每次问答的耗时成本、线上抽样 ragas 自动抓坏答案;安全上,接口有 key 鉴权和限流,针对 RAG 头号威胁间接注入做了纵深防御,攻击测试集失守率从 90% 降下来并固化进 CI;集成上,知识库封成 MCP server 被任意 host 调用,Agent 作 client 实现内部+联网双源;性能成本上,语义缓存省重复调用、压测定了 QPS 天花板、按环节选模型有 ragas 数据支撑。我有一份生产上线检查清单,每一项都指向具体代码——这是 demo 和生产服务的本质差距。」


本课产出(无代码,纯整合文档)

文件 内容
README.md(本文件) 运维视图四维度 + 演进对比 + 能力对照
production_readiness_checklist.md 生产上线检查清单(每项指向证据)
仓库根 README.md(更新) 课程总览表 + 作品集区补 ops-lessons
kb-qa README.md(更新) 新增「生产运维(LLMOps)」章节,串联 L01–L12

🎉 恭喜!完成本课,ops-lessons 全 13 课收官。

你已经从「会做 RAG/Agent demo」升级为「能把 AI 服务推进到运维就绪」——这是求职市场上稀缺的、面试官最想听的能力。