Skip to content

Observability、Tracing、Evaluation、Prompt/Context Engineering、Cost、Latency 与 Security

AI 系统最容易让人产生错觉的一点是:

只要能跑通一次,好像就已经差不多了。

但真正上线之后,问题往往不是“跑不跑得通”,而是:

  1. 为什么同样的问题今天能答对,明天又开始飘
  2. 为什么延迟有时很稳,有时突然翻倍
  3. 为什么成本越跑越高,却说不清花在哪里
  4. 为什么用户反馈变差了,但日志里看起来一切正常
  5. 为什么系统偶尔会调用不该调用的工具,或者把不该带出来的内容带出来

这几个词,就是拿来处理这些问题的。

1. 一条更接近工程现场的链路

mermaid
flowchart TD
    A[用户请求] --> B[上下文组装]
    B --> C[检索 / 工具 / 模型调用]
    C --> D[输出结果]
    D --> E[Observability 汇总指标]
    C --> F[Tracing 记录链路]
    D --> G[Evaluation 评估效果]
    G --> H[Prompt / Context Engineering 调优]
    H --> I[Cost / Latency 权衡]
    I --> J[Security 加固]

这条图最想说明的是:

  1. AI 工程不是只盯着模型输出
  2. 一次请求从输入到输出,中间有很多可漂移的环节
  3. 工程治理的工作,就是把这些环节看见、拆开、衡量、调优、收边界

2. Observability:把系统状态看见

Observability 就是可观测性。

在 AI 场景里,它关心的不是一句“接口成功了没”,而是:

  1. 请求量是不是突然变化
  2. 成功率和错误率有没有异常
  3. 单次请求用了多少 Token
  4. 哪类工具调用最频繁
  5. 哪个模型、哪段链路最容易超时

它解决的问题是:

系统运行时,你能不能第一时间发现不对劲。

但它的边界也很清楚。
可观测性让你看到异常,不代表你已经知道异常为什么发生。想继续往下查,还得看 Tracing

3. Tracing:把一次请求走过的路完整串起来

Tracing 可以理解成链路追踪。

传统系统里,一次请求可能只经过几个服务;AI 系统里,一次请求往往会更长:

  1. 先拼 Prompt
  2. 再裁历史上下文
  3. 再查知识库
  4. 再做重排
  5. 再调工具
  6. 最后还可能有多轮模型生成

这时如果没有 Tracing,你只能看到“结果不太对”,却不知道问题卡在:

  1. Prompt 组织
  2. 检索结果
  3. 工具参数
  4. 模型决策
  5. 输出后处理

🌟 Tracing 的价值,在于把“模糊感觉不对”变成“这一步确实出了问题”。

4. Evaluation:判断系统到底有没有变好

很多团队会做日志、做监控、做追踪,但最后还是回答不了一个最关键的问题:

这次改动之后,系统到底变好了还是变差了。

这就是 Evaluation 要解决的事。

在 AI 系统里,评估通常不会只盯一个维度。更常见的是组合看:

  1. 答案正确性
  2. 检索命中质量
  3. 工具调用成功率
  4. 格式稳定性
  5. 任务完成率
  6. 用户反馈或人工标注结果

没有评估,很多调优最后都会变成“感觉更好了”。
而工程上最怕的就是这种“感觉型优化”。

5. Prompt/Context Engineering:很多问题,最后都不是模型本身的问题

Prompt/Context Engineering 直接看成:

围绕指令和上下文组织方式做持续调优。

这里的重点不只是“提示词怎么写”,而是整条输入到底怎么拼。

典型问题包括:

  1. 系统指令和业务规则谁在前面
  2. 历史消息保留多少轮
  3. 检索结果放几条最合适
  4. 工具返回结果要不要裁剪
  5. 哪些上下文应该结构化,哪些保留自然语言

很多人一看到效果不稳,就先怀疑模型。
但真实项目里,问题经常出在上下文塞得太乱、太长、太脏,或者关键约束根本没有放在模型最容易理解的位置。

6. CostLatency:真正上线后,它们每天都在跟效果拉扯

Cost 是成本,Latency 是延迟。

这两个指标经常一起看,不是巧合,而是因为它们总跟效果互相牵扯。

比如:

  1. 上下文更长,模型理解可能更充分,但 Token 成本和延迟都会上升
  2. 模型更大,效果可能更稳,但调用价格也更高
  3. 工具和检索链路更丰富,回答可能更准,但整条链路也更慢
  4. 多次重试能提高成功率,但同样会抬高成本

所以工程上真正需要的不是“只追效果”或者“只控成本”,而是知道:

哪些效果提升值得花钱,哪些延迟增加是用户不能接受的。

7. Security:AI 系统的安全边界通常比传统接口更宽

AI 场景里的 Security,不只是登录鉴权和接口防刷。

它还会碰到一批更有 AI 味道的问题:

  1. Prompt 注入
  2. 敏感信息泄露
  3. 工具被诱导滥用
  4. 权限边界被绕开
  5. 高风险动作缺少确认
  6. 外部知识或网页内容带进恶意指令

所以 AI 系统里的安全,至少要同时看 4 层:

  1. 输入安全
  2. 上下文安全
  3. 工具调用安全
  4. 输出结果安全

这里也顺手区分一下:

Guardrails 更偏运行时护栏,Security 更偏完整安全体系。

前者更像一道道检查点,后者则是从身份、权限、数据、调用、审计到合规的一整套要求。

8. 这些概念在真实项目里通常怎么串起来

更稳的落地顺序通常是:

  1. 把关键指标和链路打出来,建立 ObservabilityTracing
  2. 再补评估集和评估流程,用 Evaluation 判断优化是否有效
  3. 再围绕 Prompt、上下文、检索结果和工具返回做 Prompt/Context Engineering
  4. 在效果相对稳定之后,继续压 Cost、控 Latency
  5. 最后把 Security 从补丁式防御收成体系化治理

如果顺序反过来,比如系统都还看不清就开始猛调 Prompt,通常会很痛苦,因为你根本不知道调动之后到底影响了哪一层。

9. 一段更接近落地现场的总结

Observability 负责让你看到系统状态,Tracing 负责让你看清一次请求到底经历了什么,Evaluation 负责判断系统有没有变好,Prompt/Context Engineering 负责把输入组织方式持续调顺,CostLatency 负责把效果和现实约束放到一起权衡,Security 则负责把系统真正收进可控边界里。

AI 工程难的从来不只是“把模型接进来”,而是把这整套东西长期跑稳。很多 Demo 死在上线前,不是因为模型不够强,而是因为这条治理链路根本没有建立起来。

10. 继续展开看

基于 VitePress 构建的个人技术笔记。