@mastra/upstash 0.0.0-working-memory-per-user-20250620163010 → 0.0.0-zod-v4-compat-part-2-20250820135355

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +268 -6
  2. package/LICENSE.md +12 -4
  3. package/README.md +98 -0
  4. package/dist/index.cjs +1629 -626
  5. package/dist/index.cjs.map +1 -0
  6. package/dist/index.d.ts +4 -4
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +1645 -642
  9. package/dist/index.js.map +1 -0
  10. package/dist/storage/domains/legacy-evals/index.d.ts +28 -0
  11. package/dist/storage/domains/legacy-evals/index.d.ts.map +1 -0
  12. package/dist/storage/domains/memory/index.d.ts +86 -0
  13. package/dist/storage/domains/memory/index.d.ts.map +1 -0
  14. package/dist/storage/domains/operations/index.d.ts +40 -0
  15. package/dist/storage/domains/operations/index.d.ts.map +1 -0
  16. package/dist/storage/domains/scores/index.d.ts +65 -0
  17. package/dist/storage/domains/scores/index.d.ts.map +1 -0
  18. package/dist/storage/domains/traces/index.d.ts +28 -0
  19. package/dist/storage/domains/traces/index.d.ts.map +1 -0
  20. package/dist/storage/domains/utils.d.ts +12 -0
  21. package/dist/storage/domains/utils.d.ts.map +1 -0
  22. package/dist/storage/domains/workflows/index.d.ts +36 -0
  23. package/dist/storage/domains/workflows/index.d.ts.map +1 -0
  24. package/dist/storage/index.d.ts +208 -0
  25. package/dist/storage/index.d.ts.map +1 -0
  26. package/dist/vector/filter.d.ts +21 -0
  27. package/dist/vector/filter.d.ts.map +1 -0
  28. package/dist/vector/index.d.ts +79 -0
  29. package/dist/vector/index.d.ts.map +1 -0
  30. package/dist/vector/prompt.d.ts +6 -0
  31. package/dist/vector/prompt.d.ts.map +1 -0
  32. package/dist/vector/types.d.ts +23 -0
  33. package/dist/vector/types.d.ts.map +1 -0
  34. package/docker-compose.yaml +1 -1
  35. package/package.json +12 -12
  36. package/src/storage/domains/legacy-evals/index.ts +279 -0
  37. package/src/storage/domains/memory/index.ts +972 -0
  38. package/src/storage/domains/operations/index.ts +168 -0
  39. package/src/storage/domains/scores/index.ts +216 -0
  40. package/src/storage/domains/traces/index.ts +172 -0
  41. package/src/storage/domains/utils.ts +57 -0
  42. package/src/storage/domains/workflows/index.ts +243 -0
  43. package/src/storage/index.test.ts +13 -0
  44. package/src/storage/index.ts +149 -1078
  45. package/src/vector/filter.test.ts +7 -6
  46. package/src/vector/filter.ts +10 -4
  47. package/src/vector/hybrid.test.ts +1455 -0
  48. package/src/vector/index.test.ts +4 -4
  49. package/src/vector/index.ts +155 -69
  50. package/src/vector/types.ts +26 -0
  51. package/tsconfig.build.json +9 -0
  52. package/tsconfig.json +1 -1
  53. package/tsup.config.ts +22 -0
  54. package/dist/_tsup-dts-rollup.d.cts +0 -318
  55. package/dist/_tsup-dts-rollup.d.ts +0 -318
  56. package/dist/index.d.cts +0 -4
  57. package/src/storage/upstash.test.ts +0 -1386
package/CHANGELOG.md CHANGED
@@ -1,18 +1,282 @@
1
1
  # @mastra/upstash
2
2
 
3
- ## 0.0.0-working-memory-per-user-20250620163010
3
+ ## 0.0.0-zod-v4-compat-part-2-20250820135355
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - df82a7b: Added per-resource working memory for LibSQL, Upstash, and PG
7
+ - Updated dependencies [94f4812]
8
+ - Updated dependencies [e202b82]
9
+ - Updated dependencies [e00f6a0]
10
+ - Updated dependencies [35c5798]
11
+ - @mastra/core@0.0.0-zod-v4-compat-part-2-20250820135355
12
+
13
+ ## 0.13.0
14
+
15
+ ### Minor Changes
16
+
17
+ - f42c4c2: update peer deps for packages to latest core range
18
+
19
+ ### Patch Changes
20
+
21
+ - 674a348: dependencies updates:
22
+ - Updated dependency [`@upstash/redis@^1.35.1` ↗︎](https://www.npmjs.com/package/@upstash/redis/v/1.35.1) (from `^1.35.0`, in `dependencies`)
23
+ - b92bc89: Added hybrid search support to @mastra/upstash vector store. Supports sparse vectors, fusion algorithm, and query mode.
24
+ - b8efbb9: feat: add flexible deleteMessages method to memory API
25
+ - Added `memory.deleteMessages(input)` method that accepts multiple input types:
26
+ - Single message ID as string: `deleteMessages('msg-123')`
27
+ - Array of message IDs: `deleteMessages(['msg-1', 'msg-2'])`
28
+ - Message object with id property: `deleteMessages({ id: 'msg-123' })`
29
+ - Array of message objects: `deleteMessages([{ id: 'msg-1' }, { id: 'msg-2' }])`
30
+ - Implemented in all storage adapters (LibSQL, PostgreSQL, Upstash, InMemory)
31
+ - Added REST API endpoint: `POST /api/memory/messages/delete`
32
+ - Updated client SDK: `thread.deleteMessages()` accepts all input types
33
+ - Updates thread timestamps when messages are deleted
34
+ - Added comprehensive test coverage and documentation
35
+
36
+ - Updated dependencies [510e2c8]
37
+ - Updated dependencies [2f72fb2]
38
+ - Updated dependencies [27cc97a]
39
+ - Updated dependencies [3f89307]
40
+ - Updated dependencies [9eda7d4]
41
+ - Updated dependencies [9d49408]
42
+ - Updated dependencies [41daa63]
43
+ - Updated dependencies [ad0a58b]
44
+ - Updated dependencies [254a36b]
45
+ - Updated dependencies [2ecf658]
46
+ - Updated dependencies [7a7754f]
47
+ - Updated dependencies [fc92d80]
48
+ - Updated dependencies [e0f73c6]
49
+ - Updated dependencies [0b89602]
50
+ - Updated dependencies [4d37822]
51
+ - Updated dependencies [23a6a7c]
52
+ - Updated dependencies [cda801d]
53
+ - Updated dependencies [a77c823]
54
+ - Updated dependencies [ff9c125]
55
+ - Updated dependencies [09bca64]
56
+ - Updated dependencies [b8efbb9]
57
+ - Updated dependencies [71466e7]
58
+ - Updated dependencies [0c99fbe]
59
+ - @mastra/core@0.12.0
60
+
61
+ ## 0.13.0-alpha.2
62
+
63
+ ### Minor Changes
64
+
65
+ - f42c4c2: update peer deps for packages to latest core range
66
+
67
+ ### Patch Changes
68
+
69
+ - @mastra/core@0.12.0-alpha.5
70
+
71
+ ## 0.12.4-alpha.1
72
+
73
+ ### Patch Changes
74
+
75
+ - b92bc89: Added hybrid search support to @mastra/upstash vector store. Supports sparse vectors, fusion algorithm, and query mode.
76
+ - b8efbb9: feat: add flexible deleteMessages method to memory API
77
+ - Added `memory.deleteMessages(input)` method that accepts multiple input types:
78
+ - Single message ID as string: `deleteMessages('msg-123')`
79
+ - Array of message IDs: `deleteMessages(['msg-1', 'msg-2'])`
80
+ - Message object with id property: `deleteMessages({ id: 'msg-123' })`
81
+ - Array of message objects: `deleteMessages([{ id: 'msg-1' }, { id: 'msg-2' }])`
82
+ - Implemented in all storage adapters (LibSQL, PostgreSQL, Upstash, InMemory)
83
+ - Added REST API endpoint: `POST /api/memory/messages/delete`
84
+ - Updated client SDK: `thread.deleteMessages()` accepts all input types
85
+ - Updates thread timestamps when messages are deleted
86
+ - Added comprehensive test coverage and documentation
87
+
88
+ - Updated dependencies [27cc97a]
89
+ - Updated dependencies [41daa63]
90
+ - Updated dependencies [254a36b]
91
+ - Updated dependencies [0b89602]
92
+ - Updated dependencies [4d37822]
93
+ - Updated dependencies [ff9c125]
94
+ - Updated dependencies [b8efbb9]
95
+ - Updated dependencies [71466e7]
96
+ - Updated dependencies [0c99fbe]
97
+ - @mastra/core@0.12.0-alpha.2
98
+
99
+ ## 0.12.4-alpha.0
100
+
101
+ ### Patch Changes
102
+
103
+ - 674a348: dependencies updates:
104
+ - Updated dependency [`@upstash/redis@^1.35.1` ↗︎](https://www.npmjs.com/package/@upstash/redis/v/1.35.1) (from `^1.35.0`, in `dependencies`)
105
+ - Updated dependencies [510e2c8]
106
+ - Updated dependencies [2f72fb2]
107
+ - Updated dependencies [3f89307]
108
+ - Updated dependencies [9eda7d4]
109
+ - Updated dependencies [9d49408]
110
+ - Updated dependencies [2ecf658]
111
+ - Updated dependencies [7a7754f]
112
+ - Updated dependencies [fc92d80]
113
+ - Updated dependencies [23a6a7c]
114
+ - Updated dependencies [09bca64]
115
+ - @mastra/core@0.12.0-alpha.0
116
+
117
+ ## 0.12.3
118
+
119
+ ### Patch Changes
120
+
121
+ - ce088f5: Update all peerdeps to latest core
122
+ - @mastra/core@0.11.1
123
+
124
+ ## 0.12.2
125
+
126
+ ### Patch Changes
127
+
128
+ - 7ba91fa: Throw mastra errors methods not implemented yet
129
+ - Updated dependencies [f248d53]
130
+ - Updated dependencies [2affc57]
131
+ - Updated dependencies [66e13e3]
132
+ - Updated dependencies [edd9482]
133
+ - Updated dependencies [18344d7]
134
+ - Updated dependencies [9d372c2]
135
+ - Updated dependencies [40c2525]
136
+ - Updated dependencies [e473f27]
137
+ - Updated dependencies [032cb66]
138
+ - Updated dependencies [703ac71]
139
+ - Updated dependencies [a723d69]
140
+ - Updated dependencies [7827943]
141
+ - Updated dependencies [5889a31]
142
+ - Updated dependencies [bf1e7e7]
143
+ - Updated dependencies [65e3395]
144
+ - Updated dependencies [4933192]
145
+ - Updated dependencies [d1c77a4]
146
+ - Updated dependencies [bea9dd1]
147
+ - Updated dependencies [dcd4802]
148
+ - Updated dependencies [cbddd18]
149
+ - Updated dependencies [7ba91fa]
150
+ - @mastra/core@0.11.0
151
+
152
+ ## 0.12.2-alpha.0
153
+
154
+ ### Patch Changes
155
+
156
+ - 7ba91fa: Throw mastra errors methods not implemented yet
157
+ - Updated dependencies [f248d53]
158
+ - Updated dependencies [2affc57]
159
+ - Updated dependencies [66e13e3]
160
+ - Updated dependencies [edd9482]
161
+ - Updated dependencies [18344d7]
162
+ - Updated dependencies [9d372c2]
163
+ - Updated dependencies [40c2525]
164
+ - Updated dependencies [e473f27]
165
+ - Updated dependencies [032cb66]
166
+ - Updated dependencies [703ac71]
167
+ - Updated dependencies [a723d69]
168
+ - Updated dependencies [5889a31]
169
+ - Updated dependencies [65e3395]
170
+ - Updated dependencies [4933192]
171
+ - Updated dependencies [d1c77a4]
172
+ - Updated dependencies [bea9dd1]
173
+ - Updated dependencies [dcd4802]
174
+ - Updated dependencies [7ba91fa]
175
+ - @mastra/core@0.11.0-alpha.2
176
+
177
+ ## 0.12.1
178
+
179
+ ### Patch Changes
180
+
181
+ - bef10e5: dependencies updates:
182
+ - Updated dependency [`@upstash/vector@^1.2.2` ↗︎](https://www.npmjs.com/package/@upstash/vector/v/1.2.2) (from `^1.2.1`, in `dependencies`)
183
+ - Updated dependencies [2873c7f]
184
+ - Updated dependencies [1c1c6a1]
185
+ - Updated dependencies [f8ce2cc]
186
+ - Updated dependencies [8c846b6]
187
+ - Updated dependencies [c7bbf1e]
188
+ - Updated dependencies [8722d53]
189
+ - Updated dependencies [565cc0c]
190
+ - Updated dependencies [b790fd1]
191
+ - Updated dependencies [132027f]
192
+ - Updated dependencies [0c85311]
193
+ - Updated dependencies [d7ed04d]
194
+ - Updated dependencies [cb16baf]
195
+ - Updated dependencies [f36e4f1]
196
+ - Updated dependencies [7f6e403]
197
+ - @mastra/core@0.10.11
198
+
199
+ ## 0.12.1-alpha.0
200
+
201
+ ### Patch Changes
202
+
203
+ - bef10e5: dependencies updates:
204
+ - Updated dependency [`@upstash/vector@^1.2.2` ↗︎](https://www.npmjs.com/package/@upstash/vector/v/1.2.2) (from `^1.2.1`, in `dependencies`)
205
+ - Updated dependencies [2873c7f]
206
+ - Updated dependencies [1c1c6a1]
207
+ - Updated dependencies [565cc0c]
208
+ - @mastra/core@0.10.11-alpha.2
209
+
210
+ ## 0.12.0
211
+
212
+ ### Minor Changes
213
+
214
+ - 8a3bfd2: Update peerdeps to latest core
215
+
216
+ ### Patch Changes
217
+
218
+ - 15e9d26: Added per-resource working memory for LibSQL, Upstash, and PG
8
219
  - d8f2d19: Add updateMessages API to storage classes (only support for PG and LibSQL for now) and to memory class. Additionally allow for metadata to be saved in the content field of a message.
220
+ - 0fb9d64: [MASTRA-4018] Update saveMessages in storage adapters to upsert messages
9
221
  - 2097952: [MASTRA-4021] Fix PG getMessages and update messageLimit for all storage adapters
10
- - Updated dependencies [df82a7b]
222
+ - 0e17048: Throw mastra errors in storage packages
223
+ - Updated dependencies [15e9d26]
224
+ - Updated dependencies [d1baedb]
11
225
  - Updated dependencies [d8f2d19]
226
+ - Updated dependencies [4d21bf2]
227
+ - Updated dependencies [07d6d88]
12
228
  - Updated dependencies [9d52b17]
13
229
  - Updated dependencies [2097952]
230
+ - Updated dependencies [792c4c0]
231
+ - Updated dependencies [5d74aab]
232
+ - Updated dependencies [a8b194f]
233
+ - Updated dependencies [4fb0cc2]
234
+ - Updated dependencies [d2a7a31]
235
+ - Updated dependencies [502fe05]
236
+ - Updated dependencies [144eb0b]
14
237
  - Updated dependencies [8ba1b51]
15
- - @mastra/core@0.0.0-working-memory-per-user-20250620163010
238
+ - Updated dependencies [4efcfa0]
239
+ - Updated dependencies [0e17048]
240
+ - @mastra/core@0.10.7
241
+
242
+ ## 0.12.0-alpha.3
243
+
244
+ ### Minor Changes
245
+
246
+ - 8a3bfd2: Update peerdeps to latest core
247
+
248
+ ### Patch Changes
249
+
250
+ - Updated dependencies [792c4c0]
251
+ - Updated dependencies [502fe05]
252
+ - Updated dependencies [4efcfa0]
253
+ - @mastra/core@0.10.7-alpha.3
254
+
255
+ ## 0.11.1-alpha.2
256
+
257
+ ### Patch Changes
258
+
259
+ - 15e9d26: Added per-resource working memory for LibSQL, Upstash, and PG
260
+ - 0fb9d64: [MASTRA-4018] Update saveMessages in storage adapters to upsert messages
261
+ - Updated dependencies [15e9d26]
262
+ - Updated dependencies [07d6d88]
263
+ - Updated dependencies [5d74aab]
264
+ - Updated dependencies [144eb0b]
265
+ - @mastra/core@0.10.7-alpha.2
266
+
267
+ ## 0.11.1-alpha.1
268
+
269
+ ### Patch Changes
270
+
271
+ - 2097952: [MASTRA-4021] Fix PG getMessages and update messageLimit for all storage adapters
272
+ - 0e17048: Throw mastra errors in storage packages
273
+ - Updated dependencies [d1baedb]
274
+ - Updated dependencies [4d21bf2]
275
+ - Updated dependencies [2097952]
276
+ - Updated dependencies [4fb0cc2]
277
+ - Updated dependencies [d2a7a31]
278
+ - Updated dependencies [0e17048]
279
+ - @mastra/core@0.10.7-alpha.1
16
280
 
17
281
  ## 0.11.1-alpha.0
18
282
 
@@ -1473,7 +1737,6 @@
1473
1737
  ### Minor Changes
1474
1738
 
1475
1739
  - c87eb4e: Combine Upstash packages into `@mastra/upstash`.
1476
-
1477
1740
  - Move and combine packages to `stores/upstash`
1478
1741
  - Reorganize source files into `src/vector` and `src/store`
1479
1742
  - Add deprecation notices to old packages
@@ -1807,7 +2070,6 @@
1807
2070
  ### Minor Changes
1808
2071
 
1809
2072
  - c87eb4e: Combine Upstash packages into `@mastra/upstash`.
1810
-
1811
2073
  - Move and combine packages to `stores/upstash`
1812
2074
  - Reorganize source files into `src/vector` and `src/store`
1813
2075
  - Add deprecation notices to old packages
package/LICENSE.md CHANGED
@@ -1,7 +1,15 @@
1
- Copyright 2025 Mastra AI, Inc.
1
+ # Apache License 2.0
2
2
 
3
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
3
+ Copyright (c) 2025 Kepler Software, Inc.
4
4
 
5
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
6
8
 
7
- THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
package/README.md CHANGED
@@ -41,6 +41,100 @@ const results = await vectorStore.query({
41
41
  });
42
42
  ```
43
43
 
44
+ ### Hybrid Vector Search (Dense + Sparse)
45
+
46
+ Upstash supports hybrid search that combines semantic search (dense vectors) with keyword-based search (sparse vectors) for improved relevance and accuracy.
47
+
48
+ #### Upserting Hybrid Vectors
49
+
50
+ ```typescript
51
+ import { UpstashVector } from '@mastra/upstash';
52
+
53
+ const vectorStore = new UpstashVector({
54
+ url: process.env.UPSTASH_VECTOR_REST_URL,
55
+ token: process.env.UPSTASH_VECTOR_TOKEN
56
+ });
57
+
58
+ const vectors = [[0.1, 0.2, 0.3, ...], [0.4, 0.5, 0.6, ...]];
59
+ const sparseVectors = [
60
+ { indices: [1, 5, 10], values: [0.8, 0.6, 0.4] },
61
+ { indices: [2, 6, 11], values: [0.7, 0.5, 0.3] }
62
+ ];
63
+ const metadata = [{ title: 'Document 1' }, { title: 'Document 2' }];
64
+
65
+ const ids = await vectorStore.upsert({
66
+ indexName: 'hybrid-index',
67
+ vectors,
68
+ sparseVectors,
69
+ metadata
70
+ });
71
+ ```
72
+
73
+ #### Querying with Hybrid Search
74
+
75
+ ```typescript
76
+ import { FusionAlgorithm, QueryMode } from '@upstash/vector';
77
+
78
+ // Query with both dense and sparse vectors (default hybrid mode)
79
+ const results = await vectorStore.query({
80
+ indexName: 'hybrid-index',
81
+ queryVector: [0.1, 0.2, 0.3, ...],
82
+ sparseVector: { indices: [1, 5], values: [0.9, 0.7] },
83
+ topK: 10,
84
+ fusionAlgorithm: FusionAlgorithm.RRF,
85
+ includeVector: false
86
+ });
87
+
88
+ // Dense-only query (backward compatible)
89
+ const denseResults = await vectorStore.query({
90
+ indexName: 'hybrid-index',
91
+ queryVector: [0.1, 0.2, 0.3, ...],
92
+ topK: 10
93
+ });
94
+
95
+ // Query only the dense component for custom reranking
96
+ const denseOnlyResults = await vectorStore.query({
97
+ indexName: 'hybrid-index',
98
+ queryVector: [0.1, 0.2, 0.3, ...],
99
+ queryMode: QueryMode.DENSE,
100
+ topK: 10
101
+ });
102
+
103
+ // Query only the sparse component for custom reranking
104
+ const sparseOnlyResults = await vectorStore.query({
105
+ indexName: 'hybrid-index',
106
+ queryVector: [0.1, 0.2, 0.3, ...], // Still needed for dense index structure
107
+ sparseVector: { indices: [1, 5], values: [0.9, 0.7] },
108
+ queryMode: QueryMode.SPARSE,
109
+ topK: 10
110
+ });
111
+
112
+ // Explicit hybrid mode (same as default)
113
+ const explicitHybridResults = await vectorStore.query({
114
+ indexName: 'hybrid-index',
115
+ queryVector: [0.1, 0.2, 0.3, ...],
116
+ sparseVector: { indices: [1, 5], values: [0.9, 0.7] },
117
+ queryMode: QueryMode.HYBRID,
118
+ fusionAlgorithm: FusionAlgorithm.RRF,
119
+ topK: 10
120
+ });
121
+ ```
122
+
123
+ #### Fusion Algorithms & Query Modes
124
+
125
+ Upstash provides built-in fusion algorithms to combine dense and sparse search results:
126
+
127
+ - **RRF (Reciprocal Rank Fusion)**: Default algorithm that combines rankings from both dense and sparse searches
128
+ - **DBSF (Distribution-Based Score Fusion)**
129
+
130
+ Query modes enable fine-grained control over hybrid index queries:
131
+
132
+ - **`QueryMode.HYBRID`**: Default mode that queries both dense and sparse components and fuses results
133
+ - **`QueryMode.DENSE`**: Query only the dense component, useful for custom reranking scenarios
134
+ - **`QueryMode.SPARSE`**: Query only the sparse component, useful for custom reranking scenarios
135
+
136
+ Use query modes when you want to implement custom fusion logic or need separate dense/sparse results for advanced reranking algorithms.
137
+
44
138
  ### Vector Store Configuration
45
139
 
46
140
  The Upstash vector store requires the following configuration:
@@ -70,13 +164,17 @@ The Upstash store requires the following configuration:
70
164
  ## Features
71
165
 
72
166
  - Serverless vector database and key-value store
167
+ - **Hybrid vector search** combining dense and sparse vectors
168
+ - **Advanced fusion algorithms** (RRF) for optimal search ranking
73
169
  - Pay-per-use pricing
74
170
  - Low latency global access
75
171
  - REST API interface
76
172
  - Built-in vector similarity search
77
173
  - Durable storage for chat history and agent memory
174
+ - Backward compatible with existing dense vector implementations
78
175
 
79
176
  ## Related Links
80
177
 
81
178
  - [Upstash Vector Documentation](https://docs.upstash.com/vector)
179
+ - [Upstash Hybrid Indexes Documentation](https://docs.upstash.com/vector/features/hybridindexes)
82
180
  - [Upstash Redis Documentation](https://docs.upstash.com/redis)