知识全景图/ 软件工程与系统/ 人工智能全景图/ 一次 LLM 请求的一生

一次 LLM 请求的一生全景图

从用户输入一句话,到模型生成、流式返回、日志追踪、成本归因和质量回流:把 AI 应用的完整运行链路串起来

阅读定位: 这一页是 AI 分支的横向贯穿页。它不替代 Token / Attention、训练 / 推理、能力边界、向量检索、推理计算、推理模型、模型评测、Tool Calling、Prompt、RAG、Agent、AI 编程 Agent、模型服务、LLMOps 或安全专题,而是把这些专题放进一次真实请求的时间顺序里。 如果你已经知道每个组件,但还没形成“请求从哪里来、在哪里变贵、在哪里变慢、在哪里出错”的整体感,应先读这一页;需要逐字段排障模板时,下钻到 请求 Trace / 可观测性模板;需要证据字段总表时,回到 AI 证据包索引
一、总链路:一句话进入系统以后
用户输入
意图 / 权限
上下文组装
Prompt / 历史
增强与工具
RAG / Agent
网关路由
模型 / 策略
模型推理
Prefill / Decode
返回与后处理
Stream / 格式
运营闭环
Trace / Eval / Cost
阶段系统做了什么关键指标最容易出问题的地方
输入接收识别用户、会话、权限、任务类型和风险等级请求量、入口失败率、权限命中身份边界不清、恶意输入、任务意图误判
上下文组装拼 System Prompt、历史、记忆、工具结果和业务约束输入 token、上下文命中率、模板版本上下文过长、指令冲突、污染和陈旧记忆
增强与工具按需检索知识、调用工具、拆分任务或进入 Agent 循环检索命中、工具成功率、步骤数检索噪声、工具越权、循环失控
网关路由选择模型、供应商、区域、限流、Fallback 和价格策略路由分布、排队时间、降级率单模型依赖、降级不一致、成本不可见
模型推理Tokenize、Prefill、Decode、采样、KV Cache 管理TTFT、tokens/s、P95 / P99、显存长上下文慢、输出过长、批处理抖动
返回后处理流式输出、结构校验、引用、敏感信息过滤和前端呈现首屏体验、格式错误率、审核拦截率JSON 破损、引用错位、流式中断
运营闭环记录 trace、成本、质量标签、用户反馈和坏例样本单位成本、质量分、回归失败率不可追踪、无法复盘、优化无依据
1.1 真实请求分型:同一条链路会长出不同形态
请求类型典型链路主要瓶颈不要漏掉的治理点
普通 Chat输入 → Prompt / 历史 → 路由 → 推理 → 流式返回上下文膨胀、输出过长、模型选择过重历史裁剪、max tokens、质量 / 成本分层
RAG 问答输入 → query rewrite → 检索 / 重排 → 引用拼装 → 推理检索噪声、证据位置、Prefill 成本文档权限、引用可追溯、Top-K 与上下文预算
工具调用输入 → 工具选择 → 参数生成 → 执行 → 结果回填 → 最终回答工具失败、参数错误、权限越界schema 校验、幂等、人工确认和审计日志
Agent 长任务输入 → 计划 → 多轮模型 / 工具 / 观察循环 → 检查点 → 汇总步骤数、状态污染、预算失控、错误累积最大步数、阶段验收、可恢复状态和中途取消
代码 / 仓库任务输入 → 仓库检索 → 补丁生成 → 测试 → 迭代 → 说明上下文选择、测试成本、误改无关文件diff 范围、测试证据、回滚边界和代码审计
结构化输出输入 → schema / 约束 → 推理 → 解析校验 → 修复 / 重试JSON 破损、字段遗漏、采样不稳严格 schema、低温度、解析失败样本和回退路径
二、输入层:请求不是一句纯文本
用户输入
  • 自然语言、文件、图片、代码片段、表格或多模态混合输入
  • 同一句话在不同产品位置,可能代表完全不同任务
  • 输入越开放,越需要分类、权限和风险判断
业务上下文
  • 用户身份、组织、角色、订阅等级、地区和数据权限
  • 当前页面、当前对象、业务状态和可执行动作
  • 决定模型能看什么、能做什么、该保守还是该主动
安全预检
  • Prompt 注入、敏感信息、越权请求、危险操作意图
  • 高风险任务应提前标记,后续走更严格模型和审核链路
  • 不要把所有安全问题都留到模型输出后再处理

关键直觉

LLM 请求不是“用户文本 + 模型 API”这么简单。真正进入模型前,它已经带上身份、权限、任务、历史、业务对象和风险等级。很多生产事故不是模型本身坏,而是入口把不该放进去的信息放进去了,或把不该执行的意图放行了。

三、上下文层:把模型喂成你想要的样子
上下文材料来源作用风险
System Prompt产品和平台配置定义角色、边界、格式和优先级过长、矛盾、版本不可追踪
开发者 / 业务指令功能模块、任务模板把通用模型约束到具体业务流程和系统指令冲突,或被用户输入覆盖
历史对话会话存储保持连续性和用户偏好过期信息、错误累积、token 膨胀
长期记忆用户画像、摘要、向量记忆跨会话个性化和任务延续记忆污染、隐私边界、不可解释
检索材料RAG、搜索、数据库补充最新、专有或可引用知识检索错误、过多噪声、引用不可靠
工具结果API、代码执行、工作流让模型基于真实系统状态回答或行动工具错误、权限越界、格式不稳定

上下文预算就是产品预算

上下文越长,Prefill 越贵,TTFT 越慢,错误材料进入模型的机会也越多。好的上下文工程不是“多塞信息”,而是按任务选择最少、最新、最可信、最有约束力的信息。

四、增强层:RAG、工具与 Agent 什么时候进入
RAG 请求
  • 问题需要私有知识、最新事实或引用来源时触发
  • 链路是 query rewrite → 检索 → 重排 → 上下文拼装
  • 核心风险是“检到了不该信的内容”,而不是没调模型
工具调用请求
  • 需要读取实时状态、执行动作或调用外部能力时触发
  • 工具 schema、参数校验、幂等性和错误返回都很重要
  • 敏感工具必须有权限校验和人工确认边界
Agent 请求
  • 任务需要多步规划、观察、行动和修正时进入 Agent 循环
  • 每一步都可能再次触发模型请求、工具调用和上下文重组
  • 必须限制最大步数、预算、权限和失败恢复策略
判断问题更可能的方案原因
答案是否依赖外部资料?RAG / 搜索让模型基于可追溯材料回答,减少凭记忆编造
是否需要改变系统状态?工具调用 / 工作流模型负责决策和参数,真正动作由受控工具执行
是否需要多步探索和反馈?Agent单次生成不适合长任务,Agent 需要状态和循环控制
是否只是格式化、分类、摘要?直接模型请求简单任务不必引入复杂编排,避免成本和不稳定性
五、网关层:请求真正进模型前的调度台
网关动作它回答的问题常见策略观测指标
认证与配额谁能调用,能调用多少?API key、租户配额、用户限流、优先级拒绝率、限流率、租户消耗
模型路由这个请求该走哪个模型?按任务、成本、延迟、风险、上下文长度路由路由分布、质量分、单位成本
缓存策略是否可以减少重复计算?Prompt Cache、语义缓存、系统提示缓存命中率、节省 token、缓存错误率
Fallback失败或拥堵时怎么办?换供应商、换小模型、缩短上下文、关闭非关键能力降级率、恢复时间、用户影响
审计与策略哪些请求需要记录、拦截或复核?敏感操作、合规场景、高风险输出、组织策略拦截率、审核通过率、审计完整性

为什么网关不是简单代理

当系统进入多模型、多团队、多成本中心和多风险等级以后,网关就是模型能力的交通系统。它决定请求走哪条路、花多少钱、失败怎么退、日志在哪里汇总,以及组织能否真正复盘 AI 行为。

六、模型推理层:黑箱里其实有时间顺序
Tokenize
Embedding
Prefill
KV Cache
Decode Loop
Sampling
Stream
环节发生了什么为什么影响体验 / 成本
Tokenize文本被切成 token idtoken 数决定上下文窗口、计费、Prefill 规模和输出长度
Embeddingtoken id 变成向量进入 Transformer 计算链路,和位置编码共同形成初始表示
Prefill一次性处理完整输入上下文输入越长,首 token 前等待越久,RAG 长上下文尤其明显
KV Cache缓存历史 attention 的 Key / Value减少重复计算,但会占用显存,影响并发和长上下文容量
Decode Loop逐 token 生成输出输出越长,总耗时越高;这是流式体验和成本的核心变量
Sampling按温度、top-p、约束选择下一个 token影响稳定性、创造性、格式遵循和幻觉概率
Streaming把生成中的 token 持续返回给用户改善感知速度,但不等于总成本下降

TTFT 与总耗时不是一回事

TTFT 主要受入口排队、上下文长度、Prefill 和网关调度影响;总耗时还受输出长度、Decode 速度、工具调用次数和后处理影响。优化时要先拆指标,不能只说“模型慢”。

七、返回层:生成完不等于请求结束
格式与结构校验
  • JSON、表格、函数参数和引用格式需要校验
  • 失败时可以修复、重试、回退模板或转人工
  • 结构化输出失败常常是生产系统的隐性大坑
安全与合规后处理
  • 敏感信息、违规内容、高风险建议和越权结果要二次检查
  • 对外产品尤其需要输出护栏和审计记录
  • Agent 行动结果需要和权限系统再次对齐
前端体验
  • 流式输出、取消、重试、引用展开和错误提示影响用户信任
  • 失败时要告诉用户能做什么,而不是只显示“生成失败”
  • 好体验来自可恢复链路,不只是快,可继续下钻到 AI 产品 UX
八、运营闭环:每次请求都应留下可复盘证据
记录对象应该记录什么用来做什么
请求 Traceprompt 版本、模型、路由、RAG 片段、工具调用、延迟分段定位慢、错、贵和不稳定的根因
成本归因输入 token、输出 token、缓存命中、模型单价、租户和功能归属判断哪个功能值得优化、降级或收费
质量反馈用户点赞踩、人工标签、LLM-as-Judge、任务成功率建设评测集、回归测试和数据飞轮
安全审计敏感输入、拦截原因、工具权限、人工确认、输出风险合规追溯、事故复盘和策略改进
坏例样本失败输入、错误输出、期望输出、上下文快照用于 Prompt 修订、RAG 调优、微调或路由策略迭代

没有 Trace,就没有 AI 工程

传统服务的日志能告诉你接口有没有错;AI 服务还要告诉你模型为什么被这样喂、为什么走这个模型、为什么检到这些材料、为什么花了这些 token。没有请求级 Trace,后续评测、成本、安全和质量改进都会悬空。

8.1 请求级 Trace 应该能回答的十个问题
问题必要字段用于定位什么
谁发起了请求?tenant、user role、入口功能、地域、权限快照越权、配额、成本归属和合规范围
请求要解决什么任务?task type、风险等级、用户意图分类、产品场景路由错误、评测切片和产品指标归因
模型看到了什么?prompt 版本、上下文片段、历史摘要、记忆 key、RAG 文档 id幻觉、引用错误、上下文污染和隐私泄露
为什么走这个模型?routing rule、候选模型、fallback 原因、策略版本质量 / 成本 / 延迟取舍是否符合预期
推理为什么慢?queue、TTFT、prefill、decode、output tokens、重试次数入口排队、长上下文、长输出和供应商抖动
工具做了什么?tool name、参数、权限校验、执行结果、错误码、确认记录工具越权、状态副作用和 Agent 跑飞
它花了多少钱?input / output tokens、cache hit、model price、功能归属单位任务成本、缓存收益和商业化定价
输出有没有被改写?后处理规则、结构化校验、审核拦截、重试修复最终答案和原始模型输出不一致的原因
用户是否满意?采纳、点赞踩、人工接管、纠错、后续重试线上质量、任务成功率和坏例回流
能否复现?request id、版本快照、随机参数、依赖数据版本、脱敏上下文事故复盘、回归测试和发布回滚
8.2 请求 Trace 字段模板:从日志到证据包
字段组建议字段必须能回答的问题常见缺口
身份与入口request_id、session_id、tenant_id、user_id_hash、role、entrypoint、client_version、region谁从哪里发起,归属哪个租户和功能?只有接口日志,没有产品入口和租户维度
任务与风险task_type、intent_label、risk_tier、policy_profile、human_review_required、user_visible_mode这是什么任务,应该走多强的控制链?把所有请求都当普通 Chat,无法做分层治理
上下文快照prompt_template_id、prompt_version、rendered_prompt_hash、system_prompt_hash、history_summary_id、memory_keys、context_token_count模型到底看到了哪一版指令和上下文?只存用户输入,不存模板版本和渲染后摘要
RAG 与证据query_rewrite_id、index_id、retriever_version、top_k、reranker_version、doc_ids、chunk_ids、source_versions、evidence_token_count答案依赖哪些材料,材料当时是什么版本?只存最终回答,不存检索候选和证据版本
工具与连接器tool_name、tool_version、connector_id、resource_uri_hash、arguments_hash、permission_decision、approval_id、tool_latency_ms、tool_status模型要求做什么动作,系统是否允许,结果怎样?工具执行脱离模型 Trace,事故时拼不回完整链路
路由与模型route_rule_id、candidate_models、selected_model、provider、model_version、fallback_from、fallback_reason、temperature、top_p、max_tokens为什么选这个模型和参数,是否发生降级?只知道调用了某模型,不知道路由依据和 fallback
推理分段queue_ms、prefill_ms、ttft_ms、decode_ms、total_latency_ms、input_tokens、output_tokens、finish_reason、retry_lineage慢在哪里,是输入长、排队、解码慢还是重试多?只有总耗时,无法区分 TTFT 和输出阶段
成本与缓存prompt_cache_hit、semantic_cache_hit、cache_key_hash、input_cost、output_cost、tool_cost、total_cost、cost_center钱花在输入、输出、工具还是重复请求上?成本只按供应商账单汇总,不能归因到功能
输出与安全raw_output_hash、final_output_hash、schema_validation_status、citation_check_status、guardrail_actions、redaction_actions、blocked_reason最终给用户看的内容是否被校验、改写或拦截?只看最终文本,忽略后处理和护栏动作
反馈与回放user_feedback、acceptance_signal、human_label、judge_score、failure_tag、replay_bundle_id、eval_case_id、release_version这个请求能否进入坏例、评测、回归和发布复盘?反馈和请求日志分离,无法沉淀成评测资产

Trace 模板的底线

不一定每个字段都永久保存原文,但至少要保存可追踪的版本、hash、id、状态和分段指标。隐私敏感场景可以脱敏或分级留存;但如果连 request_id、prompt 版本、模型版本、检索材料、工具动作、token、延迟、成本和反馈都拼不起来,这个 AI 系统就很难被调优、审计或复现。

8.2.1 请求决策账本:把权限、路由、Fallback 和成本串起来
决策点必须留下的证据用于回答的问题缺失后的后果
权限裁决tenant_id、user_id_hash、policy_version、decision_id、allow / deny、reason、data_scope、tool_scope这次请求凭什么能看这些数据、调用这些工具?越权、泄露或误拒时只能猜测当时策略
路由选择task_type、risk_tier、sla_tier、budget_tier、candidate_models、selected_model、route_rule_id为什么不是更便宜、更快或更强的模型?质量退化和成本异常无法归到具体路由规则
Fallback 尝试attempt_id、fallback_from、fallback_to、fallback_reason、retry_count、stop_reason失败发生在哪里,重试或降级是否符合策略?重试链路变成黑箱,慢请求和贵请求难以解释
成本延迟归因input_tokens、output_tokens、queue_ms、ttft_ms、decode_ms、tool_latency_ms、attempt_cost、total_cost钱和时间分别花在首轮、重试、工具还是降级链路上?只能看到账单和总耗时,无法做定点优化
质量与复盘quality_score、guardrail_actions、user_feedback、eval_case_id、replay_bundle_id这条路径是否值得保留,坏例能否回放?线上反馈不能沉淀为评测样本和修复证据

一次请求要像一笔账

真正可运营的 AI 请求,不只是“输入、模型、输出”三段日志,而是一条决策账本:权限为什么放行,路由为什么这样选,失败为什么 fallback,成本延迟花在哪里,坏例怎样回放。

8.3 慢、贵、错:优化动作不要混在一起
目标先看哪些证据常见有效动作错误动作
降低首 token 延迟TTFT 分段、输入 token、队列、缓存命中Prompt 瘦身、RAG 压缩、Prompt Cache、长短请求分池只换更大模型,或盲目提高并发
降低总耗时输出 token、decode tokens/s、工具步骤、重试次数限制输出长度、分步流式、减少工具往返、推测解码只优化 prefill,却放任长答案无上限
降低单位成本模型分布、输入 / 输出 token、缓存、失败重试、租户归因小模型优先、复杂任务升级、语义缓存、批处理后台化统一降级到小模型,导致质量和人工成本反弹
提升正确率失败样本、引用片段、任务切片、人工标签、Judge 解释改检索、改 Prompt、补评测集、调整路由或微调只看平均分,不看关键任务失败
降低安全风险风险标签、拦截原因、工具权限、敏感数据来源、审计链输入预检、工具限权、输出护栏、人工确认、红队回归只在最终输出处过滤,忽略工具执行前的风险
8.4 坏例回放剧本:拿到一个 request_id 后怎么查
回放步骤先找什么证据判断问题下一步去向
锁定入口request_id、tenant_id、entrypoint、task_type、risk_tier这是不是同一类任务的系统性问题,还是某个租户 / 功能的局部问题?分流到产品、权限、成本或安全 owner
还原模型看到的材料prompt_version、rendered_prompt_hash、context_pack_id、dropped_segments、memory_keys错误是否来自 Prompt 版本、历史污染、记忆误写或上下文截断?上下文组装 / Prompt
重放 RAGquery_rewrite_id、index_version、retrieved_doc_ids、chunk_order、citation_ids、no_answer_reason是漏召、错召、过期知识、权限过滤,还是模型没有忠实使用证据?RAG / Grounding
重放工具和 Agenttool_call_id、arguments_hash、permission_decision、observation_id、retry_count、terminal_condition工具是否被错误选择、参数是否漂移、权限是否正确、循环是否失控?Tool Calling / Agent
拆模型与网关route_rule_id、selected_model、fallback_reason、queue_ms、prefill_ms、decode_ms、finish_reason慢、贵或质量退化是否来自路由、Fallback、长上下文、重试或模型版本?模型网关 / 模型路由
核验输出与反馈raw_output_hash、final_output_hash、schema_status、guardrail_actions、user_feedback、failure_tag最终给用户看的内容是否被后处理改写,坏例是否已经进入评测和回归?LLMOps / 反馈闭环
形成证据包replay_bundle_id、eval_case_id、incident_id、release_version、fixed_version这次失败能否复现、能否证明修复、能否支持发布或回滚决策?AI 证据包索引 / 审计证据链

坏例不是一句“模型答错了”

一个可修复的坏例,至少要能还原入口、上下文、检索、工具、路由、生成、后处理和反馈。只有当 request_id 能生成 replay_bundle、eval_case 或 incident_candidate,团队才真正拥有了持续改进的入口。

九、常见故障地图
现象可能根因优先排查
首 token 很慢上下文过长、Prefill 重、队列拥堵、网关路由慢输入 token、TTFT 分段、排队时间、缓存命中率
回答贵但价值低大模型滥用、输出过长、RAG 塞太多、无缓存模型路由、max tokens、Top-K、单位功能成本
回答看似合理但错误检索噪声、幻觉、上下文冲突、评测缺失引用片段、评测集、RAG 命中和重排结果
Agent 跑飞工具权限过大、最大步数缺失、状态污染、错误恢复差步骤 Trace、工具调用参数、权限策略、预算限制
输出格式经常坏提示不稳定、schema 复杂、采样过发散、缺少校验修复结构化输出约束、温度、重试策略、解析错误样本
安全问题频发输入预检弱、间接注入、工具越权、后处理缺失安全策略、RAG 文档来源、工具授权、审计日志
十、回到 AI 主干
AI 全景 Token / Attention 训练 / 推理 能力边界 Embedding / 检索 Prompt / 上下文 RAG Agent 搜索规划 Tool Calling 模型服务 / 网关 模型路由 / Fallback 推理计算 解码采样 请求 Trace 模板 AI 证据包索引 推理模型 模型评测 应用架构模式 AI 产品 UX AI 编程 Agent LLMOps / 评测 安全 / 护栏 AI 治理 / 合规