memorisdk 1.0.2__tar.gz → 2.0.1__tar.gz

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.

Potentially problematic release.


This version of memorisdk might be problematic. Click here for more details.

Files changed (83) hide show
  1. {memorisdk-1.0.2 → memorisdk-2.0.1}/PKG-INFO +56 -23
  2. {memorisdk-1.0.2 → memorisdk-2.0.1}/README.md +30 -20
  3. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/__init__.py +24 -8
  4. memorisdk-2.0.1/memori/agents/conscious_agent.py +344 -0
  5. memorisdk-2.0.1/memori/agents/memory_agent.py +585 -0
  6. memorisdk-2.0.1/memori/agents/retrieval_agent.py +1002 -0
  7. memorisdk-2.0.1/memori/config/memory_manager.py +323 -0
  8. memorisdk-2.0.1/memori/core/conversation.py +393 -0
  9. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/core/database.py +386 -371
  10. memorisdk-2.0.1/memori/core/memory.py +2535 -0
  11. memorisdk-2.0.1/memori/core/providers.py +217 -0
  12. memorisdk-2.0.1/memori/database/adapters/__init__.py +10 -0
  13. memorisdk-2.0.1/memori/database/adapters/mysql_adapter.py +331 -0
  14. memorisdk-2.0.1/memori/database/adapters/postgresql_adapter.py +291 -0
  15. memorisdk-2.0.1/memori/database/adapters/sqlite_adapter.py +229 -0
  16. memorisdk-2.0.1/memori/database/auto_creator.py +320 -0
  17. memorisdk-2.0.1/memori/database/connection_utils.py +207 -0
  18. memorisdk-2.0.1/memori/database/connectors/base_connector.py +283 -0
  19. memorisdk-2.0.1/memori/database/connectors/mysql_connector.py +381 -0
  20. memorisdk-2.0.1/memori/database/connectors/postgres_connector.py +431 -0
  21. memorisdk-2.0.1/memori/database/connectors/sqlite_connector.py +323 -0
  22. memorisdk-2.0.1/memori/database/models.py +400 -0
  23. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/database/queries/base_queries.py +1 -1
  24. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/database/queries/memory_queries.py +91 -2
  25. memorisdk-2.0.1/memori/database/query_translator.py +222 -0
  26. memorisdk-2.0.1/memori/database/schema_generators/__init__.py +7 -0
  27. memorisdk-2.0.1/memori/database/schema_generators/mysql_schema_generator.py +215 -0
  28. memorisdk-2.0.1/memori/database/search/__init__.py +8 -0
  29. memorisdk-2.0.1/memori/database/search/mysql_search_adapter.py +255 -0
  30. memorisdk-2.0.1/memori/database/search/sqlite_search_adapter.py +180 -0
  31. memorisdk-2.0.1/memori/database/search_service.py +700 -0
  32. memorisdk-2.0.1/memori/database/sqlalchemy_manager.py +888 -0
  33. memorisdk-2.0.1/memori/integrations/__init__.py +93 -0
  34. memorisdk-2.0.1/memori/integrations/litellm_integration.py +345 -0
  35. memorisdk-2.0.1/memori/integrations/openai_integration.py +539 -0
  36. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/tools/memory_tool.py +94 -4
  37. memorisdk-2.0.1/memori/utils/input_validator.py +395 -0
  38. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/utils/pydantic_models.py +138 -36
  39. memorisdk-2.0.1/memori/utils/query_builder.py +530 -0
  40. memorisdk-2.0.1/memori/utils/security_audit.py +594 -0
  41. memorisdk-2.0.1/memori/utils/security_integration.py +339 -0
  42. memorisdk-2.0.1/memori/utils/transaction_manager.py +547 -0
  43. {memorisdk-1.0.2 → memorisdk-2.0.1}/memorisdk.egg-info/PKG-INFO +56 -23
  44. {memorisdk-1.0.2 → memorisdk-2.0.1}/memorisdk.egg-info/SOURCES.txt +24 -2
  45. {memorisdk-1.0.2 → memorisdk-2.0.1}/memorisdk.egg-info/requires.txt +28 -1
  46. {memorisdk-1.0.2 → memorisdk-2.0.1}/pyproject.toml +42 -5
  47. memorisdk-1.0.2/memori/agents/conscious_agent.py +0 -506
  48. memorisdk-1.0.2/memori/agents/memory_agent.py +0 -322
  49. memorisdk-1.0.2/memori/agents/retrieval_agent.py +0 -579
  50. memorisdk-1.0.2/memori/core/memory.py +0 -1384
  51. memorisdk-1.0.2/memori/database/connectors/mysql_connector.py +0 -159
  52. memorisdk-1.0.2/memori/database/connectors/postgres_connector.py +0 -158
  53. memorisdk-1.0.2/memori/database/connectors/sqlite_connector.py +0 -148
  54. memorisdk-1.0.2/memori/integrations/__init__.py +0 -68
  55. memorisdk-1.0.2/memori/integrations/litellm_integration.py +0 -11
  56. memorisdk-1.0.2/memori/integrations/openai_integration.py +0 -273
  57. memorisdk-1.0.2/memori/scripts/llm_text.py +0 -50
  58. memorisdk-1.0.2/memorisdk.egg-info/entry_points.txt +0 -2
  59. {memorisdk-1.0.2 → memorisdk-2.0.1}/LICENSE +0 -0
  60. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/agents/__init__.py +0 -0
  61. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/config/__init__.py +0 -0
  62. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/config/manager.py +0 -0
  63. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/config/settings.py +0 -0
  64. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/core/__init__.py +0 -0
  65. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/database/__init__.py +0 -0
  66. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/database/connectors/__init__.py +0 -0
  67. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/database/queries/__init__.py +0 -0
  68. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/database/queries/chat_queries.py +0 -0
  69. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/database/queries/entity_queries.py +0 -0
  70. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/database/templates/__init__.py +0 -0
  71. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/database/templates/basic_template.py +0 -0
  72. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/database/templates/schemas/__init__.py +0 -0
  73. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/integrations/anthropic_integration.py +0 -0
  74. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/tools/__init__.py +0 -0
  75. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/utils/__init__.py +0 -0
  76. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/utils/exceptions.py +0 -0
  77. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/utils/helpers.py +0 -0
  78. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/utils/logging.py +0 -0
  79. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/utils/schemas.py +0 -0
  80. {memorisdk-1.0.2 → memorisdk-2.0.1}/memori/utils/validators.py +0 -0
  81. {memorisdk-1.0.2 → memorisdk-2.0.1}/memorisdk.egg-info/dependency_links.txt +0 -0
  82. {memorisdk-1.0.2 → memorisdk-2.0.1}/memorisdk.egg-info/top_level.txt +0 -0
  83. {memorisdk-1.0.2 → memorisdk-2.0.1}/setup.cfg +0 -0
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: memorisdk
3
- Version: 1.0.2
3
+ Version: 2.0.1
4
4
  Summary: The Open-Source Memory Layer for AI Agents & Multi-Agent Systems
5
5
  Author-email: GibsonAI Team <noc@gibsonai.com>
6
6
  License: Apache-2.0
7
7
  Project-URL: Homepage, https://github.com/GibsonAI/memori
8
- Project-URL: Documentation, https://gibsonai.github.io/memori
8
+ Project-URL: Documentation, https://memori.gibsonai.com/docs
9
9
  Project-URL: Repository, https://github.com/GibsonAI/memori.git
10
10
  Project-URL: Bug Tracker, https://github.com/GibsonAI/memori/issues
11
11
  Project-URL: Changelog, https://github.com/GibsonAI/memori/blob/main/CHANGELOG.md
@@ -31,8 +31,9 @@ License-File: LICENSE
31
31
  Requires-Dist: loguru>=0.6.0
32
32
  Requires-Dist: pydantic>=2.0.0
33
33
  Requires-Dist: python-dotenv>=1.0.0
34
- Requires-Dist: click>=8.0.0
34
+ Requires-Dist: sqlalchemy>=2.0.0
35
35
  Requires-Dist: openai>=1.0.0
36
+ Requires-Dist: litellm>=1.0.0
36
37
  Provides-Extra: dev
37
38
  Requires-Dist: black>=23.0; extra == "dev"
38
39
  Requires-Dist: ruff>=0.1.0; extra == "dev"
@@ -40,6 +41,9 @@ Requires-Dist: isort>=5.9.0; extra == "dev"
40
41
  Requires-Dist: mypy>=1.0; extra == "dev"
41
42
  Requires-Dist: pre-commit>=2.15; extra == "dev"
42
43
  Requires-Dist: types-PyYAML>=6.0.0; extra == "dev"
44
+ Requires-Dist: pytest>=6.0; extra == "dev"
45
+ Requires-Dist: pytest-cov>=2.0; extra == "dev"
46
+ Requires-Dist: pytest-asyncio>=0.18.0; extra == "dev"
43
47
  Provides-Extra: docs
44
48
  Requires-Dist: mkdocs>=1.5.0; extra == "docs"
45
49
  Requires-Dist: mkdocs-material>=9.0.0; extra == "docs"
@@ -50,15 +54,31 @@ Provides-Extra: postgres
50
54
  Requires-Dist: psycopg2-binary>=2.9.0; extra == "postgres"
51
55
  Provides-Extra: mysql
52
56
  Requires-Dist: PyMySQL>=1.0.0; extra == "mysql"
57
+ Provides-Extra: databases
58
+ Requires-Dist: psycopg2-binary>=2.9.0; extra == "databases"
59
+ Requires-Dist: PyMySQL>=1.0.0; extra == "databases"
60
+ Provides-Extra: anthropic
61
+ Requires-Dist: anthropic>=0.3.0; extra == "anthropic"
62
+ Provides-Extra: litellm
63
+ Requires-Dist: litellm>=1.0.0; extra == "litellm"
53
64
  Provides-Extra: integrations
54
65
  Requires-Dist: litellm>=1.0.0; extra == "integrations"
55
66
  Requires-Dist: anthropic>=0.3.0; extra == "integrations"
67
+ Provides-Extra: demos
68
+ Requires-Dist: streamlit>=1.28.0; extra == "demos"
69
+ Requires-Dist: pandas>=2.0.0; extra == "demos"
70
+ Requires-Dist: plotly>=5.17.0; extra == "demos"
71
+ Requires-Dist: crewai>=0.152.0; extra == "demos"
72
+ Requires-Dist: crewai-tools>=0.59.0; extra == "demos"
56
73
  Provides-Extra: all
57
74
  Requires-Dist: black>=23.0; extra == "all"
58
75
  Requires-Dist: ruff>=0.1.0; extra == "all"
59
76
  Requires-Dist: isort>=5.9.0; extra == "all"
60
77
  Requires-Dist: mypy>=1.0; extra == "all"
61
78
  Requires-Dist: pre-commit>=2.15; extra == "all"
79
+ Requires-Dist: pytest>=6.0; extra == "all"
80
+ Requires-Dist: pytest-cov>=2.0; extra == "all"
81
+ Requires-Dist: pytest-asyncio>=0.18.0; extra == "all"
62
82
  Requires-Dist: mkdocs>=1.5.0; extra == "all"
63
83
  Requires-Dist: mkdocs-material>=9.0.0; extra == "all"
64
84
  Requires-Dist: mkdocs-git-revision-date-localized-plugin>=1.2.0; extra == "all"
@@ -68,6 +88,9 @@ Requires-Dist: psycopg2-binary>=2.9.0; extra == "all"
68
88
  Requires-Dist: PyMySQL>=1.0.0; extra == "all"
69
89
  Requires-Dist: litellm>=1.0.0; extra == "all"
70
90
  Requires-Dist: anthropic>=0.3.0; extra == "all"
91
+ Requires-Dist: streamlit>=1.28.0; extra == "all"
92
+ Requires-Dist: pandas>=2.0.0; extra == "all"
93
+ Requires-Dist: plotly>=5.17.0; extra == "all"
71
94
  Dynamic: license-file
72
95
 
73
96
  [![GibsonAI](https://github.com/user-attachments/assets/878e341b-5a93-4489-a398-abeca91b6b11)](https://gibsonai.com/)
@@ -83,7 +106,7 @@ Dynamic: license-file
83
106
  </p>
84
107
 
85
108
  <p align="center">
86
- <a href="https://gibsonai.github.io/memori/">Learn more</a>
109
+ <a href="https://memori.gibsonai.com/docs">Learn more</a>
87
110
  ·
88
111
  <a href="https://www.gibsonai.com/discord">Join Discord</a>
89
112
  </p>
@@ -121,12 +144,12 @@ Install Memori:
121
144
  pip install memorisdk
122
145
  ```
123
146
 
124
- ### Example with LiteLLM
147
+ ### Example with OpenAI
125
148
 
126
- 1. Install LiteLLM:
149
+ 1. Install OpenAI:
127
150
 
128
151
  ```bash
129
- pip install litellm
152
+ pip install openai
130
153
  ```
131
154
 
132
155
  2. Set OpenAI API Key:
@@ -139,14 +162,17 @@ export OPENAI_API_KEY="sk-your-openai-key-here"
139
162
 
140
163
  ```python
141
164
  from memori import Memori
142
- from litellm import completion
165
+ from openai import OpenAI
166
+
167
+ # Initialize OpenAI client
168
+ openai_client = OpenAI()
143
169
 
144
170
  # Initialize memory
145
171
  memori = Memori(conscious_ingest=True)
146
172
  memori.enable()
147
173
 
148
174
  print("=== First Conversation - Establishing Context ===")
149
- response1 = completion(
175
+ response1 = openai_client.chat.completions.create(
150
176
  model="gpt-4o-mini",
151
177
  messages=[{
152
178
  "role": "user",
@@ -158,7 +184,7 @@ print("Assistant:", response1.choices[0].message.content)
158
184
  print("\n" + "="*50)
159
185
  print("=== Second Conversation - Memory Provides Context ===")
160
186
 
161
- response2 = completion(
187
+ response2 = openai_client.chat.completions.create(
162
188
  model="gpt-4o-mini",
163
189
  messages=[{
164
190
  "role": "user",
@@ -344,15 +370,15 @@ Works with **ANY** LLM library:
344
370
  ```python
345
371
  memori.enable() # Enable universal recording
346
372
 
347
- # LiteLLM (recommended)
348
- from litellm import completion
349
- completion(model="gpt-4", messages=[...])
350
-
351
373
  # OpenAI
352
- import openai
353
- client = openai.OpenAI()
374
+ from openai import OpenAI
375
+ client = OpenAI()
354
376
  client.chat.completions.create(...)
355
377
 
378
+ # LiteLLM
379
+ from litellm import completion
380
+ completion(model="gpt-4", messages=[...])
381
+
356
382
  # Anthropic
357
383
  import anthropic
358
384
  client = anthropic.Anthropic()
@@ -432,18 +458,25 @@ memori/
432
458
  - **[Memory Retrieval](./memory_retrival_example.py)** - Function calling with memory tools
433
459
  - **[Advanced Config](./examples/advanced_config.py)** - Production configuration
434
460
  - **[Interactive Demo](./memori_example.py)** - Live conscious ingestion showcase
461
+ - **[Simple Multi-User](./examples/multiple-users/simple_multiuser.py)** - Basic demonstration of user memory isolation with namespaces
462
+ - **[FastAPI Multi-User App](./examples/multiple-users/fastapi_multiuser_app.py)** - Full-featured REST API with Swagger UI for testing multi-user functionality
435
463
 
436
464
  ## Framework Integrations
437
465
 
438
466
  Memori works seamlessly with popular AI frameworks:
439
467
 
440
- | Framework | Description | Example | Features |
441
- |-----------|-------------|---------|----------|
442
- | 🤖 [Agno](./examples/integrations/agno_example.py) | Memory-enhanced agent framework integration with persistent conversations | Simple chat agent with memory search | Memory tools, conversation persistence, contextual responses |
443
- | 👥 [CrewAI](./examples/integrations/crewai_example.py) | Multi-agent system with shared memory across agent interactions | Collaborative agents with memory | Agent coordination, shared memory, task-based workflows |
444
- | 🌊 [Digital Ocean AI](./examples/integrations/digital_ocean_example.py) | Memory-enhanced customer support using Digital Ocean's AI platform | Customer support assistant with conversation history | Context injection, session continuity, support analytics |
445
- | 🔗 [LangChain](./examples/integrations/langchain_example.py) | Enterprise-grade agent framework with advanced memory integration | AI assistant with LangChain tools and memory | Custom tools, agent executors, memory persistence, error handling |
446
- | 🚀 [Swarms](./examples/integrations/swarms_example.py) | Multi-agent system framework with persistent memory capabilities | Memory-enhanced Swarms agents with auto/conscious ingestion | Agent memory persistence, multi-agent coordination, contextual awareness |
468
+ | Framework | Description | Example |
469
+ |-----------|-------------|---------|
470
+ | [AgentOps](./examples/integrations/agentops_example.py) | Track and monitor Memori memory operations with comprehensive observability | Memory operation tracking with AgentOps analytics |
471
+ | [Agno](./examples/integrations/agno_example.py) | Memory-enhanced agent framework integration with persistent conversations | Simple chat agent with memory search |
472
+ | [AWS Strands](./examples/integrations/aws_strands_example.py) | Professional development coach with Strands SDK and persistent memory | Career coaching agent with goal tracking |
473
+ | [Azure AI Foundry](./examples/integrations/azure_ai_foundry_example.py) | Azure AI Foundry agents with persistent memory across conversations | Enterprise AI agents with Azure integration |
474
+ | [CamelAI](./examples/integrations/camelai_example.py) | Multi-agent communication framework with automatic memory recording and retrieval | Memory-enhanced chat agents with conversation continuity |
475
+ | [CrewAI](./examples/integrations/crewai_example.py) | Multi-agent system with shared memory across agent interactions | Collaborative agents with memory |
476
+ | [Digital Ocean AI](./examples/integrations/digital_ocean_example.py) | Memory-enhanced customer support using Digital Ocean's AI platform | Customer support assistant with conversation history |
477
+ | [LangChain](./examples/integrations/langchain_example.py) | Enterprise-grade agent framework with advanced memory integration | AI assistant with LangChain tools and memory |
478
+ | [OpenAI Agent](./examples/integrations/openai_agent_example.py) | Memory-enhanced OpenAI Agent with function calling and user preference tracking | Interactive assistant with memory search and user info storage |
479
+ | [Swarms](./examples/integrations/swarms_example.py) | Multi-agent system framework with persistent memory capabilities | Memory-enhanced Swarms agents with auto/conscious ingestion |
447
480
 
448
481
  ## Interactive Demos
449
482
 
@@ -11,7 +11,7 @@
11
11
  </p>
12
12
 
13
13
  <p align="center">
14
- <a href="https://gibsonai.github.io/memori/">Learn more</a>
14
+ <a href="https://memori.gibsonai.com/docs">Learn more</a>
15
15
  ·
16
16
  <a href="https://www.gibsonai.com/discord">Join Discord</a>
17
17
  </p>
@@ -49,12 +49,12 @@ Install Memori:
49
49
  pip install memorisdk
50
50
  ```
51
51
 
52
- ### Example with LiteLLM
52
+ ### Example with OpenAI
53
53
 
54
- 1. Install LiteLLM:
54
+ 1. Install OpenAI:
55
55
 
56
56
  ```bash
57
- pip install litellm
57
+ pip install openai
58
58
  ```
59
59
 
60
60
  2. Set OpenAI API Key:
@@ -67,14 +67,17 @@ export OPENAI_API_KEY="sk-your-openai-key-here"
67
67
 
68
68
  ```python
69
69
  from memori import Memori
70
- from litellm import completion
70
+ from openai import OpenAI
71
+
72
+ # Initialize OpenAI client
73
+ openai_client = OpenAI()
71
74
 
72
75
  # Initialize memory
73
76
  memori = Memori(conscious_ingest=True)
74
77
  memori.enable()
75
78
 
76
79
  print("=== First Conversation - Establishing Context ===")
77
- response1 = completion(
80
+ response1 = openai_client.chat.completions.create(
78
81
  model="gpt-4o-mini",
79
82
  messages=[{
80
83
  "role": "user",
@@ -86,7 +89,7 @@ print("Assistant:", response1.choices[0].message.content)
86
89
  print("\n" + "="*50)
87
90
  print("=== Second Conversation - Memory Provides Context ===")
88
91
 
89
- response2 = completion(
92
+ response2 = openai_client.chat.completions.create(
90
93
  model="gpt-4o-mini",
91
94
  messages=[{
92
95
  "role": "user",
@@ -272,15 +275,15 @@ Works with **ANY** LLM library:
272
275
  ```python
273
276
  memori.enable() # Enable universal recording
274
277
 
275
- # LiteLLM (recommended)
276
- from litellm import completion
277
- completion(model="gpt-4", messages=[...])
278
-
279
278
  # OpenAI
280
- import openai
281
- client = openai.OpenAI()
279
+ from openai import OpenAI
280
+ client = OpenAI()
282
281
  client.chat.completions.create(...)
283
282
 
283
+ # LiteLLM
284
+ from litellm import completion
285
+ completion(model="gpt-4", messages=[...])
286
+
284
287
  # Anthropic
285
288
  import anthropic
286
289
  client = anthropic.Anthropic()
@@ -360,18 +363,25 @@ memori/
360
363
  - **[Memory Retrieval](./memory_retrival_example.py)** - Function calling with memory tools
361
364
  - **[Advanced Config](./examples/advanced_config.py)** - Production configuration
362
365
  - **[Interactive Demo](./memori_example.py)** - Live conscious ingestion showcase
366
+ - **[Simple Multi-User](./examples/multiple-users/simple_multiuser.py)** - Basic demonstration of user memory isolation with namespaces
367
+ - **[FastAPI Multi-User App](./examples/multiple-users/fastapi_multiuser_app.py)** - Full-featured REST API with Swagger UI for testing multi-user functionality
363
368
 
364
369
  ## Framework Integrations
365
370
 
366
371
  Memori works seamlessly with popular AI frameworks:
367
372
 
368
- | Framework | Description | Example | Features |
369
- |-----------|-------------|---------|----------|
370
- | 🤖 [Agno](./examples/integrations/agno_example.py) | Memory-enhanced agent framework integration with persistent conversations | Simple chat agent with memory search | Memory tools, conversation persistence, contextual responses |
371
- | 👥 [CrewAI](./examples/integrations/crewai_example.py) | Multi-agent system with shared memory across agent interactions | Collaborative agents with memory | Agent coordination, shared memory, task-based workflows |
372
- | 🌊 [Digital Ocean AI](./examples/integrations/digital_ocean_example.py) | Memory-enhanced customer support using Digital Ocean's AI platform | Customer support assistant with conversation history | Context injection, session continuity, support analytics |
373
- | 🔗 [LangChain](./examples/integrations/langchain_example.py) | Enterprise-grade agent framework with advanced memory integration | AI assistant with LangChain tools and memory | Custom tools, agent executors, memory persistence, error handling |
374
- | 🚀 [Swarms](./examples/integrations/swarms_example.py) | Multi-agent system framework with persistent memory capabilities | Memory-enhanced Swarms agents with auto/conscious ingestion | Agent memory persistence, multi-agent coordination, contextual awareness |
373
+ | Framework | Description | Example |
374
+ |-----------|-------------|---------|
375
+ | [AgentOps](./examples/integrations/agentops_example.py) | Track and monitor Memori memory operations with comprehensive observability | Memory operation tracking with AgentOps analytics |
376
+ | [Agno](./examples/integrations/agno_example.py) | Memory-enhanced agent framework integration with persistent conversations | Simple chat agent with memory search |
377
+ | [AWS Strands](./examples/integrations/aws_strands_example.py) | Professional development coach with Strands SDK and persistent memory | Career coaching agent with goal tracking |
378
+ | [Azure AI Foundry](./examples/integrations/azure_ai_foundry_example.py) | Azure AI Foundry agents with persistent memory across conversations | Enterprise AI agents with Azure integration |
379
+ | [CamelAI](./examples/integrations/camelai_example.py) | Multi-agent communication framework with automatic memory recording and retrieval | Memory-enhanced chat agents with conversation continuity |
380
+ | [CrewAI](./examples/integrations/crewai_example.py) | Multi-agent system with shared memory across agent interactions | Collaborative agents with memory |
381
+ | [Digital Ocean AI](./examples/integrations/digital_ocean_example.py) | Memory-enhanced customer support using Digital Ocean's AI platform | Customer support assistant with conversation history |
382
+ | [LangChain](./examples/integrations/langchain_example.py) | Enterprise-grade agent framework with advanced memory integration | AI assistant with LangChain tools and memory |
383
+ | [OpenAI Agent](./examples/integrations/openai_agent_example.py) | Memory-enhanced OpenAI Agent with function calling and user preference tracking | Interactive assistant with memory search and user info storage |
384
+ | [Swarms](./examples/integrations/swarms_example.py) | Multi-agent system framework with persistent memory capabilities | Memory-enhanced Swarms agents with auto/conscious ingestion |
375
385
 
376
386
  ## Interactive Demos
377
387
 
@@ -5,13 +5,11 @@ Professional-grade memory layer with comprehensive error handling, configuration
5
5
  management, and modular architecture for production AI systems.
6
6
  """
7
7
 
8
- __version__ = "1.0.0"
8
+ __version__ = "2.0.1"
9
9
  __author__ = "Harshal More"
10
10
  __email__ = "harshalmore2468@gmail.com"
11
11
 
12
- # Memory agents
13
- from .agents.memory_agent import MemoryAgent
14
- from .agents.retrieval_agent import MemorySearchEngine
12
+ from typing import Any, Optional
15
13
 
16
14
  # Configuration system
17
15
  from .config import (
@@ -72,7 +70,22 @@ from .utils import ( # Pydantic models; Enhanced exceptions; Validators and hel
72
70
  get_logger,
73
71
  )
74
72
 
75
- __all__ = [
73
+ # Memory agents (dynamically imported to avoid import errors)
74
+ MemoryAgent: Optional[Any] = None
75
+ MemorySearchEngine: Optional[Any] = None
76
+ _AGENTS_AVAILABLE = False
77
+
78
+ try:
79
+ from .agents.memory_agent import MemoryAgent
80
+ from .agents.retrieval_agent import MemorySearchEngine
81
+
82
+ _AGENTS_AVAILABLE = True
83
+ except ImportError:
84
+ # Agents are not available, use placeholder None values
85
+ pass
86
+
87
+ # Build __all__ list dynamically based on available components
88
+ _all_components = [
76
89
  # Core
77
90
  "Memori",
78
91
  "DatabaseManager",
@@ -82,9 +95,6 @@ __all__ = [
82
95
  "AgentSettings",
83
96
  "LoggingSettings",
84
97
  "ConfigManager",
85
- # Agents
86
- "MemoryAgent",
87
- "MemorySearchEngine",
88
98
  # Database
89
99
  "SQLiteConnector",
90
100
  "PostgreSQLConnector",
@@ -138,3 +148,9 @@ __all__ = [
138
148
  "LoggingManager",
139
149
  "get_logger",
140
150
  ]
151
+
152
+ # Add agents only if available
153
+ if _AGENTS_AVAILABLE:
154
+ _all_components.extend(["MemoryAgent", "MemorySearchEngine"])
155
+
156
+ __all__ = _all_components