# langchain

> Python package

📖 [View in docs](https://reference.langchain.com/python/langchain)

## Classes

- [`StructuredOutputError`](https://reference.langchain.com/python/langchain/agents/structured_output/StructuredOutputError)
- [`MultipleStructuredOutputsError`](https://reference.langchain.com/python/langchain/agents/structured_output/MultipleStructuredOutputsError)
- [`StructuredOutputValidationError`](https://reference.langchain.com/python/langchain/agents/structured_output/StructuredOutputValidationError)
- [`ToolStrategy`](https://reference.langchain.com/python/langchain/agents/structured_output/ToolStrategy)
- [`ProviderStrategy`](https://reference.langchain.com/python/langchain/agents/structured_output/ProviderStrategy)
- [`OutputToolBinding`](https://reference.langchain.com/python/langchain/agents/structured_output/OutputToolBinding)
- [`ProviderStrategyBinding`](https://reference.langchain.com/python/langchain/agents/structured_output/ProviderStrategyBinding)
- [`AutoStrategy`](https://reference.langchain.com/python/langchain/agents/structured_output/AutoStrategy)
- [`ModelFallbackMiddleware`](https://reference.langchain.com/python/langchain/agents/middleware/model_fallback/ModelFallbackMiddleware)
- [`ContextEdit`](https://reference.langchain.com/python/langchain/agents/middleware/context_editing/ContextEdit)
- [`ClearToolUsesEdit`](https://reference.langchain.com/python/langchain/agents/middleware/context_editing/ClearToolUsesEdit)
- [`ContextEditingMiddleware`](https://reference.langchain.com/python/langchain/agents/middleware/context_editing/ContextEditingMiddleware)
- [`ShellToolState`](https://reference.langchain.com/python/langchain/agents/middleware/shell_tool/ShellToolState)
- [`CommandExecutionResult`](https://reference.langchain.com/python/langchain/agents/middleware/shell_tool/CommandExecutionResult)
- [`ShellSession`](https://reference.langchain.com/python/langchain/agents/middleware/shell_tool/ShellSession)
- [`ShellToolMiddleware`](https://reference.langchain.com/python/langchain/agents/middleware/shell_tool/ShellToolMiddleware)
- [`FilesystemFileSearchMiddleware`](https://reference.langchain.com/python/langchain/agents/middleware/file_search/FilesystemFileSearchMiddleware)
- [`ModelRetryMiddleware`](https://reference.langchain.com/python/langchain/agents/middleware/model_retry/ModelRetryMiddleware)
- [`ToolCallLimitState`](https://reference.langchain.com/python/langchain/agents/middleware/tool_call_limit/ToolCallLimitState)
- [`ToolCallLimitExceededError`](https://reference.langchain.com/python/langchain/agents/middleware/tool_call_limit/ToolCallLimitExceededError)
- [`ToolCallLimitMiddleware`](https://reference.langchain.com/python/langchain/agents/middleware/tool_call_limit/ToolCallLimitMiddleware)
- [`Todo`](https://reference.langchain.com/python/langchain/agents/middleware/todo/Todo)
- [`PlanningState`](https://reference.langchain.com/python/langchain/agents/middleware/todo/PlanningState)
- [`TodoListMiddleware`](https://reference.langchain.com/python/langchain/agents/middleware/todo/TodoListMiddleware)
- [`PIIMatch`](https://reference.langchain.com/python/langchain/agents/middleware/_redaction/PIIMatch)
- [`PIIDetectionError`](https://reference.langchain.com/python/langchain/agents/middleware/_redaction/PIIDetectionError)
- [`RedactionRule`](https://reference.langchain.com/python/langchain/agents/middleware/_redaction/RedactionRule)
- [`ResolvedRedactionRule`](https://reference.langchain.com/python/langchain/agents/middleware/_redaction/ResolvedRedactionRule)
- [`LLMToolSelectorMiddleware`](https://reference.langchain.com/python/langchain/agents/middleware/tool_selection/LLMToolSelectorMiddleware)
- [`ToolRetryMiddleware`](https://reference.langchain.com/python/langchain/agents/middleware/tool_retry/ToolRetryMiddleware)
- [`LLMToolEmulator`](https://reference.langchain.com/python/langchain/agents/middleware/tool_emulator/LLMToolEmulator)
- [`BaseExecutionPolicy`](https://reference.langchain.com/python/langchain/agents/middleware/_execution/BaseExecutionPolicy)
- [`HostExecutionPolicy`](https://reference.langchain.com/python/langchain/agents/middleware/_execution/HostExecutionPolicy)
- [`CodexSandboxExecutionPolicy`](https://reference.langchain.com/python/langchain/agents/middleware/_execution/CodexSandboxExecutionPolicy)
- [`DockerExecutionPolicy`](https://reference.langchain.com/python/langchain/agents/middleware/_execution/DockerExecutionPolicy)
- [`ModelCallLimitState`](https://reference.langchain.com/python/langchain/agents/middleware/model_call_limit/ModelCallLimitState)
- [`ModelCallLimitExceededError`](https://reference.langchain.com/python/langchain/agents/middleware/model_call_limit/ModelCallLimitExceededError)
- [`ModelCallLimitMiddleware`](https://reference.langchain.com/python/langchain/agents/middleware/model_call_limit/ModelCallLimitMiddleware)
- [`PIIMiddleware`](https://reference.langchain.com/python/langchain/agents/middleware/pii/PIIMiddleware)
- [`ModelRequest`](https://reference.langchain.com/python/langchain/agents/middleware/types/ModelRequest)
- [`ModelResponse`](https://reference.langchain.com/python/langchain/agents/middleware/types/ModelResponse)
- [`ExtendedModelResponse`](https://reference.langchain.com/python/langchain/agents/middleware/types/ExtendedModelResponse)
- [`OmitFromSchema`](https://reference.langchain.com/python/langchain/agents/middleware/types/OmitFromSchema)
- [`AgentState`](https://reference.langchain.com/python/langchain/agents/middleware/types/AgentState)
- [`AgentMiddleware`](https://reference.langchain.com/python/langchain/agents/middleware/types/AgentMiddleware)
- [`Action`](https://reference.langchain.com/python/langchain/agents/middleware/human_in_the_loop/Action)
- [`ActionRequest`](https://reference.langchain.com/python/langchain/agents/middleware/human_in_the_loop/ActionRequest)
- [`ReviewConfig`](https://reference.langchain.com/python/langchain/agents/middleware/human_in_the_loop/ReviewConfig)
- [`HITLRequest`](https://reference.langchain.com/python/langchain/agents/middleware/human_in_the_loop/HITLRequest)
- [`ApproveDecision`](https://reference.langchain.com/python/langchain/agents/middleware/human_in_the_loop/ApproveDecision)
- [`EditDecision`](https://reference.langchain.com/python/langchain/agents/middleware/human_in_the_loop/EditDecision)
- [`RejectDecision`](https://reference.langchain.com/python/langchain/agents/middleware/human_in_the_loop/RejectDecision)
- [`HITLResponse`](https://reference.langchain.com/python/langchain/agents/middleware/human_in_the_loop/HITLResponse)
- [`InterruptOnConfig`](https://reference.langchain.com/python/langchain/agents/middleware/human_in_the_loop/InterruptOnConfig)
- [`HumanInTheLoopMiddleware`](https://reference.langchain.com/python/langchain/agents/middleware/human_in_the_loop/HumanInTheLoopMiddleware)
- [`SummarizationMiddleware`](https://reference.langchain.com/python/langchain/agents/middleware/summarization/SummarizationMiddleware)

## Functions

- [`init_embeddings()`](https://reference.langchain.com/python/langchain/embeddings/base/init_embeddings)
- [`init_chat_model()`](https://reference.langchain.com/python/langchain/chat_models/base/init_chat_model)
- [`create_agent()`](https://reference.langchain.com/python/langchain/agents/factory/create_agent)
- [`shell_tool()`](https://reference.langchain.com/python/langchain/agents/middleware/shell_tool/ShellToolMiddleware/__init__/shell_tool)
- [`glob_search()`](https://reference.langchain.com/python/langchain/agents/middleware/file_search/FilesystemFileSearchMiddleware/__init__/glob_search)
- [`grep_search()`](https://reference.langchain.com/python/langchain/agents/middleware/file_search/FilesystemFileSearchMiddleware/__init__/grep_search)
- [`write_todos()`](https://reference.langchain.com/python/langchain/agents/middleware/todo/write_todos)
- [`write_todos()`](https://reference.langchain.com/python/langchain/agents/middleware/todo/TodoListMiddleware/__init__/write_todos)
- [`detect_email()`](https://reference.langchain.com/python/langchain/agents/middleware/_redaction/detect_email)
- [`detect_credit_card()`](https://reference.langchain.com/python/langchain/agents/middleware/_redaction/detect_credit_card)
- [`detect_ip()`](https://reference.langchain.com/python/langchain/agents/middleware/_redaction/detect_ip)
- [`detect_mac_address()`](https://reference.langchain.com/python/langchain/agents/middleware/_redaction/detect_mac_address)
- [`detect_url()`](https://reference.langchain.com/python/langchain/agents/middleware/_redaction/detect_url)
- [`apply_strategy()`](https://reference.langchain.com/python/langchain/agents/middleware/_redaction/apply_strategy)
- [`resolve_detector()`](https://reference.langchain.com/python/langchain/agents/middleware/_redaction/resolve_detector)
- [`hook_config()`](https://reference.langchain.com/python/langchain/agents/middleware/types/hook_config)
- [`before_model()`](https://reference.langchain.com/python/langchain/agents/middleware/types/before_model)
- [`after_model()`](https://reference.langchain.com/python/langchain/agents/middleware/types/after_model)
- [`before_agent()`](https://reference.langchain.com/python/langchain/agents/middleware/types/before_agent)
- [`after_agent()`](https://reference.langchain.com/python/langchain/agents/middleware/types/after_agent)
- [`dynamic_prompt()`](https://reference.langchain.com/python/langchain/agents/middleware/types/dynamic_prompt)
- [`wrap_model_call()`](https://reference.langchain.com/python/langchain/agents/middleware/types/wrap_model_call)
- [`wrap_tool_call()`](https://reference.langchain.com/python/langchain/agents/middleware/types/wrap_tool_call)
- [`validate_retry_params()`](https://reference.langchain.com/python/langchain/agents/middleware/_retry/validate_retry_params)
- [`should_retry_exception()`](https://reference.langchain.com/python/langchain/agents/middleware/_retry/should_retry_exception)
- [`calculate_delay()`](https://reference.langchain.com/python/langchain/agents/middleware/_retry/calculate_delay)

## Types

- [`ResponseFormat`](https://reference.langchain.com/python/langchain/agents/structured_output/ResponseFormat)
- [`ModelCallResult`](https://reference.langchain.com/python/langchain/agents/middleware/types/ModelCallResult)
- [`Decision`](https://reference.langchain.com/python/langchain/agents/middleware/human_in_the_loop/Decision)
- [`RetryOn`](https://reference.langchain.com/python/langchain/agents/middleware/_retry/RetryOn)
- [`OnFailure`](https://reference.langchain.com/python/langchain/agents/middleware/_retry/OnFailure)
- [`ContextSize`](https://reference.langchain.com/python/langchain/agents/middleware/summarization/ContextSize)
