主题
部署全栈 Web 应用
将 LangChain agent 作为全栈 Web 应用部署到 Next.js、SvelteKit、Nuxt、Cloudflare Workers、Deno Deploy 和 Vite,支持流式 UI 和线程历史。
以下页面提供了在 JavaScript 框架和托管平台上生产运行 LangChain agent 的参考实现。部署 cookbook 仓库中的每个示例都是一个全栈聊天应用,具有流式 UI、子 agent 和线程历史,并使用相同的 Agent Streaming Protocol 部署在不同平台上。
当你需要交付由 agent 支持的产品时,请使用这些指南:复制与你的托管环境匹配的技术栈,替换为你自己的工具和模型,并在超出单实例时升级持久化。
示例
与 LangSmith Deployment 配合使用
agent 作为 LangSmith Deployment 运行,单独的 Web 应用从 Agent Server API 流式传输。
嵌入你的 Web 框架
agent 在框架的路由处理程序中运行,并作为单个可部署应用发布到托管平台。
Next.js
App Router 路由处理程序在 /api/threads/... 下实现协议。一键部署到 Vercel。
SvelteKit
在 Cloudflare Workers 上使用 @langchain/svelte 的 SvelteKit 服务器路由,并使用按线程的 Durable Objects 进行 SSE 重放。
Nuxt
Nitro 路由处理程序和 @langchain/vue 组合式函数位于单个可部署的 Nuxt 4 应用中。
Cloudflare Workers
Vite + React SPA 和 Hono API 位于同一个 Worker 上,使用 Workers Assets 和 Durable Objects。
Deno Deploy
Deno.serve + Hono 从一个入口点提供协议 API 和 Vite 构建的 React SPA。
TIP
每个 cookbook 示例共享同一个演示 agent:一个协调器,使用模拟工具委托给 researcher 和 math-whiz 子 agent,因此你可以在不改变应用行为的情况下比较托管选择。
agent 部署包含哪些内容
每个示例都遵循相同的形态。框架和托管会变化;职责不会。
Agent 运行时
agent 本身,通常是 LangGraph 图或 deepagents 协调器,包含工具、可选子 agent 和中间件。它使用 checkpointer 编译,因此对话状态可在轮次之间保留。示例为简单起见从内存 MemorySaver 开始;生产部署则替换为 Redis(@langchain/langgraph-checkpoint-redis)、Postgres(@langchain/langgraph-checkpoint-postgres)、SQLite(@langchain/langgraph-checkpoint-sqlite)或平台特定存储。
协议服务器
HTTP 路由处理程序在 /api/threads/... 下实现 Agent Streaming Protocol。
最小配置(流式聊天)
这三个端点足以使用 HttpAgentServerAdapter 运行单线程流式聊天:
| 方法 | 路径 | 用途 |
|---|---|---|
POST | /api/threads/:threadId/commands | 接受命令(run.start 等)并启动运行 |
POST | /api/threads/:threadId/stream | 运行的协议事件 SSE 流 |
GET / POST | /api/threads/:threadId/state | 读取并引导检查点化的线程状态 |
线程侧边栏(所有示例)
每个示例还实现了线程历史侧边栏的端点:
| 方法 | 路径 | 用途 |
|---|---|---|
GET | /api/threads | 列出 checkpointer 已知的线程 |
DELETE | /api/threads/:threadId | 删除线程的会话和 checkpoint |
POST | /api/threads/:threadId/history | 分页的 checkpoint 历史 |
会话和运行管理
服务器端逻辑跟踪活动运行、将命令桥接到 agent,并通过 SSE 扇出实时事件。注册表或会话存储让客户端可以重新连接到进行中的流。在无服务器或多实例主机上,此层必须与 checkpointer 共享或并置。
聊天前端
通过 HttpAgentServerAdapter 连接到协议的浏览器 UI,来自 @langchain/react、@langchain/vue、@langchain/svelte 或 @langchain/angular。客户端引导线程状态、提交消息、消费 SSE 流,并渲染 token、工具调用、推理和子 agent 活动。
这些绑定本身不附带组件。useStream 等 hook 返回普通的响应式状态(消息、工具调用、加载标志、线程元数据),你可以将其连接到任何偏好的视觉层。有关适配器模式和权衡,请参阅前端集成概述。