--- title: LangChain (deepagents) description: Back deepagents and other LangGraph-style agents with a Mirage workspace via LangchainWorkspace. icon: /images/langchain-logo.svg --- [deepagents](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, Mirage ships one. ## Install ```bash uv add 'mirage-ai[deepagents]' langchain-anthropic ``` This pulls in `deepagents>=0.4.12`. Bring your own LangChain chat model (`langchain-anthropic`, `langchain-openai`, etc.). ## Usage ```python 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"]): print(text) ``` ## Exports | Symbol | Purpose | | --- | --- | | `LangchainWorkspace` | `Backend` implementation for deepagents, wires reads, writes, edits, 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/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.