Skip to content
目录

LangChainJS 核心架构概述

LangChain JS(@langchain/core + 各 provider 包)把 LLM 应用拆成可组合的 Runnable 单元,在 Node / 浏览器 / Edge 等环境以统一异步 API 运行。


1. 定位

目标手段
换模型、换向量库抽象接口 + 独立 @langchain/openai 等包
可观测callbacks、LangSmith tracing
可编排LCEL:prompt.pipe(model).pipe(parser)
复杂 AgentLangGraph(独立包,见 07)

2. Monorepo 结构(概念)

职责
@langchain/coreRunnable、Message、Tool、基础 LLM 抽象
@langchain/langgraph有状态图编排
@langchain/openai厂商实现
langchain聚合导出与高层 Agent API

3. 核心抽象:Runnable

一切「可执行步骤」实现同一契约:

方法用途
invoke单次输入 → 输出
batch批量
stream流式 chunk
streamEvents细粒度事件(调试用)

pipe 串联成链,配置经 RunnableConfig(callbacks、tags、runName)透传。


4. 关键组件关系

mermaid
flowchart TB
  P[PromptTemplate] --> M[ChatModel]
  M --> T[Tools / ToolNode]
  T --> A[Agent / LangGraph]
  M --> PAR[OutputParser]
  • Message:对话单元(Human / AI / System / Tool)
  • Tool:模型可调用的函数,schema 描述参数
  • Retriever:RAG 取文档,常 pipe 进 prompt

5. 异步与流式

全链路 Promise / AsyncIterable;模型 token 经 stream 逐步吐出,链上各 Runnable 可转发或转换 chunk。


6. 错误与重试

Runnable 层支持 retry、fallbackwithRetrywithFallbacks),与 provider 级限流错误配合使用。


7. 类型与 Schema

结构化输出常用 Zod(或 JSON Schema)约束模型返回;Tool 参数同样 schema 化。


8. 阅读顺序

02 Runnable → 03 Model → 04 Message → 05 Tool/Agent → 06 Stream → 07 LangGraph。

总结

LangChain JS 的心智模型:一切皆 Runnable,用 pipe 组链,用 Message 对话,用 LangGraph 管状态机

MIT License.