ServerRuntime 实现这一点。
在大多数情况下,最好通过在单个节点内根据配置进行条件判断来处理定制需求,而不是动态改变整个图结构。这样更易于测试和管理。
前提条件
- 请务必先查看此操作指南,了解如何为部署设置你的应用。
ServerRuntime需要langgraph-api >= 0.7.31和langgraph-sdk >= 0.3.5。在此版本之前,图工厂只接受单个config: RunnableConfig参数。
定义图
假设你有一个应用,其中包含一个调用 LLM 并向用户返回响应的简单图。应用文件目录结构如下:agents.py 中。
不重建
部署 Agent Server 最常见的方式是引用在文件顶层定义的已编译图实例。示例如下:langgraph.json) 中指定包含 CompiledStateGraph 实例的变量路径,例如:
重建
要为每次新运行重建你的图,请提供一个工厂函数,该函数返回(或生成)一个图。工厂函数可以选择性地接受ServerRuntime 参数或 RunnableConfig。服务器会检查你函数的类型注解以确定要注入哪些参数,因此请确保包含正确的类型提示。服务器的队列工作器会在需要处理运行时调用你的工厂函数。该函数也会在某些其他端点(用于更新状态、读取状态或获取助手模式)时被调用。ServerRuntime 会告诉你触发调用的上下文。
ServerRuntime 处于测试阶段,未来版本可能会更改。简单工厂
最简单的形式是一个普通的async def 函数,它返回一个已编译的图:
上下文管理器工厂
如果你需要设置和清理资源(数据库连接、加载 MCP 工具等),请使用异步上下文管理器。使用runtime.execution_runtime 来检查图是被调用用于实际执行还是仅用于内省(模式、可视化):
langgraph.json 中指定你的工厂路径:
ServerRuntime 参考
你的工厂函数接收一个ServerRuntime 实例,该实例具有以下属性:
方法:
访问上下文
服务器在多种上下文中调用你的工厂,而不仅仅是执行运行。在所有上下文中,返回的图应具有相同的拓扑(节点、边、状态模式)。在写入上下文(threads.create_run、threads.update)中,不匹配的拓扑可能导致不正确的状态更新。在读取上下文(threads.read、assistants.read)中,不匹配会影响报告的待处理任务、模式和可视化,但不会损坏数据。使用 execution_runtime 有条件地设置昂贵的资源,而无需改变图结构。
为每个图定制追踪
你可以使用工厂函数为特定图定制或禁用追踪。有关示例,请参阅条件追踪:在已部署的智能体中定制追踪。 更多信息请参阅 LangGraph API 配置文件。Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

