# As a condition of accessing this website, you agree to abide by the following # content signals: # (a) If a Content-Signal = yes, you may collect content for the corresponding # use. # (b) If a Content-Signal = no, you may not collect content for the # corresponding use. # (c) If the website operator does not include a Content-Signal for a # corresponding use, the website operator neither grants nor restricts # permission via Content-Signal with respect to the corresponding use. # The content signals and their meanings are: # search: building a search index and providing search results (e.g., returning # hyperlinks and short excerpts from your website's contents). Search does not # include providing AI-generated search summaries. # ai-input: inputting content into one or more AI models (e.g., retrieval # augmented generation, grounding, or other real-time taking of content for # generative AI search answers). # ai-train: training or fine-tuning AI models. # ANY RESTRICTIONS EXPRESSED VIA CONTENT SIGNALS ARE EXPRESS RESERVATIONS OF # RIGHTS UNDER ARTICLE 4 OF THE EUROPEAN UNION DIRECTIVE 2019/790 ON COPYRIGHT # AND RELATED RIGHTS IN THE DIGITAL SINGLE MARKET. # BEGIN Cloudflare Managed content User-agent: * Content-Signal: search=yes,ai-train=no Allow: / User-agent: Amazonbot Disallow: / User-agent: Applebot-Extended Disallow: / User-agent: Bytespider Disallow: / User-agent: CCBot Disallow: / User-agent: ClaudeBot Disallow: / User-agent: CloudflareBrowserRenderingCrawler Disallow: / User-agent: Google-Extended Disallow: / User-agent: GPTBot Disallow: / User-agent: meta-externalagent Disallow: / # END Cloudflare Managed Content
ChatSorter is a drop-in memory layer for AI chatbots. It scores every message, extracts facts, and returns only the relevant context — not everything you've ever stored.
Most memory tools store everything and dump it all into context. ChatSorter scores, filters, and returns only what's relevant right now.
Every message scored 1–10. "I love pizza" scores 4. "I'm allergic to peanuts" scores 10. Only high-signal messages get extracted permanently.
Structured key/value facts with confidence scores. "My dog is named Max" becomes { pet: "Max", confidence: 0.95 }. Not a paragraph of text.
Every 5 messages compressed into a third-person summary. Your model sees 20 summaries instead of 400 raw messages. Token costs drop fast.
Query returns only what matters for the current message. Semantic similarity + importance weighting + recency decay — all combined into one score.
Tentative/confirmed fact buckets. When someone says "I moved to SF," the system resolves the conflict and updates location — not appends it.
Two API calls. POST /process to store a message. POST /search to retrieve relevant context. Works with any Python backend, any LLM.
Most tools have one layer — a database. ChatSorter has three, each doing a specific job.
Last 5 messages kept in a rolling window. No LLM involved. Zero latency. Keeps the model aware of recent context without any processing overhead.
Every batch of 5 messages compressed into a single third-person summary via local inference. Stored with importance scores and timestamps. Decays over time.
High-signal messages parsed into typed key/value facts — name, job, allergies, pets, preferences. Stored with confidence scores. Never decays. Always surfaced first in retrieval.
| Feature | Mem0 | Supermemory | ChatSorter |
|---|---|---|---|
| Confidence scores on facts | ✗ | ✗ | ✓ |
| Importance-gated extraction | ✗ | ✗ | ✓ |
| Tentative/confirmed fact buckets | ✗ | ✗ | ✓ |
| Bring your own RAG/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 curl commands away from working memory for your chatbot.
Start building →