> ## Documentation Index
> Fetch the complete documentation index at: https://cndoc-langchain.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 实现 LangChain 集成

集成包是用户可以安装并在其项目中使用的 Python 包。它们实现了一个或多个符合 LangChain 接口标准的组件。

LangChain 组件是 [`langchain-core`](https://github.com/langchain-ai/langchain/tree/master/libs/core) 中基类的子类。示例包括[聊天模型](/oss/javascript/integrations/chat)、[工具](/oss/javascript/integrations/tools)、[检索器](/oss/javascript/integrations/retrievers)等。

你的集成包通常将实现至少一个此类组件的子类。展开下方的选项卡以查看每个组件的详细信息。

<Tabs>
  <Tab title="聊天模型">
    聊天模型是 [`BaseChatModel`](https://reference.langchain.com/javascript/langchain-core/language_models/chat_models/BaseChatModel) 类的子类。它们实现了生成聊天补全、处理消息格式化和管理模型参数的方法。

    <Warning>
      聊天模型集成指南目前正在编写中。在此期间，请阅读[聊天模型概念指南](/oss/javascript/langchain/models)以了解 LangChain 聊天模型的工作原理。你也可以参考 [LangChain 仓库](https://github.com/langchain-ai/langchainjs/tree/main/libs/providers)中的现有集成。
    </Warning>
  </Tab>

  <Tab title="嵌入">
    嵌入模型是 [`Embeddings`](https://reference.langchain.com/javascript/langchain-core/embeddings/Embeddings) 类的子类。

    <Warning>
      嵌入模型集成指南目前正在编写中。在此期间，请阅读[嵌入模型概念指南](/oss/javascript/integrations/embeddings)以了解 LangChain 嵌入模型的工作原理。
    </Warning>
  </Tab>

  <Tab title="工具">
    工具主要有两种使用方式：

    1. 定义一个“输入模式”或“参数模式”，与文本请求一起传递给聊天模型的工具调用功能，以便聊天模型可以生成“工具调用”或调用工具所需的参数。
    2. 接收上述生成的“工具调用”，执行某些操作并返回一个响应，该响应可以作为 ToolMessage 传递回聊天模型。

    工具类必须继承自 [`BaseTool`](https://reference.langchain.com/javascript/classes/_langchain_core.tools.StructuredTool.html) 基类。此接口有 3 个属性和 2 个方法，需要在子类中实现。

    <Warning>
      工具集成指南目前正在编写中。在此期间，请阅读[工具概念指南](/oss/javascript/langchain/tools)以了解 LangChain 工具的工作原理。
    </Warning>
  </Tab>

  <Tab title="中间件">
    [中间件](/oss/javascript/langchain/middleware/overview)允许你通过挂钩模型调用、工具调用和代理生命周期事件来自定义代理行为。中间件类继承自 [`AgentMiddleware`](https://reference.langchain.com/javascript/langchain/index/AgentMiddleware) 基类。

    在构建集成之前，请阅读[自定义中间件指南](/oss/javascript/langchain/middleware/custom)以了解挂钩、状态更新和中间件模式。

    中间件集成通常分为两类：

    | 类型         | 描述         | 示例                  |
    | ---------- | ---------- | ------------------- |
    | **特定于提供商** | 利用提供商的独特能力 | 提示缓存、原生工具执行、内容审核    |
    | **跨提供商**   | 适用于任何模型或工具 | 速率限制、PII 检测、日志记录、护栏 |

    特定于提供商的中间件位于提供商的集成包中（例如 `langchain-anthropic`）。跨提供商的中间件可以作为独立包发布。

    你也可以将这些现有的中间件集合作为参考：

    <CardGroup cols={2}>
      <Card title="Anthropic 中间件" icon="robot" href="/oss/javascript/integrations/middleware/anthropic">
        用于提示缓存、工具、内存和文件搜索的多个中间件类。
      </Card>

      <Card title="自定义中间件指南" icon="code" href="/oss/javascript/langchain/middleware/custom">
        关于挂钩、状态更新和模式的完整参考。
      </Card>
    </CardGroup>
  </Tab>

  <Tab title="检查点">
    检查点在 LangGraph 中启用[持久化](/oss/javascript/langgraph/persistence)，允许代理在交互之间保存和恢复状态。

    有关实现示例，请参阅 [LangGraph 仓库](https://github.com/langchain-ai/langgraph/tree/main/libs)中的现有检查点集成。
  </Tab>

  <Tab title="沙箱">
    沙箱集成使 [Deep Agents](/oss/javascript/deepagents/overview) 能够在隔离环境中运行代码。
  </Tab>
</Tabs>

***

<div className="source-links">
  <Callout icon="terminal-2">
    [将这些文档](/use-these-docs)通过 MCP 连接到 Claude、VSCode 等，以获取实时答案。
  </Callout>

  <Callout icon="edit">
    [在 GitHub 上编辑此页面](https://github.com/langchain-ai/docs/edit/main/src/oss/contributing/implement-langchain.mdx) 或 [提交问题](https://github.com/langchain-ai/docs/issues/new/choose)。
  </Callout>
</div>
