{% extends "base.html" %} {% from '_ui.html' import page_header, page_tabs, empty_state, id_chip %} {#- Sentence-case titles and one-line explanations per memory type; unknown types fall back to the route's display name. -#} {% set memory_pages = { 'personas': ('Personas', 'Saved personas that shape how agents describe themselves and respond.'), 'toolbox': ('Toolbox', 'Tools registered in the memory provider and available to agents.'), 'conversations': ('Conversation memory', 'Stored conversation turns across agents, memories and threads.'), 'knowledge-base': ('Knowledge base', 'Long-term knowledge entries that agents retrieve as evidence.'), 'short-term': ('Short-term memory', 'Working memory kept for active sessions.'), 'entity': ('Entity memory', 'Facts recorded about people, organizations and other entities.'), 'summaries': ('Summaries', 'Condensed summaries of earlier conversations.'), 'shared': ('Shared memory', 'Memory that several agents read and write together.'), 'cache': ('Semantic cache', 'Cached answers that agents reuse for semantically similar queries.'), } %} {% set page_info = memory_pages.get(memory_type, (memory_type_display|capitalize, None)) %} {% block title %}{{ page_info[0] }} - Memorizz{% endblock %} {% block body_attrs %} data-sidebar-scope="memory" data-sidebar-default="collapsed"{% endblock %} {% block content %} {#- Tabs switch memory types without the sidebar, which starts collapsed here. -#} {% set memory_tabs = [] %} {% for key, info in memory_pages.items() %}{% set _ = memory_tabs.append(('/memory/' ~ key, info[0]|replace(' memory', ''), key)) %}{% endfor %} {{ page_header(page_info[0], page_info[1], 'Memory', nav=page_tabs(memory_tabs, memory_type, 'Memory types')) }} {% if load_error %}
{% elif view.records %} {% set records = view.records %}{{ records|length }} items shown, newest first{% if total_known %}, of {{ '{:,}'.format(view.total) }}{% endif %}; more records exist.{% if view.sampled %} Role, memory ID and date figures cover these newest records.{% endif %} Narrow the query through the SDK or open the provider's database view for the rest.
{% endif %}| Recorded | {% if view.show_name %}Name | {% endif %}Content | {% if view.show_role %}Role | {% endif %} {% if view.show_memory %}Memory ID | {% endif %}Size | ID |
|---|---|---|---|---|---|---|
| {% if row.recorded %}{{ row.recorded }}{{ row.recorded[5:16] }}{% else %}—{% endif %} | {% if view.show_name %}{{ row.name or '—' }} | {% endif %}{{ row.preview or '—' }} | {% if view.show_role %}{% if row.role %}{{ row.role }}{% else %}—{% endif %} | {% endif %} {% if view.show_memory %}{{ row.memory_id[:14] or '—' }} | {% endif %}{{ '{:,}'.format(row.size) if row.size else '—' }} | {{ row.id[:10] or '—' }} |
No records match this filter.