Project Info
This project did not submit a demo video on Devpost.
Inspiration
AI chatbots have a memory to streamline conversations and draw context across conversations to make interactions more effective. These memory systems are similar to having someone use a Google Search to find a memory with keywords, but cannot go deeper than that about how the memories connect and fit together. The Problem with Current Memory Approaches Traditional Vector Search (The "Google Search" Problem): Stores memories as isolated embeddings in vector space Retrieval is based purely on semantic similarity to query No understanding of relationships between stored memories Results are ranked by distance metrics, not contextual relevance Cannot leverage connection patterns to improve accuracy over time Treats each piece of information as independent We believe we can combine the embedding space's ability to store ideas and use a graph to draw connections between them. In essence, we are inspired by the human mind to create a memory solution that can dynamically use nodes in a graph like neurons in a brain.
What it does
Our solution has the following key components: Dynamic Weighted Graph Memory: where the edge weight depends on the usage and relevance to the current node. Dual Storage Strategy: Neo4j Graph Database - Stores memories and their relationships with rich metadata. Weaviate Vector Store - Enables fast semantic similarity search. Hybrid Queries - Combines semantic search with graph traversal for superior results. Dual Storage Strategy: Neo4j Graph Database - Stores memories and their relationships with rich metadata. Weaviate Vector Store - Enables fast semantic similarity search. Hybrid Queries - Combines semantic search with graph traversal for superior results. Learning Connection Weights: Edges start at weight = 0 and strengthen through usage (neural-like plasticity). Connection types between nodes are causation, temporal sequence, similarity, contrast, generalization. Usage patterns influence future retrieval relevance. Learning Connection Weights: Edges start at weight = 0 and strengthen through usage (neural-like plasticity). Connection types between nodes are causation, temporal sequence, similarity, contrast, generalization. Usage patterns influence future retrieval relevance. What it all does Connection-Aware Retrieval: Instead of just finding semantically similar content, the system: Generates a hypothetical ideal response embedding Finds candidate memories through vector similarity Traverses the connection graph to discover related concepts Uses an AI filter agent to evaluate contextual relevance Returns curated results with provenance and reasoning Frontend Interface: Interact with a chatbot and use the 3D visualizer tool to see the dynamic memory graph in action. View memory nodes See access patterns Understand how the chatbot is using the memories it knows Why This Matters For AI Systems: More accurate retrieval that improves with usage Contextual understanding beyond keyword matching Reduced hallucination through connection-based validation Emergent knowledge discovery through graph patterns For Real Applications: Personal AI assistants that truly "remember" your conversations Educational systems that understand knowledge prerequisites Research tools that can discover non-obvious connections Customer service that learns relationship patterns in problems Company storage and access to knowledge and papers
How we built it
We came up with the full idea using experience from various coursework and used Claude Code to help build it.
Challenges we ran into
Time restriction Limitations on RAM
Accomplishments we're proud of
We are proud of having come up with this idea and building both a front and back end for it to make it as interactive and intuitive as possible.
What we learned
We learned about implementations of the embedding space and how to use React.js for visualizations. We learned about existing memory management techniques and their drawbacks.
What's next
We would like to improve the visualization's 3D capabilities by exploring other implementations.
Inspiration
AI chatbots have a memory to streamline conversations and draw context across conversations to make interactions more effective. These memory systems are similar to having someone use a Google Search to find a memory with keywords, but cannot go deeper than that about how the memories connect and fit together. The Problem with Current Memory Approaches Traditional Vector Search (The "Google Search" Problem):
- Stores memories as isolated embeddings in vector space
- Retrieval is based purely on semantic similarity to query
- No understanding of relationships between stored memories
- Results are ranked by distance metrics, not contextual relevance
- Cannot leverage connection patterns to improve accuracy over time
- Treats each piece of information as independent
We believe we can combine the embedding space's ability to store ideas and use a graph to draw connections between them. In essence, we are inspired by the human mind to create a memory solution that can dynamically use nodes in a graph like neurons in a brain.
What it does
Our solution has the following key components:
- Dynamic Weighted Graph Memory:
Memories as Nodes: {concept, content, keywords, tags, connections}
Relationships as Edges: {connection_type, weight, usage_history}
where the edge weight depends on the usage and relevance to the current node.
-
Dual Storage Strategy: Neo4j Graph Database - Stores memories and their relationships with rich metadata. Weaviate Vector Store - Enables fast semantic similarity search. Hybrid Queries - Combines semantic search with graph traversal for superior results.
-
Learning Connection Weights: Edges start at weight = 0 and strengthen through usage (neural-like plasticity). Connection types between nodes are causation, temporal sequence, similarity, contrast, generalization. Edge weights are based purely on access frequency and relative recency — measured by system activity, not wall-clock time — so frequently co-accessed memories develop stronger connections over time.
What it all does Connection-Aware Retrieval:
Instead of just finding semantically similar content, the system:
- Generates a hypothetical ideal response embedding
- Finds candidate memories through vector similarity
- Traverses the connection graph to discover related concepts
- Uses an AI filter agent to evaluate contextual relevance
- Returns curated results with provenance and reasoning
Frontend Interface:
Interact with a chatbot and use the 3D visualizer tool to see the dynamic memory graph in action.
- View memory nodes
- See access patterns
- Understand how the chatbot is using the memories it knows
Why This Matters For AI Systems:
- More accurate retrieval that improves with usage
- Contextual understanding beyond keyword matching
- Reduced hallucination through connection-based validation
- Emergent knowledge discovery through graph patterns
For Real Applications:
- Personal AI assistants that truly "remember" your conversations
- Educational systems that understand knowledge prerequisites
- Research tools that can discover non-obvious connections
- Customer service that learns relationship patterns in problems
- Company storage and access to knowledge and papers
How we built it
We came up with the full idea using experience from various coursework and used Claude Code to help build it.
Challenges we ran into
- Time restriction
- Limitations on RAM
Accomplishments that we're proud of
We are proud of having come up with this idea and building both a front and back end for it to make it as interactive and intuitive as possible.
What we learned
We learned about implementations of the embedding space and how to use React.js for visualizations. We learned about existing memory management techniques and their drawbacks.
What's next for memory-manager
We would like to improve the visualization's 3D capabilities by exploring other implementations.
Analysis
View
Metric
- 28
- 19
- 14
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- AnthropicIn code
- FastAPIIn code
- HTMLIn code
- Hugging FaceIn code
- JavaScriptIn code
- PythonIn code
- PyTorchIn code
- ReactIn code
- TypeScriptIn code
- Google GeminiClaimed
9 of 10 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
- Claude CodeCommits
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
1.2 MB
Source files
119
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
KomalKaur0/memory-manager
138 files · 1.7 MB · @ dbbbcc2
Structure
Interface
16 files · 12%Screens, components and styles rendered to the user.
API & routing
7 files · 5%Request entry points: routes, handlers and controllers.
Application logic
67 files · 49%Domain rules, services and shared utilities.
+5 more
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python80%
- TypeScript16%
- Markdown2%
- Shell1%
- HTML1%
- YAML0%
- Other (1)0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 46- annotated-types
- anthropic
- anyio
- certifi
- charset-normalizer
- fastapi
- filelock
- fsspec
- hf-xet
- huggingface-hub
- idna
- iniconfig
- jinja2
- joblib
- markupsafe
- mpmath
- neo4j
- networkx
- +28 more
frontend/package.json
npm · 19- @expo/metro-runtime
- @react-navigation/bottom-tabs
- @react-navigation/native
- expo
- expo-blur
- expo-status-bar
- react
- react-dom
- react-native
- react-native-gesture-handler
- react-native-reanimated
- react-native-safe-area-context
- react-native-screens
- react-native-svg
- react-native-web
- zustand
- +3 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.