LangChain 和 NVIDIA 通过四种机制合作加速智能体:
  1. 组件
  2. LangGraph 加速原语
  3. NeMo Agent Toolkit 优化
  4. 全栈蓝图

Components

langchain-nvidia-ai-endpoints 包提供由 NVIDIA AI 驱动的 LangChain 集成,支持聊天、嵌入、重排序和检索——包括 Nemotron,这是 NVIDIA 为智能体 AI 构建的开放模型系列,以及 NVIDIA API Catalog 上的数百个社区模型。 模型运行在 NVIDIA NIM 微服务上:这些容器镜像会暴露标准的 OpenAI 兼容 API,并通过 TensorRT-LLM 进行优化,以在 NVIDIA 硬件上实现最高吞吐量。你可以通过托管的 API Catalog 访问它们,也可以在本地自托管。
ComponentClassDescription
聊天ChatNVIDIA使用任何 NVIDIA 托管模型或本地 NIM 进行聊天补全
聊天(Dynamo)ChatNVIDIADynamo带有 Dynamo 部署 KV 缓存路由提示的 ChatNVIDIA
嵌入NVIDIAEmbeddings用于语义搜索和 RAG 的稠密向量嵌入
重排序NVIDIARerank根据查询相关性对文档进行重排序
检索NVIDIARAGRetriever从 NVIDIA RAG Blueprint 服务器进行检索

Chat: ChatNVIDIA

ChatNVIDIA 基于 NVIDIA 托管模型和本地 NIM 部署提供聊天补全。它支持工具调用、结构化输出、图像输入和流式传输。

Install

pip install -qU langchain-nvidia-ai-endpoints

Access the NVIDIA API Catalog

  1. NVIDIA API Catalog 上创建一个免费账户并登录。
  2. 点击你的个人资料图标,然后点击 API Keys > Generate API Key
  3. 复制该密钥并将其保存为 NVIDIA_API_KEY
import getpass
import os

if os.environ.get("NVIDIA_API_KEY", "").startswith("nvapi-"):
    print("环境中已存在有效的 NVIDIA_API_KEY。删除后可重置")
else:
    nvapi_key = getpass.getpass("NVAPI 密钥(以 nvapi- 开头):")
    assert nvapi_key.startswith(
        "nvapi-"
    ), f"{nvapi_key[:5]}... 不是有效密钥"
    os.environ["NVIDIA_API_KEY"] = nvapi_key
Nemotron 是 NVIDIA 专为智能体 AI 设计的开放模型系列。这些模型采用混合 Mamba-Transformer 专家混合架构,在提供高吞吐量并支持最多 100 万 token 上下文窗口的同时,实现了领先的基准测试性能。Nemotron 模型权重、训练数据和实现方案都根据 NVIDIA Open Model License 公开发布。
from langchain_nvidia_ai_endpoints import ChatNVIDIA

# Nemotron 3 Super — 高效推理和智能体任务
llm = ChatNVIDIA(model="nvidia/nemotron-3-super-120b-a12b")
result = llm.invoke("为竞品分析规划一个三步研究工作流。")
print(result.content)
请参阅 ChatNVIDIA 集成页面,了解包括工具调用、多模态输入和 Nemotron 专用示例在内的完整文档。

Chat: ChatNVIDIADynamo

ChatNVIDIADynamoChatNVIDIA 的直接替代品,用于 NVIDIA Dynamo 部署。它会自动向每个请求注入 KV 缓存路由提示,使 Dynamo 调度器能够优化内存分配、负载路由和请求优先级。
from langchain_nvidia_ai_endpoints import ChatNVIDIADynamo

llm = ChatNVIDIADynamo(
    base_url="http://localhost:8099/v1",
    model="nvidia/nemotron-3-super-120b-a12b",
    osl=512,             # 预期输出序列长度(token)
    iat=250,             # 预期到达间隔时间(毫秒)
    latency_sensitivity=1.0,
    priority=1,
)
result = llm.invoke("用一句话总结 KV 缓存路由。")
print(result.content)
请参阅 ChatNVIDIA 集成页面,了解完整的 ChatNVIDIADynamo 参考信息,包括单次调用覆盖和流式传输。

Embeddings: NVIDIAEmbeddings

NVIDIAEmbeddings 会生成稠密向量嵌入,用于语义搜索和 RAG 流水线。
from langchain_nvidia_ai_endpoints import NVIDIAEmbeddings

embedder = NVIDIAEmbeddings(model="NV-Embed-QA")
embedder.embed_query("今天的温度是多少?")
请参阅 NVIDIAEmbeddings 集成页面 了解完整文档。

Reranking: NVIDIARerank

NVIDIARerank 使用 NeMo Retriever 重排序 NIM,根据与查询的相关性对文档列表进行重排序。
from langchain_core.documents import Document
from langchain_nvidia_ai_endpoints import NVIDIARerank

ranker = NVIDIARerank(model="nvidia/llama-3.2-nv-rerankqa-1b-v1")
docs = ranker.compress_documents(
    query="什么是 GPU 内存带宽?",
    documents=[Document(page_content=p) for p in passages],
)

Retrieval: NVIDIARAGRetriever

NVIDIARAGRetriever 将 LangChain 连接到正在运行的 NVIDIA RAG Blueprint 服务器,并通过 /v1/search 端点检索相关文档。它支持重排序、查询重写和元数据过滤。
from langchain_nvidia_ai_endpoints import NVIDIARAGRetriever

retriever = NVIDIARAGRetriever(base_url="http://localhost:8081", k=4)
docs = retriever.invoke("什么是 NVIDIA NIM?")
请参阅 NVIDIARAGRetriever 集成页面 了解完整文档。

Self-host with NVIDIA NIM Microservices

当你准备部署 AI 应用时,可以使用 NVIDIA NIM 自托管模型。更多信息请参考 NVIDIA NIM Microservices
from langchain_nvidia_ai_endpoints import ChatNVIDIA, NVIDIAEmbeddings, NVIDIARerank

# 连接到运行在 localhost:8000 的聊天 NIM,并指定模型
llm = ChatNVIDIA(base_url="http://localhost:8000/v1", model="nvidia/nemotron-3-super-120b-a12b")

# 连接到运行在 localhost:8080 的嵌入 NIM
embedder = NVIDIAEmbeddings(base_url="http://localhost:8080/v1")

# 连接到运行在 localhost:2016 的重排序 NIM
ranker = NVIDIARerank(base_url="http://localhost:2016/v1")

Accelerate LangGraph with NVIDIA

langchain-nvidia-langgraph 包为 LangGraph 图提供 NVIDIA 优化的执行策略。它提供两种在编译时应用的互补优化:
  • 并行执行:自动识别独立节点并并发运行,消除不必要的顺序瓶颈。
  • 推测执行:条件边的两个分支会同时运行;一旦路由条件确定,就丢弃错误的分支。
这两种优化都不需要修改节点逻辑或图边。

Install

pip install -qU langchain-nvidia-langgraph

Parallel execution

将 LangGraph 中的 StateGraph 替换为 langchain_nvidia_langgraph.graph 中的 StateGraph。图定义的其余部分保持不变。
from langchain_nvidia_langgraph.graph import StateGraph, OptimizationConfig
from langgraph.graph import END
from typing import TypedDict

class AgentState(TypedDict):
  ...

graph = StateGraph(AgentState)
app = graph.compile(optimization=OptimizationConfig(enable_parallel=True))
或者包装一个现有的 StateGraph
from langgraph.graph import StateGraph as LangGraphStateGraph
graph = LangGraphStateGraph(AgentState)
app = with_app_compile(graph).compile(optimization=OptimizationConfig(enable_parallel=True))
装饰器可以让你显式控制哪些节点参与优化:
from langchain_nvidia_langgraph.graph import sequential, depends_on, speculation_unsafe

# 防止某个节点被并行化(例如,它会写入共享状态)
@sequential
def write_to_db(state):
    ...

# 声明一个未在图边中表达的依赖关系
@depends_on("write_to_db")
def next_action(state):
    ...

Speculative execution

在编译时通过 OptimizationConfig 启用推测执行。执行器会并行运行条件分支,并保留与路由决策匹配的结果。
app = graph.compile(optimization=OptimizationConfig(enable_speculation=True))

NeMo Agent Toolkit Optimizations with LangSmith Telemetry

NVIDIA NeMo Agent Toolkit 是一个开源 AI 工具包,用于构建、分析和优化智能体。开发者可以在只做少量代码修改的情况下,将 LangChain 与 NeMo Agent Toolkit 一起使用,以启用性能分析、评估、GPU 容量规划和自动优化。NeMo Agent Toolkit 可与 LangSmith 互操作。

Full Stack Blueprints

NVIDIA 和 LangChain 合作推出了全栈示例,展示如何将这些组件组合起来用于两个企业用例,并重点关注生产就绪性:
  • NVIDIA AI-Q 是一个使用 LangChain Deep Agents 跨企业数据源进行深度研究的蓝图
  • NVIDIA VSS 是一个使用 LangChain 和 LangGraph 进行视频搜索与摘要的蓝图

Additional Resources