Kronvex
# Kronvex — EU-Native Memory API for AI Agents
> Persistent, semantically searchable memory.
> Three endpoints. GDPR-compliant. Data stays in Europe.
[](https://pypi.org/project/kronvex/)
[](https://www.npmjs.com/package/kronvex)
[](LICENSE)
[](https://kronvex.io/security)
[](https://kronvex.io/status)
---
## Why Kronvex?
Every time a user opens a new session with your AI agent, it starts from scratch. No context, no history, no user preferences. You end up injecting entire conversation histories into every prompt — expensive, slow, and context-window-limited.
Kronvex gives your agent **persistent, semantically searchable memory** across sessions. Store interactions, recall relevant context by meaning, inject a ready-to-use context block before each LLM call — and keep all data in Europe.
---
## Performance
| Endpoint | p50 | p99 |
|-------------------|--------|---------|
| `/remember` | <30ms | <180ms |
| `/recall` | <45ms | <280ms |
| `/inject-context` | <55ms | <320ms |
99.9% uptime · EU Frankfurt · GDPR-compliant · pgvector cosine similarity · 1536-dim embeddings
---
## Quick Start
### 1. Get a free API key
```bash
curl -X POST https://api.kronvex.io/auth/demo \
-H "Content-Type: application/json" \
-d '{
"name": "Alice",
"email": "alice@company.com",
"usecase": "Customer support bot with memory"
}'
```
```json
{
"full_key": "kv-xxxxxxxxxxxxxxxx",
"agent_id": "uuid-of-your-first-agent",
"memory_limit": 100,
"message": "Ready! Your API key and first agent are set up."
}
```
### 2. Store a memory
```bash
curl -X POST https://api.kronvex.io/api/v1/agents/{agent_id}/remember \
-H "X-API-Key: kv-xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"content": "Alice is a Premium customer since January 2023."}'
```
### 3. Inject context before each LLM call
```bash
curl -X POST https://api.kronvex.io/api/v1/agents/{agent_id}/inject-context \
-H "X-API-Key: kv-xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"message": "I still have that billing issue"}'
```
```json
{
"context_block": "[KRONVEX CONTEXT]\n- Alice is a Premium customer since Jan 2023 (similarity: 0.94)",
"memories_used": 1
}
```
---
## SDKs
**Python**
```bash
pip install kronvex
```
```python
from kronvex import Kronvex
kx = Kronvex("kv-your-api-key")
agent = kx.agent("your-agent-id")
await agent.remember("User prefers concise answers")
context = await agent.inject_context("How should I format this?")
```
**Node.js / TypeScript**
```bash
npm install kronvex
```
```typescript
import { Kronvex } from "kronvex";
const kx = new Kronvex("kv-your-api-key");
const agent = kx.agent("your-agent-id");
await agent.remember("User prefers concise answers");
const context = await agent.injectContext("How should I format this?");
```
**MCP (Claude Desktop)**
```json
{
"mcpServers": {
"kronvex": {
"command": "npx",
"args": ["kronvex-mcp"],
"env": { "KRONVEX_API_KEY": "kv-your-api-key" }
}
}
}
```
→ [Python SDK on PyPI](https://pypi.org/project/kronvex) · [Node SDK on npm](https://www.npmjs.com/package/kronvex)
---
## How It Works
Memories are ranked by a composite confidence score:
```
confidence = similarity × 0.6 + recency × 0.2 + frequency × 0.2
```
- **Similarity**: pgvector cosine similarity on 1536-dim OpenAI embeddings
- **Recency**: sigmoid with 30-day inflection point
- **Frequency**: log-scaled access count
---
## Self-Hosting
```bash
# Requires Docker
cp .env.example .env
# Edit .env with your OPENAI_API_KEY and DATABASE_URL
docker-compose up --build
```
API available at `http://localhost:8000` · Docs at `http://localhost:8000/docs`
---
## Endpoints
| Method | Endpoint | Description |
|----------|--------------------------------------|--------------------------------|
| `POST` | `/auth/demo` | Get a free API key |
| `POST` | `/api/v1/agents` | Create an agent |
| `GET` | `/api/v1/agents` | List your agents |
| `POST` | `/api/v1/agents/{id}/remember` | Store a memory |
| `POST` | `/api/v1/agents/{id}/recall` | Semantic search over memories |
| `POST` | `/api/v1/agents/{id}/inject-context` | Get context block |
| `DELETE` | `/api/v1/agents/{id}/memories/{mid}` | Delete a memory |
| `GET` | `/health` | Health check |
Full interactive docs: **[api.kronvex.io/docs](https://api.kronvex.io/docs)**
---
## Pricing
| Plan | Price | Agents | Memories |
|------------|----------|-----------|-----------|
| Free | Free | 1 | 100 |
| Builder | €29/mo | 5 | 20,000 |
| Startup | €99/mo | 15 | 75,000 |
| Business | €349/mo | 50 | 500,000 |
| Enterprise | Custom | Unlimited | Unlimited |
→ **[See full pricing](https://kronvex.io/#pricing)**
---
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md).
---
Built in Paris · [kronvex.io](https://kronvex.io) · [hello@kronvex.io](mailto:hello@kronvex.io)
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose with no overlap: forget deletes memories, inject_context formats them for immediate use, recall retrieves them as a ranked list, and remember stores new memories. The descriptions explicitly differentiate their roles, making misselection unlikely.
All tool names follow a consistent verb-based pattern (forget, inject_context, recall, remember) that directly reflects their core actions. The naming is uniform and predictable, with no deviations in style or convention.
With 4 tools, this server is well-scoped for its memory management domain, covering the essential CRUD-like operations (create, read, delete) plus a specialized formatting tool. Each tool earns its place without feeling excessive or insufficient.
The toolset provides strong coverage for memory operations: remember (create), recall (read), forget (delete), and inject_context (format). A minor gap exists in update functionality for modifying existing memories, but agents can work around this by deleting and re-adding.