Every message you send includes your entire conversation history. By message 200, your LLM is wading through noise just to answer a simple question. ChatSorter compresses that history into what's actually relevant — so your chatbot stays fast and stays accurate no matter how long the conversation gets.
# Every message your user sends requests.post("api.chatsorter.com/process", json={ "chat_id": user_id, "message": user_message }) # Before every LLM call — inject only what matters r = requests.post("api.chatsorter.com/search", json={ "chat_id": user_id, "query": user_message }) # Instead of 200 raw messages, your LLM gets: # "User is allergic to peanuts" # "User is a pharmacy owner" # "User's active issue: corporate lawsuit"
Three layers that replace your bloated context window with exactly what the model needs right now.
The last few messages stay in a rolling window. No LLM involved, zero latency. Same as what your chatbot already does — just the foundation.
Every N messages get compressed into a concise summary by a local LLM. Your model sees 20 summaries instead of 400 raw messages. Sessions that used to slow down at message 100 stay fast at message 10,000.
High-signal messages get parsed into structured facts automatically. Permanent facts like name, job, and allergies never decay. Status facts like an active project or health condition decay on a timer unless mentioned again — so stale context stops poisoning responses.
Most memory tools store everything and hope for the best. ChatSorter decides what's worth remembering before it ever touches storage.
Every message scored 1–10 before storage. Filler never reaches the LLM. "I'll have the chicken" scores 2 and stays in the buffer. "I'm allergic to peanuts" scores 9 and gets permanently extracted.
Your bot learns that a user owns a pharmacy, is allergic to shellfish, and has an active lawsuit — without you writing a single line of extraction logic.
Long sessions get compressed automatically. Your LLM gets a tight relevant summary instead of a wall of chat history. Users at message 500 get the same fast accurate responses as users at message 5.
When your bot needs context, it gets the most relevant memories — not everything ever stored. Ranked by relevance, importance, and recency in one composite score.
Status facts like health conditions and active projects decay automatically if the user stops mentioning them. Your bot stops answering with information that stopped being true months ago.
POST /process after every user message. POST /search before every LLM call. That's the entire integration. Works with any Python backend and any LLM.
ChatSorter is built specifically for chatbot memory — not general-purpose vector storage.
| Feature | Mem0 | Supermemory | ChatSorter |
|---|---|---|---|
| Scores messages before storing | ✗ | ✗ | ✓ |
| Permanent vs status fact split | ✗ | ✗ | ✓ |
| Stale context auto-detection | ✗ | ✗ | ✓ |
| Bring your own vector DB | ✗ | ✗ | ✓ |
| Local inference option | ✗ | ✗ | ✓ |
| Free tier | Limited | 1M tokens/mo | Full beta access |
| Target use case | Enterprise | Full platform | Chatbot memory engine |
Free beta access. No credit card. Two API calls away from faster, smarter chatbot memory.