QVeris
框架集成指南

LangChain + AI 网关集成

LangChain 负责应用编排;网关负责模型访问、策略与路由。连接回调、重试与工具前,先定义边界。

发布日期:2026年3月20日 · QVeris团队制作

Financial market workflow supporting LangChain + AI Gateway LangChain + AI 网关集成

速览

使用稳定模型接口

让 LangChain 模型客户端指向一个批准的网关契约。

注册能力

只路由到满足工具、结构定义、上下文与流要求的模型。

选择一个重试负责人

避免 LangChain、SDK 与网关嵌套重试。

连接回调与调用链

关联 Chain 步骤、模型路由、工具调用与最终结果。

职责划分

LangChain 负责组装提示词、Runnable、Agent、检索器和应用状态;网关负责认证请求、解析模型能力、执行路由、适配供应商并记录推理证据。

模型接口应保持稳定,Chain 向网关传递工作负载意图,而不是供应商特定配置。例如,“客户支持摘要”这一工作负载别名可以声明上下文长度、结构化输出、区域和延迟等级,网关再从满足要求的路由中选择。如果每条 Chain 都写死供应商模型名,故障切换和策略变更仍然需要修改应用。

重试和输出适配的归属也必须明确。LangChain 可以重试一个逻辑工作流步骤,而网关只应重试或切换单次推理尝试。如果没有共享的尝试预算,一次超时可能被放大为多次昂贵调用。供应商响应标准化应留在网关,业务级恢复、记忆更新和分支决策则留在应用层。

工具属于应用能力,而不是模型端点。即使工具调用由模型提出,也应为执行过程单独配置凭证、幂等、超时和证据;应用仍需在执行前验证参数与权限。

集成职责

领域最适合选择前验证
提示词与 ChainLangChain 应用代码。版本化提示词,并传递工作负载别名与所需能力。
模型路由AI 网关。记录目录、策略、所选端点与故障切换尝试。
重试一个选定层。共享截止时间与幂等,并禁用重叠重试循环。
工具应用能力层。限制凭证、验证参数并追踪副作用。

集成检查清单

连通性

验证客户端到网关与网关到供应商路径。

模型契约

测试 Message、工具、结构化输出、流与错误。

可观测

把调用链上下文传播到回调与网关日志。

安全

让供应商与工具凭证远离 Chain State 与提示词。

测试完整 Chain

只测试提示词或路由器还不够。应为每条重要 Chain 建立确定性测试夹具,包含输入变量、检索上下文、对话状态和预期结构字段。让同一测试夹具经过每条候选模型路由,才能在启用动态路由前看清差异。

  • 让确定性 Chain 输入经过每条合格模型路由。
  • 注入网关超时、供应商故障和异常工具输出。
  • 确认回调能够解释路由、尝试、工具与最终响应。
  • 先灰度一条 Chain,并保留原有模型配置以便回滚。

评估既要覆盖 Chain 语义,也要覆盖路由运行指标。除首 Token 延迟、总延迟、切换率、Token 用量和成本外,还应检查输出结构有效性、引用保留、工具参数质量和状态迁移。某条路由即使运行稳定,只要改变了分支条件或记忆更新,也仍然属于回归。

LangChain 负责编排,网关治理推理

Chain 通过稳定模型接口发送工作负载别名、所需能力与调用链上下文;网关完成授权、选择并执行模型路由;工具请求返回应用能力层,所有追踪片段汇入同一个工作流调用链。

同一个调用链 ID 应贯穿 LangChain 回调与网关请求,但编排和推理仍需保留独立追踪片段。Chain 片段可记录 Runnable 名称、分支、检索 ID 与状态迁移;网关片段可记录策略版本、候选路由、所选供应商、尝试、原生请求 ID 和用量。关联后即可判断延迟或故障究竟始于编排、推理还是下游能力。

不要把业务状态放进供应商适配器。记忆、检查点和工作流状态应由 LangChain 管理,因此模型切换后仍能保留。网关只接收当前推理所需的上下文,并返回标准化输出和路由证据,从而避免供应商变更影响应用的持久化模型。

生产规则:上线前必须明确重试归属与工具副作用。

用 QVeris 补充工具能力层

AI 网关负责推理;QVeris 通过“发现 → 检查 → 调用”为 LangChain 应用提供外部 API、工具、服务和实时数据。两层可以共享调用链上下文,但不能混用模型与工具凭证。

把能力绑定到工具封装前应先进行检查,确认供应商覆盖范围、输入结构、所需权限、估算成本、延迟和输出契约。执行时,再根据已检查的结构验证模型提出的参数,并在请求离开可信边界前执行应用策略。

调用完成后,应保留时间戳、单位、来源标识和供应商错误。向 Chain 返回结构化结果,而不是无限制文本块,并把能力搜索与执行 ID 附加到工作流调用链。这样 LangChain 可以决定结果如何影响状态,同时保留复核所需的完整证据。

将 LangChain 接到网关且不丢失证据

当前 LangChain ChatOpenAI 集成可通过自定义 base_url 连接基础 OpenAI 兼容 Chat。官方文档提醒,供应商特有响应字段可能不会被保留;如果工作负载依赖非标准推理、安全或遥测字段,应使用供应商原生包。

最小 LangChain 客户端
from langchain_openai import ChatOpenAI
import os

llm = ChatOpenAI(
    model=os.environ["LLM_MODEL_ID"],
    base_url=os.environ["LLM_GATEWAY_BASE_URL"],
    api_key=os.environ["LLM_GATEWAY_API_KEY"],
    timeout=20,
    max_retries=0,
    stream_usage=True,
)

message = llm.invoke("Return the word LANGCHAIN_OK")
print(message.content, message.usage_metadata, message.response_metadata)
  • 验证工具调用、严格结构化输出、流式用量与取消。
  • 把 LangChain Run ID、网关调用链 ID、原生供应商、准确模型与用量一起记录。
  • 没有共享 Attempt Budget 时,不要把 LangChain 重试叠加在网关重试之上。

实施参考已根据官方资料核验:LangChain ChatOpenAI integration。

FAQ

LangChain 会替代网关吗?

不会。LangChain 编排应用逻辑,网关治理模型访问。

工具应在哪里运行?

在应用能力层运行,并配置受限凭证与验证。

如何追踪?

让一个工作流调用链贯穿 Chain、网关、模型与工具追踪片段。

官方资料与延伸阅读

LangChain + AI 网关集成 | QVeris Guides