#ai-agent #llm #state #context #api-bindings

attuned-qdrant

Qdrant storage backend for Attuned

2 stable releases

1.0.1 Dec 18, 2025

#2687 in Data structures

Apache-2.0

120KB
2K SLoC

attuned-qdrant

Qdrant vector database backend for Attuned.

Overview

This crate provides a StateStore implementation using Qdrant for production deployments requiring:

  • Semantic similarity search across user states
  • Horizontal scaling
  • Persistent storage with vector indexing

Quick Start

use attuned_qdrant::{QdrantStore, QdrantConfig};
use attuned_store::StateStore;
use attuned_core::{StateSnapshot, Source};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Connect to Qdrant
    let config = QdrantConfig {
        url: "http://localhost:6334".to_string(),
        collection_name: "attuned_states".to_string(),
        ..Default::default()
    };
    let store = QdrantStore::new(config).await?;

    // Use like any StateStore
    let state = StateSnapshot::builder()
        .user_id("user_123")
        .source(Source::SelfReport)
        .axis("cognitive_load", 0.8)
        .build()?;

    store.upsert_latest(state).await?;

    Ok(())
}

Configuration

pub struct QdrantConfig {
    pub url: String,              // Qdrant server URL
    pub collection_name: String,  // Collection for states
    pub api_key: Option<String>,  // Optional API key
    pub vector_size: u64,         // Default: 23 (canonical axes)
}

Running Qdrant

# Docker
docker run -p 6333:6333 -p 6334:6334 qdrant/qdrant

# Or use Qdrant Cloud
# https://cloud.qdrant.io

License

Apache-2.0

Dependencies

~21–36MB
~527K SLoC