ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

LangChain.js 全解析:Agent 工程平台的安装、多环境支持、Monorepo 架构与本地开发实践

LangChain.js 全解析:Agent 工程平台的安装、多环境支持、Monorepo 架构与本地开发实践 LangChain.js 全解析Agent 工程平台的安装、多环境支持、Monorepo 架构与本地开发实践【免费下载链接】langchainjsThe agent engineering platform项目地址: https://gitcode.com/GitHub_Trending/la/langchainjs本文以 langchainjs 仓库根目录的 README.md 为核心骨架系统讲解 LangChain.js 作为Agent 工程平台的定位与安装方式并结合仓库源码深入剖析其 pnpm workspaces Turborepo 的 Monorepo 结构、langchain与langchain/core两个核心包的双模块导出机制、Node/Edge/浏览器多运行环境的验证体系以及 examples 与本地开发的完整工作流。读完本篇你可以独立安装并使用 LangChain.js、按需在 Node.js、Cloudflare Workers、Vercel、Deno、Bun 等环境中部署并能直接进入仓库参与开发与集成测试。1. LangChain.js 是什么定位与核心能力根 README.md 将 LangChain.js 定位为The agent engineering platformAgent 工程平台并对其核心定义如下LangChain is a framework for building LLM-powered applications. It helps you chain together interoperable components and third-party integrations to simplify AI application development — all while future-proofing decisions as the underlying technology evolves.即 LangChain 是一个用于构建 LLM 驱动应用的框架通过可互操作的组件与第三方集成把 LLM 应用开发简化为链式组合并在底层技术演进时保护你的技术决策。README 明确给出的六大使用场景见 README.md实时数据增强Real-time data augmentation通过覆盖模型提供商、工具、向量库、检索器的庞大集成库把 LLM 连接到多样的数据源与内外部系统。模型互操作Model interoperability在抽象层之上自由替换模型随行业前沿演进快速适配而不丢失既有工程积累。快速原型Rapid prototyping模块化、组件化的架构让你可以快速构建并迭代 LLM 应用无需从零重建即可测试不同方案与工作流。生产就绪Production-ready features内置对监控、评估、调试的支持通过 LangSmith 等集成并沉淀了经过实战验证的模式与最佳实践。活跃的社区与生态丰富的集成、模板与社区贡献组件持续跟进 AI 最新进展。灵活的抽象层级从快速上手的高层 chain 到细粒度控制的基础组件抽象层级随应用复杂度增长而调整。1.1 快速安装README 的 Quick Install 一节README.md支持 npm、pnpm、yarn 三种包管理器命令如下可直接复制使用npm install -S langchain # 或 pnpm install langchain # 或 yarn add langchain从各核心包的 package.json 可以看到langchain与langchain/core均声明engines: { node: 20 }即在 Node.js 环境中最低要求 Node 20。2. Monorepo 架构pnpm workspaces Turborepolangchainjs 是一个大型 Monorepo。根 package.json 中声明了packageManager: pnpm10.14.0并通过 pnpm-workspace.yaml 定义了工作区范围packages: - libs/* - libs/providers/* - examples - internal/*这对应仓库中四大类目录目录内容代表包libs/核心框架包langchain、langchain/core、langchain/classic、langchain/textsplitters、langchain/mcp-adapterslibs/providers/各家模型/服务的第一方集成langchain/openai、langchain/anthropic、langchain/google-genai、langchain/aws等 30 个examples/官方示例集独立 workspace 包createAgent 系列、multi-agent、llms 等internal/内部工程工具standard-tests、model-profiles、test-helpers、tsconfig构建编排由 Turborepo 完成。根 turbo.json 定义了任务依赖图关键任务包括build:compile依赖上游包的^build:compile先构建依赖方输入为src/**、tsconfig.json、tsdown.config.ts、package.json输出dist/**test依赖build:compile输入包含src/**、tests/**、**/*.test.ts、vitest.config.tstest:int/test:integration/test:standard:int不启用缓存cache: false面向需要外部 API 凭据的集成测试。根 package.json 的 scripts 展示了常用入口pnpm build # turbo build:compile全仓库增量构建 pnpm test:unit # 各包单元测试排除 test-exports-* 与 examples pnpm test:exports:docker # docker compose 运行环境导出测试 pnpm test:ranges:docker # 依赖版本区间测试lowest/latest pnpm lint / pnpm format:check # oxlint 与 oxfmt 检查 pnpm release # changeset publish值得注意的是根 package.json 还维护了一份pnpm.overrides列表如undici、esbuild、sharp等大量版本下限用于锁定传递依赖的安全版本体现大型集成框架对依赖面管理的重视。2.1 核心包langchain与langchain/core的分工langchain/corelibs/langchain-core/package.json当前仓库内版本 1.2.10核心抽象与 schema 层提供 base classes、runnables、messages、prompts、tools、tracers 等。其exports字段暴露了 60 余个子路径如./runnables、./messages、./prompts、./output_parsers、./tracers/langsmith相关能力意味着下游可以只按需引入子模块。langchainlibs/langchain/package.json当前仓库内版本 1.5.11主包langchain/core是其 peerDependency运行时依赖langchain/langgraph^1.4.13、langchain/langgraph-checkpoint与langsmith。从源码结构看主包的入口 libs/langchain/src/index.ts 的再导出清单勾勒出当前版本的 API 重心消息基类BaseMessage、AIMessage、SystemMessage、HumanMessage、ToolMessage等来自langchain/core/messages统一聊天模型工厂initChatModel来自./chat_models/universal.js——一个字符串/配置驱动的模型入口工具原语tool、HeadlessTool、StructuredTool、DynamicTool等Agent 能力整模块再导出./agents/index.js与./agents/middleware/index.jscreateAgent及其预置中间件。这说明当前langchain主包已围绕AgentcreateAgent 中间件而非传统 chain 组织核心 API与 README 中agent engineering platform的定位一致传统的 chains/memory 等经典 API 保留在langchain/classiclibs/langchain-classic中供存量项目使用。2.2 双模块导出ESM / CJS / 浏览器三条件libs/langchain/package.json 的exports是理解同一份源码如何服务多环境的关键。以主入口为例.: { browser: ./dist/browser.js, input: ./src/index.ts, require: { types: ./dist/index.d.cts, default: ./dist/index.cjs }, import: { types: ./dist/index.d.ts, default: ./dist/index.js } }browser条件指向独立的浏览器构建对应 libs/langchain/src/browser.ts供 Webpack/Vite/浏览器直连场景使用require/import分别给出 CJS.cjs.d.cts与 ESM.js.d.ts产物由 tsdown 一次性产出input条件指向src/*.ts供本工作区内的源码级引用配合 internal/tsconfig 与 tsdown 的 input 支持。langchain包还额外导出./browser、./chat_models/universal、./hub、./load、./storage/in_memory、./storage/file_system、./tools等子路径langchain/core的子路径导出更多见 libs/langchain-core/package.json 的 exports 段。这种细粒度子路径 模块条件设计正是 README 中Flexible abstraction layers承诺的落地形式。另外两个核心包对 schema 库的依赖均写成zod: ^3.25.76 || ^4即同时兼容 zod v3 与 v4——仓库中专门设有 environment_tests/test-zod-compat 目录zod-v3 / zod-v4 / zod-mismatch 三组用例验证该承诺。3. 支持环境与多运行时验证体系README 的 Supported Environments 一节README.md声明 LangChain.js 用 TypeScript 编写可在以下环境运行Node.jsESM 和 CommonJS—— 20.x、22.x、24.xCloudflare WorkersVercel / Next.jsBrowser、Serverless 与 Edge 函数Supabase Edge FunctionsBrowser浏览器Deno仓库根目录提供 deno.json 作为 Deno 入口配置Bun这些声明不是口头承诺仓库内置了两套自动化验证体系。3.1 环境测试environment_testsenvironment_tests/README.md 说明环境测试通过隔离的 Docker 容器模拟真实用户环境确保包在不同模块系统ESM、CJS、不同打包器esbuild、Vite、Webpack via Next.js、不同运行时Node.js、Bun、Cloudflare Workers与 TypeScript 编译下的正确性。测试矩阵覆盖测试环境验证内容test-exports-esmESM import/exportstest-exports-cjsCommonJS require/exportstest-exports-esbuildesbuild 打包test-exports-tscTypeScript 编译test-exports-cfCloudflare Workers 兼容性test-exports-vercelNext.js/Vercel 兼容性test-exports-viteVite 打包test-exports-bunBun 运行时其执行方式与 README 一致docker compose -f environment_tests/docker-compose.yml run environment # 例如 docker compose -f environment_tests/docker-compose.yml run test-exports-esbuild执行链路为environment_tests/scripts/docker-entrypoint.sh 启动 → 由 environment_tests/scripts/test-runner.ts 在容器内/app建立沙箱 → 复制测试包与本地 workspace 包 → 对不可用的包将workspace:*依赖替换为已发布版本 →pnpm install --prod后运行 build/test。其核心保证是针对真实发布的包做安装测试而非源码测试。对应根命令即pnpm test:exports:dockerpackage.json。3.2 依赖区间测试dependency_range_testsdependency_range_tests/docker-compose.yml 配合 dependency_range_tests/scripts/langchain/test-with-lowest-deps.sh 与 test-with-latest-deps.sh分别在最低依赖版本与最新依赖版本下验证langchain及各标准提供商包anthropic、cohere、google-vertexai、openai的安装与运行。该机制支撑zod ^3.25.76 || ^4、langsmith 0.5.0 1.0.0这类宽版本区间声明的可靠性对应根命令pnpm test:ranges:docker。3.3 标准测试与模型画像工具internal/目录承载跨包工程能力internal/standard-tests定义提供商包应遵守的标准单元/集成测试套件pnpm test:standard在根目录统一调度internal/model-profiles模型画像的 CLI 与生成器src/cli.ts、src/generator.ts配合各提供商目录下的profiles.toml文件如 libs/providers/langchain-openai/profiles.toml为模型提供结构化画像internal/tsconfig全仓库共享的 TypeScript 基线配置。4. 官方示例集从 Agent 到多智能体examples/是独立 workspace 包examples/package.json依赖了几乎全部第一方提供商与大量第三方集成ChromaDB、Pinecone、Milvus、MongoDB、Redis、pgvector 等。运行方式pnpm start # tsx 直接执行 src/index.ts自动加载 .env pnpm start:dist # 先 tsc 编译再运行产物示例组织examples/src/createAgent/当前主推的 Agent 开发范式含tools.ts、structuredOutput.ts、streaming.ts、supervisor.ts等以及middleware/子目录下的预置中间件演示hitl.ts、summarization.ts、promptCaching.ts、modelCallLimit.ts、llmToolSelector.ts等和dynamicTools/simple.ts、advanced.tsmulti-agent/handoffs、路由、子代理编排handoffs-customer-support.ts、router-knowledge-base.ts、subagents-personal-assistant.ts等llms/、extraction/模型直连与结构化抽取如 OpenAI tool-calling 抽取示例 examples/src/extraction/openai_tool_calling_extraction.tslangchain-classic/chains、memory、retrievers、vectorstores 等经典模块的完整示例库供沿用旧 API 的读者参考。5. 生态版图与包选择策略README 的生态清单README.md与仓库结构相互印证Deep AgentsJS构建在 LangChain 之上的更高层包面向具备规划planning、子代理subagents、文件系统等能力的 Agent是 README 中面向初学者的推荐入口LangGraph低层 Agent 编排框架提供可定制架构、长期记忆与 human-in-the-loop 工作流。本仓库中langchain主包直接依赖langchain/langgraph与langchain/langgraph-checkpoint见 libs/langchain/package.json 的 dependencies 段即 createAgent 的底层运行时即 LangGraph需要更深的状态图编排时应直接面向 LangGraph 编程LangSmith构建、测试、监控 LLM 应用的开发者平台langchain与langchain/core均依赖langsmithSDK仓库内 tracers 与 standard-tests 也围绕该观测体系组织Integrations即libs/providers/下的第一方集成矩阵。从 pnpm-workspace.yaml 的libs/providers/*与目录清单看当前涵盖 openai、anthropic、googlegenai/vertexai/vertexai-web/gauth/webauth/common、aws、azure 系cloudflare、cohere、deepseek、groq、mistralai、ollama、xai、openrouter、perplexity、fireworks、together-ai、ibm以及向量/检索/记忆类集成pinecone、qdrant、weaviate、pgvector、mongodb、redis、neo4j、exa、tavily、ibm 等。选型建议以当前仓库为准新项目 Agent 开发 →langchain主包的createAgentmiddleware示例见examples/src/createAgent/只写模型与工具层 → 直接用langchain/core 具体提供商包如langchain/openai保持依赖最小维护存量 chains/memory 代码 →langchain/classiclibs/langchain-classic接入 MCP 服务器工具 →langchain/mcp-adapterslibs/langchain-mcp-adapters 自带 SSE/streamable HTTP 示例文本切分 →langchain/textsplitters已拆分为独立包。6. 本地开发工作流结合根 package.json 与 CONTRIBUTING.md仓库不再接受新集成进入本仓库新集成须作为独立 npm 包发布在仓库内参与开发的标准流程为环境准备要求 Node v24.xnode -v确认建议通过 nvm 切换nvm use安装依赖pnpm install先构建核心包其他包依赖其产物pnpm --filter langchain/core build常用任务均可在根目录通过pnpm --filter package定向执行pnpm --filter langchain build # 构建主包tsdown pnpm --filter langchain test # 单元测试 类型测试*.test.ts / .test-d.ts pnpm --filter langchain test:integration # 集成测试需 .env 中的 API 凭据 pnpm lint pnpm format:check # oxlint / oxfmt 检查测试文件约定单元测试命名*.test.ts集成测试命名*.int.test.ts需外部 API 凭据通常建议用pnpm --filter package test:single逐个运行类型测试命名.test-d.ts并使用 vitest 的expectTypeOf断言。CI 侧的完整验证由根脚本串联pnpm testtest:unittest:exports:docker另有test:standardstandard 套件与test:ranges:docker依赖区间两条 Docker 化流水线。7. 小结回到 README.md 的主线LangChain.js 以可互操作组件 第三方集成为核心设计当前仓库内langchain1.5.11与langchain/core1.2.10围绕 AgentcreateAgent 中间件组织 API底层由 LangGraph 提供运行时通过 exports 多条件构建与environment_tests的八环境 Docker 矩阵、dependency_range_tests的版本区间矩阵兑现了对 Node 20/22/24、Cloudflare Workers、Vercel/Next.js、浏览器、Deno、Bun 的多环境支持承诺配合 examples 示例集、changesets 发布流程与 oxlint/oxfmt/vitest 工具链构成一个可直接安装使用、也可深入参与开发的完整 TypeScript Monorepo。版本说明文中包版本、Node 要求、zod 兼容区间均取自当前仓库各 package.json随仓库演进可能变化请以仓库实际文件为准。【免费下载链接】langchainjsThe agent engineering platform项目地址: https://gitcode.com/GitHub_Trending/la/langchainjs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表