Skip to main content
Tenant-scoped MemoryOS with OpenAI. The pattern is: write memories as facts emerge, retrieve before every model call, prepend system_prompt_addition only when not in passthrough.
import os
from memoryos import Memory
from openai import OpenAI

memory = Memory(api_key=os.environ["MEMORYOS_API_KEY"])
openai_client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])

external_user_id = "customer-123"
latest_user_message = "Can you answer the way I usually prefer?"

memory.add(
    messages=[{"role": "user", "content": "I prefer concise technical explanations with examples."}],
    external_user_id=external_user_id,
    metadata={"channel": "support-chat"},
)

memories = memory.get(query=latest_user_message, external_user_id=external_user_id, limit=5)

system_prompt = "You are a helpful assistant."
if not memories.is_passthrough and memories.system_prompt_addition:
    system_prompt = f"{system_prompt}\n\n{memories.system_prompt_addition}"

response = openai_client.responses.create(
    model="gpt-4.1-mini",
    input=[
        {"role": "system", "content": system_prompt},
        {"role": "user", "content": latest_user_message},
    ],
)

print(response.output_text)
memory.close()
Key rules:
  • Keep MEMORYOS_API_KEY server-side
  • Don’t fail the LLM call when MemoryOS is in passthrough
  • Treat system_prompt_addition as optional — the call should work with or without it
For the cross-agent Memory Passport flow, see Cross-agent memory sharing.