def multi_type_rag(agent_id: str, question: str) -> str:
# Recall semantic facts (long-term knowledge)
facts = z3rno.recall(
agent_id=agent_id,
query=question,
memory_type="semantic",
top_k=5,
)
# Recall recent episodes (interaction history)
episodes = z3rno.recall(
agent_id=agent_id,
query=question,
memory_type="episodic",
top_k=5,
)
# Recall procedural knowledge (how to respond)
procedures = z3rno.recall(
agent_id=agent_id,
query=question,
memory_type="procedural",
top_k=3,
)
context_parts = []
if facts.results:
context_parts.append("## Known Facts\n" + "\n".join(
f"- {r.content}" for r in facts.results
))
if episodes.results:
context_parts.append("## Recent Interactions\n" + "\n".join(
f"- {r.content}" for r in episodes.results
))
if procedures.results:
context_parts.append("## Response Guidelines\n" + "\n".join(
f"- {r.content}" for r in procedures.results
))
context = "\n\n".join(context_parts)
completion = oai.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": f"Use this context to answer:\n\n{context}"},
{"role": "user", "content": question},
],
)
return completion.choices[0].message.content