> ## 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
```

Bring your own LangChain chat model, such as `langchain-anthropic` or `langchain-openai`.

## Usage

```python theme={null}
import asyncio

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.vfs.ram import RAMVFS

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


async def main() -> None:
    agent = create_deep_agent(
        model=ChatAnthropic(model="claude-sonnet-4-20250514"),
        system_prompt=await build_system_prompt(
            mount_info={"/": "In-memory filesystem (read/write)"},
        ),
        backend=LangchainWorkspace(ws),
    )
    result = await agent.ainvoke({
        "messages": [{"role": "user", "content": "Create /report.md and summarize."}],
    })
    for text in extract_text(result["messages"][-1:]):
        print(text)


asyncio.run(main())
```

## 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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.