LangChain API 参考文档 📚 概述 LangChain 是一个用于构建由大型语言模型(LLM)驱动的应用程序和代理的框架。本文档整理了 LangChain 主要模块中的Classes(类) 、Functions(函数) 、Modules(模块) 和Types(类型) 的完整列表及其功能说明。
🎯 Classes(类) 结构化输出错误类 类名 功能说明 StructuredOutputError 结构化输出错误的基类 MultipleStructuredOutputsError 当模型返回多个结构化输出工具调用但只期望一个时的异常 StructuredOutputValidationError 当结构化输出工具调用参数无法根据约束解析时发生
结构化输出策略类 类名 功能说明 ToolStrategy 使用工具调用策略处理模型响应 ProviderStrategy 使用模型提供商的原生结构化输出方法 OutputToolBinding 用于跟踪结构化输出工具的元数据信息 ProviderStrategyBinding 用于跟踪原生结构化输出元数据的信息 AutoStrategy 自动选择最佳的结构化输出策略
Shell 执行策略类 类名 功能说明 BaseExecutionPolicy 持久化 Shell 会话的配置契约 HostExecutionPolicy 在宿主进程上直接运行 Shell CodexSandboxExecutionPolicy 通过 Codex CLI 沙箱运行 Shell DockerExecutionPolicy 在专用 Docker 容器中运行 Shell
模型调用限制中间件类 类名 功能说明 ModelCallLimitState ModelCallLimitMiddleware 的状态架构 ModelCallLimitExceededError 当模型调用限制超出时会抛出的异常 ModelCallLimitMiddleware 追踪模型调用计数并强制执行限制的中间件
人在回路中间件类 类名 功能说明 Action 表示一个具有名称和参数的操作 ActionRequest 表示具有名称、参数和描述的操作请求 ReviewConfig 审查人在回路请求的策略配置 HITLRequest 对人类反馈的请求,用于获取模型请求的一系列操作 ApproveDecision 当人类批准操作时返回的响应 EditDecision 当人类编辑操作时返回的响应 RejectDecision 当人类拒绝操作时返回的响应 HITLResponse HITLRequest 的响应有效负载 InterruptOnConfig 要求人在回路中的操作的配置 HumanInTheLoopMiddleware 实现人在回路中的中间件
隐私数据保护类 类名 功能说明 PIIDetectionError 从内容中检测个人可识别信息(PII)失败时发生的异常 RedactionRule 处理单一 PII 类型的配置 ResolvedRedactionRule 解析好的、准备好执行的隐私保护规则 PIIMiddleware 检测和处理对话中的个人可识别信息(PII)的中间件
对话摘要中间件类 类名 功能说明 SummarizationMiddleware 当接近令牌限制时对对话历史进行摘要的中间件
中间件基础类 类名 功能说明 ModelRequest 代理的模型请求信息 ModelResponse 模型执行返回的响应,包括消息和可选的结构化输出 ExtendedModelResponse 带有来自 ‘wrap_model_call’ 中间件的可选"命令"的模型响应 OmitFromSchema 注解,用于标记状态属性是否从输入或输出架构中省略 AgentState 代理的状态架构 AgentMiddleware 代理中间件的基类
Shell 工具中间件类 类名 功能说明 ShellToolState 用于追踪 Shell 会话资源的代理状态扩展 CommandExecutionResult 命令执行的结构化结果 ShellSession 支持顺序命令执行的持久化 Shell 会话 ShellToolMiddleware 为代理注册持久化 Shell 工具的中间件
工具调用限制类 类名 功能说明 ToolCallLimitState ToolCallLimitMiddleware 的状态架构 ToolCallLimitExceededError 当工具调用限制超出时会抛出的异常 ToolCallLimitMiddleware 在代理执行期间追踪和强制工具调用限制的中间件
上下文编辑类 类名 功能说明 ContextEdit 描述上下文编辑策略的协议 ClearToolUsesEdit 当令牌限制超出时清除工具输出的配置 ContextEditingMiddleware 自动修剪工具结果以管理上下文大小的中间件
高级中间件类 类名 功能说明 ToolRetryMiddleware 使用可配置回退自动重试失败工具调用的中间件 ModelFallbackMiddleware 在出错时自动回退到替代模型的中间件 FilesystemFileSearchMiddleware 提供对文件系统文件的 Glob 和 Grep 搜索的中间件 ModelRetryMiddleware 使用可配置回退自动重试失败模型调用的中间件
Todo 管理中间件类 类名 功能说明 Todo 一个单独的待办事项,包含内容和状态 PlanningState Todo 中间件的状态架构 WriteTodosInput write_todos 工具的输入架构 TodoListMiddleware 为代理提供待办事项列表管理功能的中间件
工具仿真和选择类 类名 功能说明 LLMToolEmulator 使用 LLM 而非执行他们的指定工具的仿真器 LLMToolSelectorMiddleware 在调用主模型之前使用 LLM 选择相关工具的中间件
🔧 Functions(函数) 代理工厂函数 函数名 功能说明 create_agent 创建一个代理图,循环调用工具直到满足停止条件
PII 检测函数 函数名 功能说明 detect_email 检测内容中的电子邮件地址 detect_credit_card 使用 Luhn 验证检测内容中的信用卡号码 detect_ip 检测内容中的 IPv4 或 IPv6 地址 detect_mac_address 检测内容中的 MAC 地址 detect_url 使用正则表达式和标准库验证检测内容中的 URL
隐私保护策略函数 函数名 功能说明 apply_strategy 将配置的策略应用于内容中的匹配项 resolve_detector 为给定的配置返回一个可调用的检测器
中间件装饰器函数 函数名 功能说明 hook_config 装饰器,用于在中间件方法中配置钩子行为 before_model 装饰器,用于动态创建具有 before_model 钩子的中间件 after_model 装饰器,用于动态创建具有 after_model 钩子的中间件 before_agent 装饰器,用于动态创建具有 before_agent 钩子的中间件 after_agent 装饰器,用于动态创建具有 after_agent 钩子的中间件 dynamic_prompt 装饰器,用于为模型动态生成系统提示 wrap_model_call 从函数创建 wrap_model_call 钩子中间件 wrap_tool_call 从函数创建 wrap_tool_call 钩子中间件
Shell 和文件搜索函数 函数名 功能说明 shell_tool 提供 Shell 命令执行功能的工具 glob_search 快速文件模式匹配工具,适用于任何代码库大小 grep_search 快速内容搜索工具,适用于任何代码库大小
任务管理函数 函数名 功能说明 write_todos 为当前工作会话创建和管理结构化任务列表
重试功能函数 函数名 功能说明 validate_retry_params 验证重试参数 should_retry_exception 检查异常是否应触发重试 calculate_delay 计算带有指数退避和可选抖动的重试尝试的延迟
模型初始化函数 函数名 功能说明 init_embeddings 从模型名称和可选提供商初始化向量模型 init_chat_model 使用统一接口从任何支持的提供商初始化聊天模型
📦 Modules(模块) 核心模块 模块名 功能说明 langchain LangChain 的主入口点 tools 工具集合模块 tool_node 用于向后兼容导入的工具文件
代理模块 模块名 功能说明 agents 使用 LangChain 构建代理的入口点 agents.factory 支持中间件的代理工厂 agents.structured_output 用于设置代理响应格式的类型
中间件模块 模块名 功能说明 agents.middleware 使用代理中间件插件的入口点 agents.middleware.model_call_limit 代理的调用追踪中间件 agents.middleware.human_in_the_loop 人在回路中间件 agents.middleware.redaction PII 隐私数据保护(隐私数据脱敏)中间件 agents.middleware.summarization 对话摘要中间件 agents.middleware.types 中间件类型定义和基类 agents.middleware.shell_tool Shell 工具中间件 agents.middleware.tool_call_limit 工具调用限制追踪中间件 agents.middleware.context_editing 上下文编辑和修剪中间件 agents.middleware._execution Shell 执行策略模块 agents.middleware._redaction PII 检测和隐私保护实现 agents.middleware._retry 重试逻辑的基础实现 agents.middleware.pii PII 中间件实现 agents.middleware.tool_retry 工具调用重试中间件 agents.middleware.model_fallback 模型回退中间件 agents.middleware.file_search 文件搜索工具中间件 agents.middleware.todo 任务管理中间件 agents.middleware.tool_emulator 工具仿真中间件 agents.middleware.tool_selection 基于 LLM 的工具选择中间件 agents.middleware.model_retry 模型调用重试中间件
速率限制模块 模块名 功能说明 rate_limiters 速率限制器的基础抽象和内存实现
向量模块 模块名 功能说明 embeddings 向量模型 embeddings.base 向量模型的工厂函数
聊天模型模块 模块名 功能说明 chat_models 在 LangChain 中使用聊天模型的入口点 chat_models.base 聊天模型的工厂函数
消息模块 🏷️ Types(类型) 响应格式与决策类型 类型名 功能说明 ResponseFormat 所有支持的响应格式策略的联合类型 Decision 人类决策响应的联合类型(批准、编辑或拒绝)
上下文与调用结果类型 类型名 功能说明 ContextSize 上下文大小规范的联合类型 ModelCallResult 模型调用处理程序返回值的类型别名
重试配置类型 类型名 功能说明 RetryOn 用于指定要重试的异常的类型 OnFailure 用于指定失败处理行为的类型
🚀 快速入门 安装 LangChain pipinstall langchain创建简单代理 from langchain. agentsimport create_agentfrom langchain. toolsimport toolfrom langchain. chat_modelsimport init_chat_model# 定义工具 @tool def calculator ( expression: str ) - > str : """Evaluate a math expression""" return str ( eval ( expression) ) # 初始化模型 model= init_chat_model( "gpt-4" ) # 创建代理 agent= create_agent( model= model, tools= [ calculator] , ) 使用中间件增强代理 from langchain. agents. middlewareimport ( HumanInTheLoopMiddleware, ModelCallLimitMiddleware) # 添加人在回路中间件 agent_with_hitl= agent. with_middleware( HumanInTheLoopMiddleware( ) ) # 添加模型调用限制 agent_with_limits= agent_with_hitl. with_middleware( ModelCallLimitMiddleware( max_calls= 10 ) ) 📖 相关资源 官方文档 : LangChain DocsAPI 参考 : API ReferenceChat LangChain : 在线对话GitHub : LangChain Repository提示 : 这份文档是基于 LangChain 官方 API 参考生成的,如有更新请参考官方最新文档。