When you POST /v1/memories/ with infer: true (default) Flumes runs a lightweight classifier that tags every extracted fact with a memory_type field.
TypeWhen it’s usedExample
factDeclarative information believed to be true”Paris is the capital of France.”
preferenceSubjective tastes, likes/dislikes, habitual behaviors”I prefer vegetarian restaurants.”
goalDesired outcome or achievement”I want to run a marathon next year.”
taskActionable instruction / to-do”Book flights to Rome.”
observationSomething inferred or noticed by the AI/system”User’s mood appears excited.”
feedbackReaction to the AI’s behaviour (positive/negative)“That answer wasn’t helpful.”
planMulti-step strategy to accomplish a goal”First learn Italian basics, then practice daily.”
interactionRaw log from a user-agent conversation or meetingComplete message history items

How classification works

  1. We prompt a small language model with the message content.
  2. Model outputs one of the above labels.
  3. Label is stored in the memory’s metadata:
{
  "id": "...",
  "memory": "Book flights to Rome",
  "memory_type": "task",
  "metadata": { ... }
}

Filtering by type

curl -G https://api.flumes.ai/v1/memories \
  --data-urlencode "agent_id=alex" \
  --data-urlencode "prompt=rome" \
  --data-urlencode "memory_type=task" \
  -H "Authorization: Bearer $FLUMES_API_KEY"
Combine memory_type with time ranges or any other metadata for powerful queries.
Setting infer: false skips classification and stores memories exactly as you send them.