Add your description here
Project description
Neurotrace
A hybrid memory library designed for LangChain agents, providing dual-layer memory architecture with short-term buffer memory and long-term hybrid RAG system capabilities.
Overview
Neurotrace provides persistent, intelligent memory for conversational agents that improves over time and enables contextual understanding and recall. It combines vector-based and graph-based RAG (Retrieval Augmented Generation) systems to provide deeper and more accurate contextual reasoning.
🎯 Key Features
-
Dual-Layer Memory Architecture
- Short-term buffer memory for immediate context
- Long-term hybrid RAG system for persistent storage
-
Real-time Processing
- Real-time recall during conversations
- Intelligent storage and compression
-
Rich Message Structure
- Custom metadata-rich message formats
- Support for filtering and semantic tracing
-
Hybrid Retrieval System
- Combined vector and graph-based RAG
- Enhanced contextual reasoning capabilities
🎯 Target Users
- Developers building AI agents with LangChain
- Researchers exploring memory augmentation in LLMs
- Enterprises deploying context-aware AI assistants
Quick Start
Installation
pip install neurotrace
Complete Example
A complete, runnable example is available in examples/agent_example.py. This example demonstrates:
- Setting up a Neurotrace agent with both short-term and long-term memory
- Configuring vector and graph storage
- Implementing an interactive conversation loop
- Monitoring memory usage
To run the example:
# First set up your environment variables
export NEO4J_URL=bolt://localhost:7687
export NEO4J_USERNAME=neo4j
export NEO4J_PASSWORD=your_password
export GOOGLE_API_KEY=your_google_api_key
# Then run the example
python examples/agent_example.py
Required Environment Variables
NEO4J_URL=bolt://localhost:7687
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=your_password
GOOGLE_API_KEY=your_google_api_key # For Gemini LLM
Technical Documentation
Core Schema
The neurotrace.core.schema module defines the fundamental data structures used throughout the project.
Message
The core Message class represents a single message in the system:
from neurotrace.core.schema import Message, MessageMetadata, EmotionTag
message = Message(
role="user", # Can be "user", "ai", or "system"
content="Hello!", # The message text content
metadata=MessageMetadata(
source="chat",
emotions=EmotionTag(sentiment="positive")
)
)
Key features of Message:
- Auto-generated UUID for each message
- Automatic timestamp on creation
- Type-safe role validation
- Rich metadata support via MessageMetadata
Message Components
EmotionTag
Represents the emotional context of a message:
from neurotrace.core.schema import EmotionTag
emotion = EmotionTag(
sentiment="positive", # Can be "positive", "neutral", or "negative"
intensity=0.8 # Optional float value indicating intensity
)
MessageMetadata
Contains additional information and context about a message:
from neurotrace.core.schema import MessageMetadata, EmotionTag
metadata = MessageMetadata(
token_count=150, # Number of tokens in the message
embedding=[0.1, 0.2, 0.3], # Vector embedding for similarity search
source="chat", # Source: "chat", "web", "api", or "system"
tags=["important", "follow-up"], # Custom tags
thread_id="thread_123", # Conversation thread identifier
user_id="user_456", # Associated user identifier
related_ids=["msg_789"], # Related message IDs
emotions=EmotionTag(sentiment="positive"), # Emotional context
compressed=False # Compression status
)
Each field in MessageMetadata is optional and provides specific context:
token_count: Used for tracking token usageembedding: Vector representation for similarity searchsource: Indicates message origintags: Custom categorizationthread_id: Groups messages in conversationsuser_id: Links messages to usersrelated_ids: Connects related messagesemotions: Captures emotional contextcompressed: Indicates if content is compressed
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file neurotrace-1.0.0.tar.gz.
File metadata
- Download URL: neurotrace-1.0.0.tar.gz
- Upload date:
- Size: 22.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d8a24feeff28c95bda60fcac2cbbc5c62d9c5914ca0ea418b2e382410178e4d
|
|
| MD5 |
ade39a43018c69aecaa087d2e5039a22
|
|
| BLAKE2b-256 |
cfa67923d34f2f1c0177cf9be31ab99b4bc8dcf4e9a93f7faa1311a011c971ba
|
File details
Details for the file neurotrace-1.0.0-py3-none-any.whl.
File metadata
- Download URL: neurotrace-1.0.0-py3-none-any.whl
- Upload date:
- Size: 28.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9639a595a759a37cb8866a8d336baa5f408f66ce60721ce0568744d75952c015
|
|
| MD5 |
da5a971d95c320469f6f0b2fc49f2d36
|
|
| BLAKE2b-256 |
c552e59a61d719d9d7e718ffb7d8595b8c01619c99777f1af195fafcab7e7e44
|