LangChain Reference home pageLangChain ReferenceLangChain Reference
  • GitHub
  • Main Docs
Deep Agents
LangChain
LangGraph
Integrations
LangSmith
  • Overview
    • Overview
    • Caches
    • Callbacks
    • Documents
    • Document loaders
    • Embeddings
    • Exceptions
    • Language models
    • Serialization
    • Output parsers
    • Prompts
    • Rate limiters
    • Retrievers
    • Runnables
    • Utilities
    • Vector stores
    MCP Adapters
    Standard Tests
    Text Splitters
    ⌘I

    LangChain Assistant

    Ask a question to get started

    Enter to send•Shift+Enter new line

    Menu

    OverviewCachesCallbacksDocumentsDocument loadersEmbeddingsExceptionsLanguage modelsSerializationOutput parsersPromptsRate limitersRetrieversRunnablesUtilitiesVector stores
    MCP Adapters
    Standard Tests
    Text Splitters
    Language
    Theme
    Pythonlangchain-coreloadloadloads
    Function●Since v0.1

    loads

    Copy
    loads(
      text: str,
      *,
      allowed_objects: Iterable[AllowedObject] | Literal
    View source on GitHub
    [
    'all'
    ,
    'core'
    ,
    'messages'
    ]
    |
    None
    =
    None
    ,
    secrets_map
    :
    dict
    [
    str
    ,
    str
    ]
    |
    None
    =
    None
    ,
    valid_namespaces
    :
    list
    [
    str
    ]
    |
    None
    =
    None
    ,
    secrets_from_env
    :
    bool
    =
    False
    ,
    additional_import_mappings
    :
    dict
    [
    tuple
    [
    str
    ,
    .
    .
    .
    ]
    ,
    tuple
    [
    str
    ,
    .
    .
    .
    ]
    ]
    |
    None
    =
    None
    ,
    ignore_unserializable_fields
    :
    bool
    =
    False
    ,
    init_validator
    :
    InitValidator
    |
    None
    =
    default_init_validator
    )
    ->
    Any

    Parameters

    NameTypeDescription
    text*str

    The string to load.

    allowed_objectsIterable[AllowedObject] | Literal['all', 'core', 'messages'] | None
    Default:None

    Allowlist of classes that can be deserialized.

    • Explicit list of classes (recommended for untrusted input): only those specific classes are allowed.
    • 'messages': chat-message classes only. Safe for untrusted input.
    • 'core' (current default): unsafe with untrusted manifests. Classes defined in the serialization mappings under langchain_core.
    • 'all': unsafe with untrusted manifests. Every class in the serialization mappings, including partner chat models and LLMs and their constructor kwargs. See langchain_core.load.mapping for the full list.
    • []: Disallow all deserialization (will raise on any object).
    secrets_mapdict[str, str] | None
    Default:None
    valid_namespaceslist[str] | None
    Default:None
    secrets_from_envbool
    Default:False
    additional_import_mappingsdict[tuple[str, ...], tuple[str, ...]] | None
    Default:None
    ignore_unserializable_fieldsbool
    Default:False
    init_validatorInitValidator | None
    Default:default_init_validator

    Revive a LangChain class from a JSON string.

    Equivalent to load(json.loads(text)).

    Only classes in the allowlist can be instantiated. The default allowlist includes core LangChain types (messages, prompts, documents, etc.). See langchain_core.load.mapping for the full list.

    Do not use with untrusted input

    A serialized payload may carry constructor kwargs that affect runtime behavior (custom base_url, headers, model name, etc.), so it should be treated as executable configuration rather than plain text. For example, deserializing a model whose base_url points at an attacker-controlled host can result in Server-Side Request Forgery (SSRF); this is expected behavior, since loads() faithfully reconstructs the configuration in the manifest. If the source is untrusted, avoid calling loads() on it; if you must, pass allowed_objects='messages' or an explicit list of message classes. See the module-level threat model for details.

    A map of secrets to load.

    Only include the specific secrets the serialized object requires. If a secret is not found in the map, it will be loaded from the environment if secrets_from_env is True.

    Additional namespaces (modules) to allow during deserialization, beyond the default trusted namespaces.

    Whether to load secrets from the environment.

    A crafted payload can name arbitrary environment variables in its secret fields, so enabling this on untrusted data can leak sensitive values. Keep this False (the default) unless the serialized data is fully trusted.

    A dictionary of additional namespace mappings.

    You can use this to override default mappings or add new mappings.

    When allowed_objects is None (using defaults), paths from these mappings are also added to the allowed class paths.

    Whether to ignore unserializable fields.

    Optional callable to validate kwargs before instantiation.

    If provided, this function is called with (class_path, kwargs) where class_path is the class path tuple and kwargs is the kwargs dict. The validator should raise an exception if the object should not be deserialized, otherwise return None.

    Defaults to default_init_validator which blocks jinja2 templates.