Skip to content

流式与可观测

streaming、fault tolerance、LangSmith 追踪。

Updated View as Markdown
For humans

流式与可观测

生产级 agent 的两个基本要求:响应要流式(用户体验)、行为要可观测(可信赖)。面试主线:流式怎么实现、容错怎么做、追踪看什么。

streaming:边跑边出

for chunk in graph.stream({"messages": "写一篇短文"}):
    print(chunk)     # 按节点产出: {'model': {...}, 'tools': {...}}
流式层次 API 粒度
节点级 graph.stream() 每个节点完成后产出
消息级 stream_mode="messages" LLM token 流(打字机效果)
事件级 astream_events / stream_events 任意内部事件(含工具调用)
  • 节点级适合进度展示,消息级适合聊天 UI 逐字输出
  • stream_events 还暴露中断信息(stream.interrupts),驱动人机协同界面(见人机协同篇)
  • 流式与 checkpoint 配合:恢复后继续流式输出

fault tolerance:容错

手段 说明
checkpoint 续跑 崩溃后从最近存档恢复(见持久化篇)
重试(retry_policy) 节点失败自动重试(指数退避)
错误处理节点 节点内 try/except,失败转降级逻辑
超时控制 节点级超时(timeout=),防模型卡死
from langgraph.pregel.retry import RetryPolicy

builder.add_node("model", call_model,
                 retry=RetryPolicy(max_attempts=3, initial_delay=1.0))

面试要点:agent 的故障分两种:基础设施故障(LLM 超时、工具报错)用重试和超时;业务失败(结果不对)靠评估和人工兜底,重试解决不了逻辑错误。

LangSmith 追踪

LangSmith: 每次调用自动可观测

能力 解决什么
追踪 单次调用完整链路:模型输入输出、工具调用、状态变化、耗时成本
数据集 沉淀评测集,改代码后回归测试
评估 自动评估器(正确性、工具使用合理性)
在线监控 生产延迟、错误率、token 成本告警

追踪是 agent 开发的必需品:模型决策不可直接调试,只能靠链路回放。看到“模型为什么调了这个工具、结果为什么不对”才能迭代。

面试追问

  1. 流式怎么实现? graph.stream(节点级)到 stream_mode=“messages”(token 级)。聊天 UI 用消息级
  2. agent 容错怎么做? checkpoint 续跑 + 节点重试(RetryPolicy)+ 超时。基础设施故障用重试,逻辑错误靠评估
  3. LangSmith 追踪的价值? 完整链路回放:模型决策、工具调用、状态流转。agent 不可直接调试,只能看链路
  4. stream_events 和 stream 的区别? stream 节点级产出,stream_events 全事件(含中断 payload),驱动 HITL 界面
  5. 生产上线 agent 前必备? 持久化(checkpoint)、流式、追踪、评估集。缺可观测性的 agent 没法迭代
Navigation

Type to search…

↑↓ navigate↵ selectEsc close