Memory Trace Schema
Chronologue uses memory traces to represent structured information over time. These include user goals, reflections, system observations, and scheduled calendar events. Each trace is JSON-formatted and stored in a persistent memory store to support personalized planning, reflection, and agent reasoning.Memory Trace Types
Traces are typed objects with a shared core schema. The primarytype values include:
goal
Represents a user-defined intention or objective.- Example: “Finish CUDA tutorial this week”
reflection
A personal insight or retrospective evaluation.- Example: “Morning exercise made my focus better today”
observation
A system- or user-logged factual statement about activity or state.- Example: “Worked on writing sprint from 9:00 to 10:30”
calendar_event
A scheduled or logged event that maps to an external calendar entry.- Example: “Meeting with research team at 3pm”
Required and Optional Fields
Each trace includes the following fields:| Field | Type | Required | Description |
|---|---|---|---|
| uid | string | yes | Unique identifier for the trace |
| type | string | yes | One of: goal, reflection, observation, calendar_event |
| timestamp | string | yes | ISO 8601 timestamp marking creation |
| content | string | yes | Main text of the trace |
| task_id | string | no | Optional grouping ID for multi-step tasks |
| theme | string | no | Optional activity domain (e.g., fitness, learning, work) |
| action_type | string | no | Specifies agent/system action: schedule, reflect, log, update, delete |
| importance | number | no | Relative significance (0–1 float) |
| completion_status | string | no | One of: pending, completed, skipped |
| linked_event_uid | string | no | UID of associated calendar event (if applicable) |
| collaborators | array | no | List of user IDs or names involved |
| feedback_rating | number | no | User feedback score (1–5) |
| notes | string | no | Freeform comments or review notes |
Trace Lifecycle
Creation
Traces are created:- Automatically by LLMs after actions (e.g., scheduling a new event)
- Manually via user reflection or logging
Update
Fields likecompletion_status, importance, or notes can be updated over time as the task evolves or is reviewed.
Archival
Traces may be archived (or soft-deleted) for filtering long-term memory. You may optionally add anarchived_at timestamp.
Linking Traces
Event UID Linking
Traces of typegoal or reflection can reference a calendar_event using the linked_event_uid. This enables synchronization between memory and scheduling contexts.
Feedback Annotations
Users can provide feedback after a task:- Was this time block helpful?
- Was this goal realistic?
feedback_rating or added to the notes field.
Agent Action Metadata
To support filtering for model actions over time, use the optionalaction_type field. This helps distinguish between user-entered and model-generated traces and provides clarity in audits, learning loops, and structured logs.
Common values for action_type
| Value | Description |
|---|---|
| schedule | Agent added a new event to the calendar |
| reschedule | Agent moved an existing event |
| reflect | Agent generated a new reflection |
| log | System recorded a factual observation |
| update | Agent edited an existing trace |
| delete | Agent or user removed a trace or event |
Example Trace Payloads
Reflection
Calendar Event
Best Practices
- Use consistent formatting for timestamps (always UTC)
- Ensure
uidis globally unique (e.g., UUIDv4 or prefixed) - Link related traces by
linked_event_uidor sharedtask_id - Use
importanceandcompletion_statusto guide agent decisions - Use
action_typeto capture structured logs of agent reasoning and behavior - Avoid overloading
content– structure your data where possible