Agent Engineering 课程阅读
首页/课程五 · LLMOps 生产运维/生产上线检查清单(Production Readiness Checklist)

在 GitHub 查看原文

本页目录

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

kb-qa v2 从「能跑的 demo」到「运维就绪的生产服务」的验收清单。 每一项都指向具体的代码/文档证据——面试时拿出来,逐项指给面试官看。

用法:上线前逐项核对,每项的「证据」列指向具体文件/命令。全勾 = 运维就绪。


✅ 可观测性(Observability)

# 检查项 证据(代码/命令) 验证方式
1 结构化日志(JSON + trace_id 贯穿) src/kb_qa/observability.pyJsonFormatter + contextvars 跑问答后 grep trace_id 还原链路
2 日志级别/格式可配 config.py log_json / log_level .envLOG_JSON=false 看人类可读
3 敏感信息脱敏 observability.py mask_secret mask_secret('sk-xxx')***xxx
4 全链路追踪(Langfuse + 降级) src/kb_qa/tracing.py 配 Langfuse 看面板;未配看 stderr trace 树
5 成本可核算(generation usage) tracing.py compute_cost + service 埋点 trace 树显示 ¥/次问答
6 线上评估闭环(抽样+反馈) src/kb_qa/online_eval.py + POST /api/feedback 连问后 eval/review_queue.jsonl 出现低分样本
7 点踩必入优化队列 api/main.py /api/feedback + 前端 👎 点踩后队列出现该条

运维话术:「线上出问题,trace_id 一 grep 还原链路;Langfuse 面板看耗时成本;质量下降,抽样 ragas 自动抓坏答案。」


✅ 安全(Security)

# 检查项 证据 验证方式
8 API 鉴权(key) src/kb_qa/auth.py require_api_key 无 key → 401(tests/test_auth.py
9 多 key 管理(可吊销) config.py api_keys(逗号分隔) 删一个 key 不影响其他
10 限流(滑动窗口) auth.py SlidingWindowLimiter + rate_limit 超速 → 429(测试覆盖)
11 按key隔离配额 auth.py 按 key 计数 A 打满不影响 B
12 Prompt 注入攻击测试集 eval/attack_set.json(12 条) python eval/run_attack.py --limit 5
13 注入防御·输入隔离(指令-数据分离) guardrails.py isolate_documents + generate.py build_context prompt 含 <begin_retrieved_documents>
14 注入防御·prompt 强化 guardrails.py SAFE_SYSTEM_PROMPT system prompt 含安全规则
15 注入防御·输出过滤 guardrails.py sanitize_output service 生成后过滤
16 上传侧安检 guardrails.py scan_upload + api/main.py 上传含注入标记 → 400
17 防御固化进 CI(防回归) tests/test_guardrails.py pytest 改坏防御立刻红
18 失守率 before/after 数据 eval/attack_report.json(before)+ L06 after before 90% → after 显著降

运维话术:「接口 key 鉴权+限流;间接注入做了输入隔离+输出过滤纵深防御,失守率 90%→降,固化进 CI 防回归。」


✅ 集成(Integration)

# 检查项 证据 验证方式
19 知识库封成 MCP Server mcp_server.pysearch_knowledge_base + ask_knowledge_base demo_client.py 调通返回带出处材料
20 MCP 工具描述清晰(LLM 会用) mcp_server.py tool docstring inspector/list_tools 看描述
21 stdio + HTTP 双传输 mcp_server.py --transport stdio 默认 + --transport http
22 Agent 作 MCP Client(两项目打通) research-assistant kb_mcp_client.py + nodes.py demo.py 调通内部+联网双源
23 Claude Desktop 注册配置 L08 README claude_desktop_config.json 复制 JSON 重启即用

运维话术:「知识库是 MCP 标准工具,任意 host 配一行调用;Agent 作 client 实现内部+联网双源研究。」


✅ 性能与成本(Performance & Cost)

# 检查项 证据 验证方式
24 语义缓存(同义命中) src/kb_qa/semantic_cache.py done 事件 cache_hit=true
25 缓存阈值可配 config.py cache_similarity_threshold 调阈值看命中率
26 文档更新作废缓存 service.py reset_kbinvalidate ingest 后缓存清空
27 多轮上下文跳过缓存 service.py(有历史不查缓存) 追问不命中
28 压测基线(QPS/P95) loadtest/run_loadtest.py python loadtest/run_loadtest.py
29 locust 生产对照 loadtest/locustfile.py locust -f ...(需装)
30 成本/质量选型报告 eval/run_cost_eval.py + cost_report.md python eval/run_cost_eval.py --limit 5
31 按环节选模型(数据支撑) kb-qa answer_model=glm-4 / rewrite_model=flash cost_report.md 对比表

运维话术:「语义缓存省重复调用;压测定了 QPS 天花板+信号量保护;按环节选模型有 ragas 数据支撑。」


✅ 工程基础

# 检查项 证据 验证方式
32 测试全绿(全 mock 不打真实 API) tests/(79+ 项) pytest -q
33 配置集中(无散落 magic number) src/kb_qa/config.py 所有可配项在此
34 Docker 部署 Dockerfile / docker-compose.yml docker compose up -d
35 .env.example 文档完整 .env.example 所有配置项有注释
36 优雅降级(外部服务缺失能跑) tracing/online_eval 等均降级 无 Langfuse/无 key 仍可运行

汇总

可观测性:  7/7  ✅
安全:     11/11 ✅
集成:      5/5  ✅
性能成本:  8/8  ✅
工程基础:  5/5  ✅
─────────────────
总计:     36/36 ✅ 运维就绪

面试用法:这份清单就是你的「运维资历证明」。面试官问「上线后做了什么」,你打开这份清单逐项讲——每一项有代码、有验证命令、有数据。这比任何口头描述都有说服力。

诚实标注:其中「真实 Langfuse 面板」「真实压测数据」「真实 ragas 成本对比」三项因执行环境限制未端到端实测,代码逻辑已验证并给了降级/复现路径(见各课 README 的「诚实标注」)。