@@ -37,6 +37,20 @@ agent = create_deep_agent(
3737```
3838:::
3939
40+ :::js
41+ ``` typescript
42+ import { createDeepAgent , StateBackend } from " deepagents" ;
43+
44+ // By default we provide a StateBackend
45+ const agent = createDeepAgent ();
46+
47+ // Under the hood, it looks like
48+ const agent2 = createDeepAgent ({
49+ backend : (rt ) => new StateBackend (rt ), // Note that the tools access State through the runtime.state
50+ });
51+ ```
52+ :::
53+
4054** How it works:**
4155- Stores files in LangGraph agent state for the current thread.
4256- Persists across multiple agent turns on the same thread via checkpoints.
@@ -47,17 +61,28 @@ agent = create_deep_agent(
4761
4862### FilesystemBackend (local disk)
4963
64+ :::python
5065``` python
5166from deepagents.backends import FilesystemBackend
5267
5368agent = create_deep_agent(
54- backend = FilesystemBackend(root_dir = " /Users/nh/Desktop/ " )
69+ backend = FilesystemBackend(root_dir = " . " , virtual_mode = True )
5570)
5671```
72+ :::
73+
74+ :::js
75+ ``` typescript
76+ import { createDeepAgent , FilesystemBackend } from " deepagents" ;
77+
78+ const agent = createDeepAgent ({
79+ backend: new FilesystemBackend ({ rootDir: " ." , virtualMode: true }),
80+ });
81+ ```
82+ :::
5783
5884** How it works:**
5985- Reads/writes real files under a configurable ` root_dir ` .
60- - Note: ` root_dir ` must be an absolute path.
6186- You can optionally set ` virtual_mode=True ` to sandbox and normalize paths under ` root_dir ` .
6287- Uses secure path resolution, prevents unsafe symlink traversal when possible, can use ripgrep for fast ` grep ` .
6388
@@ -68,13 +93,30 @@ agent = create_deep_agent(
6893
6994### StoreBackend (LangGraph Store)
7095
96+ :::python
7197``` python
98+ from langgraph.store.memory import InMemoryStore
7299from deepagents.backends import StoreBackend
73100
74101agent = create_deep_agent(
75- backend = (lambda rt : StoreBackend(rt)) # Note that the tools access Store through the runtime.store
102+ backend = (lambda rt : StoreBackend(rt)), # Note that the tools access Store through the runtime.store
103+ store = InMemoryStore()
76104)
77105```
106+ :::
107+
108+ :::js
109+ ``` typescript
110+ import { createDeepAgent , StoreBackend } from " deepagents" ;
111+ import { InMemoryStore } from " @langchain/langgraph" ;
112+
113+ const store = new InMemoryStore ()
114+ const agent = createDeepAgent ({
115+ backend : (rt ) => new StoreBackend (rt ),
116+ store
117+ });
118+ ```
119+ :::
78120
79121** How it works:**
80122- Stores files in a LangGraph ` BaseStore ` provided by the runtime, enabling cross‑thread durable storage.
@@ -89,18 +131,37 @@ agent = create_deep_agent(
89131:::python
90132``` python
91133from deepagents import create_deep_agent
92- from deepagents.backends import FilesystemBackend
93- from deepagents.backends.composite import build_composite_state_backend
134+ from deepagents.backends import CompositeBackend, StateBackend, StoreBackend
135+ from langgraph.store.memory import InMemoryStore
94136
95137composite_backend = lambda rt : CompositeBackend(
96- default = StateBackend(rt)
138+ default = StateBackend(rt),
97139 routes = {
98140 " /memories/" : StoreBackend(rt),
99- " /docs/" : CustomBackend()
100141 }
101142)
102143
103- agent = create_deep_agent(backend = composite_backend)
144+ agent = create_deep_agent(
145+ backend = composite_backend,
146+ store = InMemoryStore() # Store passed to create_deep_agent, not backend
147+ )
148+ ```
149+ :::
150+
151+ :::js
152+ ``` typescript
153+ import { createDeepAgent , CompositeBackend , StateBackend , StoreBackend } from " deepagents" ;
154+ import { InMemoryStore } from " @langchain/langgraph" ;
155+
156+ const compositeBackend = (rt ) => new CompositeBackend (
157+ new StateBackend (rt ),
158+ {
159+ " /memories/" : new StoreBackend (rt ),
160+ }
161+ );
162+
163+ const store = new InMemoryStore ()
164+ const agent = createDeepAgent ({ backend: compositeBackend , store });
104165```
105166:::
106167
@@ -129,19 +190,34 @@ Route parts of the namespace to different backends. Commonly used to persist `/m
129190:::python
130191``` python
131192from deepagents import create_deep_agent
132- from deepagents.backends import FilesystemBackend
133- from deepagents.backends.composite import build_composite_state_backend
193+ from deepagents.backends import CompositeBackend, StateBackend, FilesystemBackend
134194
135195composite_backend = lambda rt : CompositeBackend(
196+ default = StateBackend(rt),
136197 routes = {
137- " /memories/" : FilesystemBackend(root_dir = " /deepagents/myagent" ),
198+ " /memories/" : FilesystemBackend(root_dir = " /deepagents/myagent" , virtual_mode = True ),
138199 },
139200)
140201
141202agent = create_deep_agent(backend = composite_backend)
142203```
143204:::
144205
206+ :::js
207+ ``` typescript
208+ import { createDeepAgent , CompositeBackend , FilesystemBackend , StateBackend } from " deepagents" ;
209+
210+ const compositeBackend = (rt ) => new CompositeBackend (
211+ new StateBackend (rt ),
212+ {
213+ " /memories/" : new FilesystemBackend ({ rootDir: " /deepagents/myagent" , virtualMode: true }),
214+ },
215+ );
216+
217+ const agent = createDeepAgent ({ backend: compositeBackend });
218+ ```
219+ :::
220+
145221Behavior:
146222- ` /workspace/plan.md ` → StateBackend (ephemeral)
147223- ` /memories/agent.md ` → FilesystemBackend under ` /deepagents/myagent `
0 commit comments