{% extends "base.html" %} {% block title %}Workflow trajectories - Memorizz{% endblock %} {% block body_attrs %} data-sidebar-scope="learning" data-sidebar-default="collapsed"{% endblock %} {% block head %}{% endblock %} {% block content %} {% from '_ui.html' import page_header, empty_state, id_chip %} {% from '_learning_tabs.html' import learning_tabs %} {% set s = view.summary %} {% set short_status = {'ready': 'Ready', 'failing': 'Failing', 'evidence': 'Needs evidence', 'promoted': 'Promoted'} %} {% set status_pill = {'ready': 'pill--success', 'failing': 'pill--danger', 'evidence': '', 'promoted': 'pill--info'} %} {% call page_header('Workflow trajectories', 'Tool runs grouped into trajectory classes, one tool path per agent. A class that meets all four promotion criteria can be distilled into a learned skill.', 'Continual learning', nav=learning_tabs('workflows')) %} View learned skills {% endcall %} {% if view.agents %} {% for agent in view.reports %} {% set report = agent.report %}

Last promotion report

{{ agent.label }}{% if agent.short and agent.label != agent.short %} {{ agent.short }}{% endif %} · {{ report.at }}
{% endfor %}
Recorded runs{{ '{:,}'.format(s.runs) }}
Trajectory classes{{ s.classes }}
Agents{{ s.agents }}
Ready to distill{{ s.ready }}
Promoted{{ s.promoted }}
Failing{{ s.failing }}
Success{{ s.success_rate }}
Newest run{{ s.newest_ago }}
{% if view.agents|length > 1 %}
{% endif %}

j k movec copy hash/ filter

{% for cls in view.rows %} {% endfor %}
Trajectory classes, ready to distill first. Select a row to see its promotion criteria and runs.
{{ cls.agent_label }} {% for tool in cls.tools.split(' → ') %}{% if not loop.first %}{% endif %}{{ tool }}{% endfor %} {{ short_status[cls.status] }} {{ cls.executions }} {{ cls.success_rate }} {{ cls.distinct_queries }} {{ cls.criteria_met }}/{{ cls.criteria_total }} {% for gate in cls.gates %}{% endfor %} {{ cls.last_seen_ago }}

{% if view.rows %}No trajectory classes match this filter.{% else %}No trajectory classes yet. Runs without recorded tool steps are not grouped.{% endif %}

Agents

A promotion cycle sweeps stale skills, then distills the agent's top eligible classes through the same gates.
{% for agent in view.agents %} {% endfor %}
Trajectory classes and promotion readiness per agent.
Agent Classes Runs Ready Promoted Success Newest run Actions
{% if view.agents|length > 1 %}{% else %}{{ agent.label }}{% endif %} {% if agent.short and agent.label != agent.short %}{{ agent.short }}{% endif %} {{ agent.classes }} {{ agent.runs }} {{ agent.ready }} {{ agent.promoted }} {{ agent.success_rate }} {{ agent.newest_ago }} {% if agent.can_act %}
{% endif %}
{% else %} {{ empty_state('No workflow trajectories yet', 'Trajectories are captured automatically when an agent with workflow memory turned on calls tools. Once the same procedure repeats successfully, it becomes eligible for promotion to a learned skill.', '/agents', 'Open agents') }} {% endif %} {% endblock %}