# BackendProtocol

> **Class** in `deepagents`

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

Protocol for pluggable memory backends (single, unified).

Backends can store files in different locations (state, filesystem, database, etc.)
and provide a uniform interface for file operations.

All file data is represented as dicts with the following structure::

    {
        "content": str,  # Text content (utf-8) or base64-encoded binary
        "encoding": str,  # "utf-8" for text, "base64" for binary data
        "created_at": str,  # ISO format timestamp
        "modified_at": str,  # ISO format timestamp
    }

## Signature

```python
BackendProtocol()
```

## Description

**Note:**

Legacy data may still contain `"content": list[str]` (lines split on
`\\n`).  Backends accept this for backwards compatibility and emit a
`DeprecationWarning`.

## Extends

- `abc.ABC`

## Methods

- [`ls()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/ls)
- [`als()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/als)
- [`read()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/read)
- [`aread()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/aread)
- [`grep()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/grep)
- [`agrep()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/agrep)
- [`glob()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/glob)
- [`aglob()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/aglob)
- [`write()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/write)
- [`awrite()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/awrite)
- [`edit()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/edit)
- [`aedit()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/aedit)
- [`upload_files()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/upload_files)
- [`aupload_files()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/aupload_files)
- [`download_files()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/download_files)
- [`adownload_files()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/adownload_files)
- [`ls_info()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/ls_info)
- [`als_info()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/als_info)
- [`glob_info()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/glob_info)
- [`aglob_info()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/aglob_info)
- [`grep_raw()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/grep_raw)
- [`agrep_raw()`](https://reference.langchain.com/python/deepagents/backends/protocol/BackendProtocol/agrep_raw)

---

[View source on GitHub](https://github.com/langchain-ai/deepagents/blob/3bcc51a95da80094cfc8bc4bcaf25dc1e2ad8f44/libs/deepagents/deepagents/backends/protocol.py#L309)