> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mirage.strukto.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# LangChain (Deep Agents)

> Back Deep Agents with a Mirage workspace via LangchainWorkspace.

[Deep Agents](https://github.com/langchain-ai/deepagents) is LangChain's framework for long-horizon coding agents. It accepts a pluggable `backend` for filesystem and shell operations, and Mirage ships one.

## Install

```bash theme={null}
uv add 'mirage-ai[deepagents]' langchain-anthropic
```

This pulls in `deepagents>=0.6.12`. Bring your own LangChain chat model (`langchain-anthropic`, `langchain-openai`, etc.).

## Usage

```python theme={null}
from deepagents import create_deep_agent
from langchain_anthropic import ChatAnthropic

from mirage import MountMode, Workspace
from mirage.agents.langchain import (
    LangchainWorkspace,
    build_system_prompt,
    extract_text,
)
from mirage.resource.ram import RAMResource

ws = Workspace({"/": RAMResource()}, mode=MountMode.WRITE)

agent = create_deep_agent(
    model=ChatAnthropic(model="claude-sonnet-4-20250514"),
    system_prompt=build_system_prompt(
        mount_info={"/": "In-memory filesystem (read/write)"},
    ),
    backend=LangchainWorkspace(ws),
)

result = agent.invoke({
    "messages": [{"role": "user", "content": "Create /report.md and summarize."}],
})
for text in extract_text(result["messages"][-1:]):
    print(text)
```

## Multimodal files

`read_file` can pass images, PDFs, audio, video, PPT, and PPTX files from a Mirage mount to a model as multimodal content. The selected model and provider must support the corresponding input type. Text files continue to use line-based pagination.

## Exports

| Symbol                | Purpose                                                                                                 |
| --------------------- | ------------------------------------------------------------------------------------------------------- |
| `LangchainWorkspace`  | `SandboxBackendProtocol` implementation for Deep Agents, wires reads, writes, edits, search, and shell. |
| `extract_text`        | Pulls the text content out of LangChain messages.                                                       |
| `build_system_prompt` | Generates a system prompt that describes mounted paths to the model.                                    |

## Examples

* [`examples/python/agents/langchain/ram_pdf_deepagent.py`](https://github.com/strukto-ai/mirage/blob/main/examples/python/agents/langchain/ram_pdf_deepagent.py), RAM-backed PDF reading with no external storage credentials.
* [`examples/python/agents/langchain/s3_deepagent.py`](https://github.com/strukto-ai/mirage/blob/main/examples/python/agents/langchain/s3_deepagent.py), read-only S3 exploration.
* [`examples/python/agents/langchain/databricks_volume_deepagent.py`](https://github.com/strukto-ai/mirage/blob/main/examples/python/agents/langchain/databricks_volume_deepagent.py), Databricks volume exploration inside Databricks Apps or local SDK-auth setups.
