{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"hn-47914367","slug":"ai-memory-with-biological-decay","name":"AI memory with biological decay","type":"repo","url":"https://github.com/sachitrafa/YourMemory","page_url":"https://unfragile.ai/ai-memory-with-biological-decay","categories":["rag-knowledge"],"tags":["hackernews","show-hn"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"hn-47914367__cap_0","uri":"capability://memory.knowledge.biological.decay.based.memory.forgetting","name":"biological decay-based memory forgetting","description":"Implements spaced repetition and memory decay using biological forgetting curves (Ebbinghaus-inspired) rather than simple TTL or LRU eviction. Memories degrade probabilistically over time based on access frequency and recency, with recall probability decreasing according to a decay function. The system tracks memory age, access count, and last-accessed timestamp to compute dynamic decay rates, enabling memories to fade naturally while high-value memories remain retrievable longer.","intents":["Build AI agents that forget irrelevant context naturally without manual pruning","Implement long-running agents that maintain bounded memory without explicit cleanup logic","Create more human-like memory behavior where important facts persist but trivial details fade","Reduce hallucination by preventing stale or low-confidence memories from influencing decisions"],"best_for":["AI agent developers building long-running conversational systems","Researchers studying memory mechanisms in LLM-based agents","Teams building personal assistant agents that need contextual awareness over weeks/months"],"limitations":["Decay function parameters (half-life, decay rate) require tuning per use case; no adaptive learning of optimal decay curves","52% recall rate suggests significant information loss; may not be suitable for fact-critical applications","No mechanism to distinguish between important and unimportant memories during decay — all memories fade uniformly unless explicitly weighted","Probabilistic forgetting introduces non-determinism; same query may retrieve different context on different invocations"],"requires":["Python 3.8+","Ability to store and query timestamped memory records","LLM integration for embedding/retrieval (OpenAI, Anthropic, or local model)"],"input_types":["text (conversation turns, observations, facts)","structured metadata (timestamps, access counts, importance weights)"],"output_types":["retrieved memory fragments (text)","decay probability scores (float 0-1)","filtered context for LLM prompt injection"],"categories":["memory-knowledge","agent-memory-management"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"hn-47914367__cap_1","uri":"capability://memory.knowledge.time.aware.memory.indexing.and.retrieval","name":"time-aware memory indexing and retrieval","description":"Maintains a time-indexed memory store where each memory record includes creation timestamp, last-access timestamp, and access frequency counters. Retrieval queries compute decay scores on-the-fly by evaluating the memory's age against a decay function, then filter/rank results by decay probability. The system supports both semantic similarity search (via embeddings) and temporal filtering, allowing queries like 'retrieve memories from the last week' or 'find facts I've accessed frequently'.","intents":["Query memories with temporal constraints (e.g., 'what did we discuss yesterday')","Retrieve high-confidence memories that have been reinforced through repeated access","Filter out stale memories that have decayed below a confidence threshold","Implement memory lifecycle management (creation → active → decay → forgetting)"],"best_for":["Developers building conversational agents with multi-turn memory","Teams implementing memory-augmented LLM systems with temporal awareness","Researchers prototyping memory decay models for cognitive science"],"limitations":["Requires persistent storage with timestamp indexing; no built-in database abstraction (must implement own storage layer)","Decay computation on every retrieval adds latency; no pre-computed decay scores or caching strategy documented","No support for memory consolidation or summarization; memories remain atomic and don't merge over time","Temporal queries require explicit time bounds; no natural language temporal parsing (e.g., 'last week' must be converted to epoch timestamps)"],"requires":["Persistent key-value or document store (e.g., SQLite, PostgreSQL, Redis)","Timestamp synchronization across agent instances","Embedding model for semantic similarity (local or API-based)"],"input_types":["text (memory content)","timestamp (creation/access time)","numeric (access count, importance weight)"],"output_types":["ranked memory list (text + decay score)","filtered context window (text)","memory metadata (timestamps, decay probability)"],"categories":["memory-knowledge","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"hn-47914367__cap_2","uri":"capability://memory.knowledge.probabilistic.memory.filtering.by.decay.threshold","name":"probabilistic memory filtering by decay threshold","description":"Implements a confidence-based filtering mechanism where memories are included in the agent's context window only if their decay probability exceeds a configurable threshold. The system computes decay probability as a function of memory age, access frequency, and a parameterized decay curve (e.g., exponential, power-law). Memories below the threshold are excluded from LLM prompts, effectively implementing 'soft forgetting' where low-confidence memories don't influence reasoning but remain in storage for potential recovery.","intents":["Prevent low-confidence stale memories from contaminating LLM reasoning","Dynamically adjust context window size based on memory confidence distribution","Implement graceful memory degradation without hard deletion","Control hallucination by excluding uncertain memories from prompt context"],"best_for":["Long-running agents where context pollution from stale facts is a problem","Systems requiring tunable memory confidence thresholds per domain","Researchers studying the impact of memory uncertainty on LLM behavior"],"limitations":["Threshold tuning is manual and domain-specific; no automated threshold optimization","Probabilistic filtering introduces variance in agent behavior; same query may produce different outputs depending on decay state","No mechanism to recover 'forgotten' memories if they become relevant again (e.g., user explicitly asks about old context)","Decay function parameters (half-life, shape) must be set globally; no per-memory-type decay rates"],"requires":["Configurable decay function (exponential, power-law, or custom)","Threshold parameter (float 0-1, typically 0.3-0.7)","Memory metadata (age, access count)"],"input_types":["memory record (text + metadata)","decay threshold (float)","decay function parameters (half-life, shape)"],"output_types":["filtered memory list (text)","decay probability scores (float 0-1)","context window (text ready for LLM prompt)"],"categories":["memory-knowledge","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"hn-47914367__cap_3","uri":"capability://memory.knowledge.access.frequency.tracking.for.memory.reinforcement","name":"access frequency tracking for memory reinforcement","description":"Tracks how many times each memory has been retrieved or referenced by the agent, using access count as a signal of memory importance. Frequently accessed memories decay more slowly (higher half-life) than rarely accessed ones, implementing a reinforcement mechanism where 'using' a memory strengthens it. The system updates access counts on every retrieval and incorporates them into the decay function, so memories that are repeatedly useful resist forgetting longer.","intents":["Reinforce important memories through repeated use without explicit user annotation","Distinguish between frequently-used facts and one-off observations","Implement implicit importance weighting based on agent behavior","Build memory hierarchies where core facts persist longer than peripheral details"],"best_for":["Agents with long interaction histories where usage patterns emerge","Systems where user feedback on memory importance is unavailable","Teams building agents that learn which memories are valuable through behavior"],"limitations":["Access frequency is a proxy for importance, not ground truth; frequently accessed memories may be wrong or outdated","No decay of access counts themselves; old access patterns influence decay indefinitely (no recency weighting of the access history)","Requires tracking every retrieval; adds overhead to memory queries and storage","No mechanism to 'unlearn' memories that were frequently accessed but later proven incorrect"],"requires":["Mutable memory records with access count field","Decay function that incorporates access frequency (e.g., half-life ∝ log(access_count))","Update mechanism on every memory retrieval"],"input_types":["memory record (text + access count)","retrieval event (timestamp)"],"output_types":["updated memory record (text + incremented access count)","decay rate (adjusted for frequency)","importance signal (derived from access count)"],"categories":["memory-knowledge","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"hn-47914367__cap_4","uri":"capability://memory.knowledge.embedding.based.semantic.memory.retrieval","name":"embedding-based semantic memory retrieval","description":"Converts memory text to dense vector embeddings (via OpenAI, Anthropic, or local embedding model) and stores them in a vector index. Retrieval queries are also embedded and matched against the index using cosine similarity or other distance metrics, enabling semantic search where 'what did we discuss about budgets' retrieves memories about 'financial planning' even without exact keyword match. The system integrates embedding generation with the decay filtering pipeline, so retrieved memories are ranked by both semantic relevance and decay probability.","intents":["Retrieve memories by semantic meaning rather than exact keywords","Find related memories across different phrasings or contexts","Implement natural language memory queries without structured syntax","Combine semantic relevance with temporal decay for hybrid ranking"],"best_for":["Conversational agents where users phrase queries in natural language","Systems with large memory stores (100s-1000s of memories) where keyword search is insufficient","Teams using OpenAI or Anthropic APIs and willing to pay per-embedding costs"],"limitations":["Embedding generation adds latency (100-500ms per query depending on model) and cost (API-based models charge per token)","Semantic similarity is approximate; may retrieve irrelevant memories with high surface similarity but different intent","Requires re-embedding all memories if the embedding model changes; no model-agnostic vector format","Vector index must be kept in sync with memory store; no built-in consistency guarantees"],"requires":["Embedding model (OpenAI text-embedding-3-small, Anthropic, or local model like sentence-transformers)","Vector index library (e.g., FAISS, Pinecone, Weaviate, or in-memory numpy arrays)","API key for embedding service (if using cloud models)"],"input_types":["text (memory content for embedding)","text (query for semantic search)"],"output_types":["ranked memory list (text + similarity score + decay score)","embedding vectors (float arrays)","hybrid relevance scores (combination of semantic + decay)"],"categories":["memory-knowledge","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"hn-47914367__cap_5","uri":"capability://memory.knowledge.configurable.decay.function.parameterization","name":"configurable decay function parameterization","description":"Allows users to specify decay function parameters (half-life, shape, minimum confidence floor) that control how quickly memories fade. The system supports multiple decay models (exponential, power-law, or custom functions) and applies them uniformly across all memories. Parameters can be adjusted globally or per-memory-type, enabling domain-specific tuning (e.g., facts decay slower than opinions). The decay function is evaluated at query time using memory age and access frequency to compute current confidence probability.","intents":["Tune memory persistence to match domain requirements (e.g., facts last longer than gossip)","Experiment with different decay models to find optimal recall/forgetting balance","Implement domain-specific memory policies without code changes","Control the 52% recall rate by adjusting decay aggressiveness"],"best_for":["Researchers tuning memory decay models for specific domains","Teams deploying agents across multiple use cases with different memory requirements","Developers prototyping memory behavior without recompiling code"],"limitations":["No automated parameter optimization; tuning is manual trial-and-error","Global parameters apply uniformly to all memories; no per-memory importance weighting","Decay function is fixed at initialization; no online learning or adaptive adjustment","No guidance on parameter selection; users must understand decay mathematics to tune effectively"],"requires":["Configuration file or environment variables for decay parameters","Decay function implementation (exponential, power-law, or custom callable)","Memory metadata (age, access count) for parameter evaluation"],"input_types":["decay parameters (half-life: float, shape: float, min_confidence: float)","decay function type (string: 'exponential', 'power-law', or callable)","memory metadata (age, access count)"],"output_types":["decay probability (float 0-1)","confidence score (float 0-1)","decay rate (float, units depend on function)"],"categories":["memory-knowledge","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"hn-47914367__cap_6","uri":"capability://memory.knowledge.memory.consolidation.and.summarization.inferred.capability","name":"memory consolidation and summarization (inferred capability)","description":"Based on the 52% recall metric and biological memory inspiration, the system likely implements or supports memory consolidation where related memories are periodically merged or summarized to reduce storage and improve retrieval efficiency. This would involve identifying semantically similar memories, generating summaries, and replacing clusters with consolidated records. The consolidation process would preserve high-level information while discarding redundant details, mimicking biological memory consolidation during sleep.","intents":["Reduce memory store size while preserving important information","Merge redundant or overlapping memories to improve retrieval efficiency","Implement long-term memory consolidation similar to biological systems","Improve recall by reducing noise from duplicate or near-duplicate memories"],"best_for":["Long-running agents with months of interaction history","Systems with limited storage or retrieval budget","Teams studying memory consolidation mechanisms in AI"],"limitations":["Consolidation is lossy; details are discarded during summarization, potentially losing important nuance","Requires LLM calls to generate summaries; adds computational cost and latency","No mechanism to recover discarded details if they become relevant later","Consolidation timing and triggers are unclear; no documented strategy for when/how often to consolidate"],"requires":["LLM for generating summaries (OpenAI, Anthropic, or local model)","Clustering algorithm to identify related memories (semantic similarity via embeddings)","Consolidation trigger (time-based, size-based, or manual)"],"input_types":["memory cluster (list of related text memories)","consolidation parameters (similarity threshold, summary length)"],"output_types":["consolidated memory (summarized text)","metadata (original memory count, compression ratio)"],"categories":["memory-knowledge","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":40,"verified":false,"data_access_risk":"high","permissions":["Python 3.8+","Ability to store and query timestamped memory records","LLM integration for embedding/retrieval (OpenAI, Anthropic, or local model)","Persistent key-value or document store (e.g., SQLite, PostgreSQL, Redis)","Timestamp synchronization across agent instances","Embedding model for semantic similarity (local or API-based)","Configurable decay function (exponential, power-law, or custom)","Threshold parameter (float 0-1, typically 0.3-0.7)","Memory metadata (age, access count)","Mutable memory records with access count field"],"failure_modes":["Decay function parameters (half-life, decay rate) require tuning per use case; no adaptive learning of optimal decay curves","52% recall rate suggests significant information loss; may not be suitable for fact-critical applications","No mechanism to distinguish between important and unimportant memories during decay — all memories fade uniformly unless explicitly weighted","Probabilistic forgetting introduces non-determinism; same query may retrieve different context on different invocations","Requires persistent storage with timestamp indexing; no built-in database abstraction (must implement own storage layer)","Decay computation on every retrieval adds latency; no pre-computed decay scores or caching strategy documented","No support for memory consolidation or summarization; memories remain atomic and don't merge over time","Temporal queries require explicit time bounds; no natural language temporal parsing (e.g., 'last week' must be converted to epoch timestamps)","Threshold tuning is manual and domain-specific; no automated threshold optimization","Probabilistic filtering introduces variance in agent behavior; same query may produce different outputs depending on decay state","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.58,"quality":0.24,"ecosystem":0.46,"match_graph":0.25,"freshness":0.6,"weights":{"adoption":0.3,"quality":0.2,"ecosystem":0.15,"match_graph":0.3,"freshness":0.05}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:04.692Z","last_scraped_at":"2026-05-04T08:09:54.664Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=ai-memory-with-biological-decay","compare_url":"https://unfragile.ai/compare?artifact=ai-memory-with-biological-decay"}},"signature":"pkN2ot7PT1Ajdsqa2QTQXXAWWwUMu2ZwxT8dtEY4j0ePOT1xTcUIy+J4K6phGmqSysBxxT7AzPO+SIicqD3DBw==","signedAt":"2026-06-22T22:10:18.490Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/ai-memory-with-biological-decay","artifact":"https://unfragile.ai/ai-memory-with-biological-decay","verify":"https://unfragile.ai/api/v1/verify?slug=ai-memory-with-biological-decay","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}