{"name":"io.github.vbcherepanov/total-agent-memory","slug":"vbcherepanov-total-agent-memory","title":"Total Agent Memory","description":"Persistent local memory for coding agents: temporal knowledge graph, procedural and episodic recall","url":"https://mcp.market/server/vbcherepanov-total-agent-memory","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":47,"stars":68,"forks":17,"downloads_week":166,"last_push_at":"2026-09-15T14:34:07.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/vbcherepanov/total-agent-memory","website":"https://totalmemory.dev","version":"14.0.0","remotes":[],"packages":[{"registryType":"pypi","identifier":"total-agent-memory","version":"14.0.0","transport":{"type":"stdio"}}],"tools":[{"name":"analogize","description":"Find past solutions/lessons from OTHER projects whose feature set","write_action":false,"price_micros":0,"input_schema":null},{"name":"benchmark","description":"Run the eval harness: recall_at_k, prevention_rate, latency percentiles.","write_action":true,"price_micros":0,"input_schema":null},{"name":"classify_task","description":"v8.0: classify task into L1-L4 complexity + suggested phases.","write_action":false,"price_micros":0,"input_schema":null},{"name":"file_context","description":"BEFORE editing a file, call this to surface past errors, lessons,","write_action":false,"price_micros":0,"input_schema":null},{"name":"ingest_codebase","description":"Parse a file or directory into semantic AST chunks","write_action":false,"price_micros":0,"input_schema":null},{"name":"kg_add_fact","description":"Record a temporal fact assertion (subject, predicate, object).","write_action":false,"price_micros":0,"input_schema":null},{"name":"kg_at","description":"Point-in-time query: return fact assertions valid at `timestamp`","write_action":false,"price_micros":0,"input_schema":null},{"name":"kg_invalidate_fact","description":"Close a currently-valid fact assertion. History is retained.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kg_timeline","description":"Full chronological history of assertions for a subject.","write_action":false,"price_micros":0,"input_schema":null},{"name":"learn_error","description":"Structured error capture: file, error, root_cause, fix, pattern.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_intents","description":"List recent user prompts from the intents table, newest first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_answer","description":"Generate and verify a cited answer using the configured reasoning LLM.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_associate","description":"Associative recall — brain-like spreading activation through knowledge graph.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_concepts","description":"List or search concepts in the knowledge graph.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_consolidate","description":"Find and merge duplicate/similar knowledge records. Keeps the longest version,","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_consolidate_status","description":"v11.0 W2-G: report the consolidation daemon state — per-project last-run,","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_context_build","description":"Build optimal context for a query. Combines: spreading activation + knowledge graph","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_delete","description":"Delete a knowledge record (soft-delete). Removes from search results and ChromaDB.","write_action":true,"price_micros":0,"input_schema":null},{"name":"memory_entity_resolve","description":"v11.0 W1-F: resolve a mention to its canonical entity within a project+type.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_episode_recall","description":"Find past episodes (experiences). Search by concepts, outcome, project, or impact.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_episode_save","description":"Save an episode — narrative of WHAT HAPPENED and HOW.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_eval_contradictions","description":"v11.0 Phase 8: runs contradiction_detector against a labelled","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_eval_entity_consistency","description":"v11.0 Phase 8: verifies entity_dedup canonicalization is stable","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_eval_locomo","description":"v11.0 Phase 8: run the LongMemEval-style recall+prevention","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_eval_long_context","description":"v11.0 Phase 8: large-context recall scenario. Saves N records","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_eval_recall","description":"v11.0 Phase 8: generic recall benchmark on a dataset path or a","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_eval_temporal","description":"v11.0 Phase 8: temporal recall using temporal_kg + temporal_filter.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_explain_search","description":"v11.0: same as memory_search_fast but returns a per-tier breakdown","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_export","description":"Export all knowledge as JSON for backup or migration.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_extract_session","description":"Get pending session transcripts for knowledge extraction.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_forget","description":"Apply retention policy: archive stale records (>180d, never recalled, low confidence),","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_get","description":"Batched fetch by ID — complement to memory_recall(mode='index').","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_graph","description":"Query the unified knowledge graph. Returns neighborhood of a node:","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_graph_index","description":"Reindex CLAUDE.md rules and skills into the knowledge graph.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_graph_stats","description":"Knowledge graph statistics: nodes, edges, communities, top concepts, health metrics.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_history","description":"View version history for a knowledge record. Shows the chain of superseded versions","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_index_passages","description":"Build local passage indexes before evidence searches. Repeat using next_after_id until remaining=0.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_observe","description":"Save a lightweight observation (auto-capture). No dedup, no ChromaDB — fast and cheap.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_perf_report","description":"v11.0: dump in-process telemetry counters (search_total_ms, embed_ms,","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_rebuild_embeddings","description":"v11.0: re-encode every record (or every record in a given embedding","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_rebuild_fts","description":"v11.0: drop and rebuild the SQLite FTS5 virtual table from `knowledge`","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_recall","description":"Search ALL memory: decisions, solutions, facts, lessons from ALL past sessions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_recall_iterative","description":"v11.0 W1-B: IRCoT-style iterative retrieval. Decomposes the query into","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_reflect_now","description":"Run reflection (the 'sleep' process). Consolidates knowledge, finds patterns,","write_action":true,"price_micros":0,"input_schema":null},{"name":"memory_relate","description":"Create a typed relation between two knowledge records. Enriches graph expansion in Tier 4 search.","write_action":true,"price_micros":0,"input_schema":null},{"name":"memory_save","description":"Save knowledge explicitly. Types: decision (MUST include WHY in context),","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_save_fast","description":"v11.0: same as memory_save but routes through the fast hot path","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_search_by_tag","description":"Search knowledge by tag. Returns all active records with matching tag (partial match).","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_search_fast","description":"v11.0: like memory_recall but with rerank=False, diverse=False forced.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_self_assess","description":"Self-assessment: how competent am I in given domains? Shows level, confidence, blind spots.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_skill_get","description":"Find skills matching a trigger. Skills are learned procedures — HOW to do things.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_skill_update","description":"Record skill usage or refine a skill. Updates success rate and metrics.","write_action":true,"price_micros":0,"input_schema":null},{"name":"memory_stats","description":"Memory statistics with health metrics: sessions, knowledge by type/project,","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_temporal_query","description":"v11.0 W1-C: deterministic temporal reasoning — Allen interval relations,","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_timeline","description":"Browse session history. sessions_ago=N for 'N sessions ago',","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_update","description":"Update existing knowledge. Finds old by search query, supersedes it, creates new version.","write_action":true,"price_micros":0,"input_schema":null},{"name":"memory_warmup","description":"v11.0: pre-load FastEmbed model and open the vector store, so the","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_wiki_generate","description":"v10 — Render the per-project wiki digest (top decisions,","write_action":false,"price_micros":0,"input_schema":null},{"name":"phase_transition","description":"v8.0: advance a task to the next phase.","write_action":false,"price_micros":0,"input_schema":null},{"name":"rule_set_phase","description":"Attach or remove a phase scope on a rule (v8.0 lazy rule loading).","write_action":false,"price_micros":0,"input_schema":null},{"name":"save_decision","description":"v8.0: save a structured architectural decision (options + criteria matrix +","write_action":false,"price_micros":0,"input_schema":null},{"name":"save_intent","description":"Persist one user prompt into the `intents` table (same source as the","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_intents","description":"Substring search over user prompts (LIKE). Returns newest match first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"self_error_log","description":"Log an error/failure for pattern analysis. Call AUTOMATICALLY when:","write_action":false,"price_micros":0,"input_schema":null},{"name":"self_insight","description":"Manage insights from error patterns (ExpeL-style). Actions:","write_action":false,"price_micros":0,"input_schema":null},{"name":"self_patterns","description":"Analyze error patterns and self-improvement stats. Views:","write_action":false,"price_micros":0,"input_schema":null},{"name":"self_reflect","description":"Save a verbal self-reflection (Reflexion pattern).","write_action":false,"price_micros":0,"input_schema":null},{"name":"self_rules","description":"Manage behavioral rules (SOUL). Rules are promoted insights that shape agent behavior.","write_action":false,"price_micros":0,"input_schema":null},{"name":"self_rules_context","description":"Get active behavioral rules for current session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"session_end","description":"End-of-session capture: summary + highlights + pitfalls + next_steps","write_action":false,"price_micros":0,"input_schema":null},{"name":"session_init","description":"At session start: return the most recent unconsumed end-of-session","write_action":false,"price_micros":0,"input_schema":null},{"name":"task_create","description":"v8.0: start a task in `van` phase (auto-classifies level if missing).","write_action":true,"price_micros":0,"input_schema":null},{"name":"task_phases_list","description":"v8.0: list all phases of a task in chronological order.","write_action":false,"price_micros":0,"input_schema":null},{"name":"workflow_learn","description":"Record a learned workflow (named sequence of steps) for future reuse.","write_action":false,"price_micros":0,"input_schema":null},{"name":"workflow_predict","description":"Predict outcome (success probability, avg duration) for a workflow","write_action":false,"price_micros":0,"input_schema":null},{"name":"workflow_track","description":"Record a workflow execution outcome. Outcome ∈","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-19T21:13:43.075Z","report":{"scannerVersion":"0.1.8","scannedAt":"2026-09-19T21:13:43.045Z","components":{"code":{"score":20,"max":25,"notes":["265 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 4 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"total_agent_memory-14.0.0/src/ai_layer/verifier.py: …retrained(model_id) self._model.eval() self._device = self._pick_dev…"}],"inputs":{"packages":[{"registryType":"pypi","identifier":"total-agent-memory","version":"14.0.0","found":true,"weeklyDownloads":166,"license":"MIT","dependencyCount":14,"publishedAt":"2026-09-15T14:52:35.997928Z","repositoryUrl":"https://github.com/vbcherepanov/total-agent-memory"}],"repo":{"found":true,"owner":"vbcherepanov","repo":"total-agent-memory","archived":false,"pushedAt":"2026-09-15T14:34:07Z","stars":68,"forks":17,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/11525488?v=4","ownerCreatedAt":"2015-03-17T17:32:12Z","license":"MIT"},"icon":{"url":"https://totalmemory.dev/favicon.svg","source":"registry"},"presence":{"stars":68,"forks":17,"downloadsWeek":166,"license":"MIT","lastPushAt":"2026-09-15T14:34:07.000Z","score":47}}}},"grade_history":[{"kind":"restore","fromGrade":"D","toGrade":"A","reason":"score 85: eval / new Function used","createdAt":"2026-09-19T21:13:43.736Z"}],"reviews":[]}