docs: Add crewai-soul as community memory backend#4755
docs: Add crewai-soul as community memory backend#4755menonpg wants to merge 2 commits intocrewAIInc:mainfrom
Conversation
Added crewai-soul to the Memory documentation as a community alternative for users who prefer: - Human-readable markdown storage (SOUL.md + MEMORY.md) - Git-versionable memory - Manual memory editing capabilities - File-based storage over databases Links to PyPI, GitHub, and comparison article included.
There was a problem hiding this comment.
Pull request overview
This PR adds a "Community Memory Backends" section to docs/en/concepts/memory.mdx, documenting crewai-soul — a third-party package that stores agent memories in markdown files (SOUL.md + MEMORY.md) for human-readable, git-versionable memory storage.
Changes:
- Adds a new
## Community Memory Backendssection to the core memory concept page - Documents
crewai-soulinstallation, usage, features, and links - Provides a usage example showing
SoulMemory()as a directCrewmemory=argument
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
docs/en/concepts/memory.mdx
Outdated
| ```markdown | ||
| # Memory Log | ||
|
|
||
| ## 2026-03-06 18:30:15 UTC |
There was a problem hiding this comment.
The example output in the markdown code block contains the hardcoded date 2026-03-06 18:30:15 UTC. This is a specific real-world date that will quickly become outdated and confusing to readers. Documentation examples should use a generic or placeholder date (e.g., YYYY-MM-DD HH:MM:SS UTC or a clearly illustrative date like 2024-01-15) rather than a specific timestamp tied to when this PR was authored.
| ## 2026-03-06 18:30:15 UTC | |
| ## YYYY-MM-DD HH:MM:SS UTC |
docs/en/concepts/memory.mdx
Outdated
| from crewai import Crew | ||
| from crewai_soul import SoulMemory | ||
|
|
||
| # Drop-in replacement for Memory | ||
| crew = Crew( | ||
| agents=[researcher, writer], | ||
| tasks=[...], | ||
| memory=SoulMemory(), |
There was a problem hiding this comment.
The code comment on line 790 describes SoulMemory() as a "Drop-in replacement for Memory", but the existing documentation (line 761) clearly states that custom storage backends should be passed as Memory(storage=your_backend) via the StorageBackend protocol. If SoulMemory is a completely separate class (not a Memory subclass or StorageBackend implementation), passing it directly as memory=SoulMemory() to Crew may not actually work with CrewAI's Crew constructor, which likely expects a Memory instance or True. This claim of being a "drop-in replacement" should be verified against CrewAI's actual type expectations, and the usage example should be updated to reflect the correct integration pattern (e.g., Memory(storage=SoulMemory()) if it implements StorageBackend).
| from crewai import Crew | |
| from crewai_soul import SoulMemory | |
| # Drop-in replacement for Memory | |
| crew = Crew( | |
| agents=[researcher, writer], | |
| tasks=[...], | |
| memory=SoulMemory(), | |
| from crewai import Crew, Memory | |
| from crewai_soul import SoulMemory | |
| # Use SoulMemory as a custom storage backend for Memory | |
| crew = Crew( | |
| agents=[researcher, writer], | |
| tasks=[...], | |
| memory=Memory(storage=SoulMemory()), |
docs/en/concepts/memory.mdx
Outdated
| **Links:** | ||
| - [GitHub](https://github.com/menonpg/crewai-soul) | ||
| - [PyPI](https://pypi.org/project/crewai-soul/) | ||
| - [Comparison: crewai-soul vs CrewAI Memory](https://menonlab-blog-production.up.railway.app/blog/crewai-soul-vs-crewai-memory) |
There was a problem hiding this comment.
The comparison article link points to a third-party blog hosted on menonlab-blog-production.up.railway.app, a Railway-hosted deployment. Railway-hosted apps can go offline or become unavailable at any time. Official CrewAI documentation should not include links to ephemeral third-party deployments, as they create a poor experience when the link becomes broken. Consider linking to a more stable hosting location, or removing the comparison link from the official docs.
| - [Comparison: crewai-soul vs CrewAI Memory](https://menonlab-blog-production.up.railway.app/blog/crewai-soul-vs-crewai-memory) |
docs/en/concepts/memory.mdx
Outdated
| **Features:** | ||
| - RAG + RLM hybrid retrieval via [soul-agent](https://github.com/menonpg/soul.py) | ||
| - Human-readable markdown files | ||
| - Git-versionable memory | ||
| - Managed cloud option ([SoulMate](https://menonpg.github.io/soulmate)) for production | ||
| - Database schema intelligence via [soul-schema](https://github.com/menonpg/soul-schema) | ||
|
|
||
| **Links:** | ||
| - [GitHub](https://github.com/menonpg/crewai-soul) | ||
| - [PyPI](https://pypi.org/project/crewai-soul/) | ||
| - [Comparison: crewai-soul vs CrewAI Memory](https://menonlab-blog-production.up.railway.app/blog/crewai-soul-vs-crewai-memory) |
There was a problem hiding this comment.
This PR embeds a community/third-party package (crewai-soul) directly into the core concept page memory.mdx. Looking at how other third-party integrations are documented in this repository, each integration has its own dedicated page (e.g., docs/en/observability/galileo.mdx, docs/en/observability/langfuse.mdx, etc.), rather than being embedded inside a core concept file. The pattern of adding a "Community Memory Backends" section within memory.mdx deviates from the established convention. Consider either giving crewai-soul its own page (e.g., docs/en/integrations/crewai-soul.mdx) and linking to it from memory.mdx, or clearly establishing and following a consistent pattern for community backend documentation.
| **Features:** | |
| - RAG + RLM hybrid retrieval via [soul-agent](https://github.com/menonpg/soul.py) | |
| - Human-readable markdown files | |
| - Git-versionable memory | |
| - Managed cloud option ([SoulMate](https://menonpg.github.io/soulmate)) for production | |
| - Database schema intelligence via [soul-schema](https://github.com/menonpg/soul-schema) | |
| **Links:** | |
| - [GitHub](https://github.com/menonpg/crewai-soul) | |
| - [PyPI](https://pypi.org/project/crewai-soul/) | |
| - [Comparison: crewai-soul vs CrewAI Memory](https://menonlab-blog-production.up.railway.app/blog/crewai-soul-vs-crewai-memory) | |
| ## Community memory backends | |
| CrewAI supports community-maintained memory backends that build on top of the core | |
| `Memory` interface. For example, the `crewai-soul` package provides a PostgreSQL- and | |
| markdown-based backend. For setup and usage details, see the dedicated integration | |
| guide: [crewai-soul integration](/integrations/crewai-soul). |
- Changed example date to placeholder YYYY-MM-DD HH:MM:SS UTC - Removed 'drop-in replacement' claim, show standalone usage instead - Removed Railway blog URL (ephemeral hosting concern) - Simplified to show crewai-soul's own API rather than Crew integration
Summary
Adds crewai-soul to the Memory documentation as a community backend option for users who prefer markdown-based, git-versionable memory storage.
What is crewai-soul?
A drop-in memory backend that stores agent memories in human-readable markdown files (
SOUL.md+MEMORY.md).Why users might prefer it:
Built on:
Links
Changes
docs/en/concepts/memory.mdxNote
Low Risk
Low risk documentation-only change with no runtime or API impact.
Overview
Adds a new Community Memory Backends section to
docs/en/concepts/memory.mdxintroducingcrewai-soulas an alternative, community-maintained memory backend.Documents when to use it, how to install it, a minimal standalone usage example, and links to its GitHub/PyPI plus a short feature list.
Written by Cursor Bugbot for commit a1df2d7. This will update automatically on new commits. Configure here.