Documentation Index
Fetch the complete documentation index at: https://docs.maximem.ai/llms.txt
Use this file to discover all available pages before exploring further.
Install
pip install maximem-synap-haystack
What’s included
| Class | Purpose |
|---|
SynapRetriever | Pipeline component that fetches Synap memories as Document objects |
SynapMemoryWriter | Pipeline component that writes conversation turns back to Synap |
SynapRetriever
Retrieves memories as Haystack Document objects for use in RAG pipelines.
from haystack import Pipeline
from haystack.components.builders import PromptBuilder
from synap_haystack import SynapRetriever
retriever = SynapRetriever(
sdk=sdk,
user_id="alice",
customer_id="acme", # optional
max_results=6,
mode="fast", # "fast" or "accurate"
)
pipeline = Pipeline()
pipeline.add_component("retriever", retriever)
pipeline.add_component("prompt_builder", PromptBuilder(template=your_template))
pipeline.connect("retriever.documents", "prompt_builder.documents")
result = pipeline.run({"retriever": {"query": "project deadlines"}})
Each returned Document has:
content — the memory text
meta["type"] — memory type (e.g. "fact", "preference")
meta["confidence"] — relevance score
SynapMemoryWriter
Records conversation turns back into Synap. Place it at the end of your pipeline after the LLM response.
from synap_haystack import SynapRetriever, SynapMemoryWriter
writer = SynapMemoryWriter(
sdk=sdk,
conversation_id="conv-001",
user_id="alice",
customer_id="acme",
)
pipeline = Pipeline()
pipeline.add_component("retriever", retriever)
pipeline.add_component("llm", your_llm)
pipeline.add_component("writer", writer)
pipeline.connect("retriever.documents", "llm.documents")
pipeline.connect("llm.replies", "writer.replies")
SynapMemoryWriter surfaces write failures explicitly (raises SynapIntegrationError) so your pipeline knows if memory persistence failed.
Full pipeline example
from haystack import Pipeline
from haystack.components.builders import PromptBuilder
from haystack.components.generators import OpenAIGenerator
from synap_haystack import SynapRetriever, SynapMemoryWriter
retriever = SynapRetriever(sdk=sdk, user_id="alice")
writer = SynapMemoryWriter(sdk=sdk, conversation_id="conv-001", user_id="alice")
template = """
Given this context about the user:
{% for doc in documents %}
- {{ doc.content }}
{% endfor %}
Answer: {{ query }}
"""
pipeline = Pipeline()
pipeline.add_component("retriever", retriever)
pipeline.add_component("prompt", PromptBuilder(template=template))
pipeline.add_component("llm", OpenAIGenerator(model="gpt-4o"))
pipeline.add_component("writer", writer)
pipeline.connect("retriever.documents", "prompt.documents")
pipeline.connect("prompt.prompt", "llm.prompt")
pipeline.connect("llm.replies", "writer.replies")
result = pipeline.run({
"retriever": {"query": "What are my priorities?"},
"prompt": {"query": "What are my priorities?"},
})
Next steps
LangChain
Memory and retriever for LangChain.
LlamaIndex
BaseMemory and retriever for LlamaIndex.