Kronvex Memory API
Persistent, semantically searchable memory for AI agents — across sessions, across tools. Three endpoints. EU-hosted. Production-ready in under 5 minutes.
Works with Claude, Cursor, Cline, Windsurf, Copilot, Gemini CLI, LangChain, CrewAI, and any HTTP client. One API key for all your agents.
/remember · /recall · /inject-context. Works from any backend.pip install kronvex — works with LangChain, CrewAI, FastAPI, and any Python AI framework.npm install kronvex — full type safety with autocomplete.https://api.kronvex.io · Auth: X-API-Key: kv-your-key · EU Frankfurt · GDPR-compliant
Connect your AI agent in one command.
Auto-detects Claude Desktop, Claude Code, Cursor, Windsurf, Cline and Gemini CLI. Prompts for your API key and configures everything in seconds.
npx @kronvex/setup
Detects installed agents, writes the MCP config automatically. Or follow a manual guide below. Get your key at dashboard.kronvex.io.
npx @kronvex/setup --key kv-your-key --agent your-agent-id
Pass --key and --agent to skip the interactive prompts — useful for automated provisioning.
Claude Desktop & Claude Code
Add persistent cross-session memory to Anthropic's own clients — Claude Desktop (Mac & Windows) and Claude Code CLI. The Kronvex MCP server exposes three tools the agent calls automatically: remember, recall, and inject_context.
Run the setup wizard — it auto-detects Claude Desktop and Claude Code on your machine and patches the right config file:
npx @kronvex/setup
No flags? The wizard will prompt you interactively. Get your key at dashboard.kronvex.io.
Agent Rules — teach Claude to use memory automatically
Add these instructions to your CLAUDE.md (or any project's .claude/skills/memory.md) so Claude automatically loads and saves context on every task — without being prompted:
## Memory Protocol (Kronvex)
BEFORE every task:
- Call `kronvex_recall` with the current task description as the query
- Inject any returned memories into your working context
AFTER every task:
- Call `kronvex_remember` to store:
- Key decisions made
- Patterns or preferences discovered
- Architecture choices and their rationale
- Anything that would help in future sessions
Memory types to use:
- `procedural` — how to do things (preferred approaches, commands, style rules)
- `semantic` — facts about the project (stack, team, constraints)
- `episodic` — what happened (bugs fixed, features shipped, blockers hit)
Ask Claude: "Use Kronvex to remember that I prefer TypeScript strict mode."
→ Claude calls kronvex_remember and confirms: "Memory stored."
Ask Claude: "What are my coding preferences?"
→ Claude calls kronvex_recall and returns the memory above.
Cursor
Give Cursor's agent mode persistent memory across every coding session. Kronvex remembers your project architecture, conventions, past decisions, and preferences — so you never repeat yourself.
Run the setup wizard — it detects .cursor/mcp.json and patches it automatically:
npx @kronvex/setup
Get your key at dashboard.kronvex.io.
Cursor Rules — automatic memory on every task
Add this rule to .cursor/rules/kronvex.mdc so Cursor's agent recalls and stores context automatically on each task:
---
description: Persistent memory via Kronvex MCP
globs: ["**/*"]
alwaysApply: true
---
## Kronvex Memory Protocol
BEFORE starting any task:
1. Call `kronvex_recall` with the task description as query
2. Read returned memories and incorporate them into your plan
AFTER completing any task:
1. Call `kronvex_remember` to store:
- Architecture decisions made
- Patterns and conventions established
- Bugs fixed and their root causes
- Preferences expressed by the user
Use memory_type: "procedural" for how-to knowledge, "semantic" for project facts.
In Cursor agent mode: "Remember that this project uses pnpm workspaces."
→ Cursor calls kronvex_remember → "Memory stored successfully."
Next session: "What's the package manager for this project?"
→ Cursor calls kronvex_recall → returns the memory above.
Cline (VS Code)
Connect Kronvex to Cline's autonomous coding agent inside VS Code. Cline will remember your architecture decisions, coding conventions, and preferences across every session — without being prompted.
Run the setup wizard — it auto-detects Cline's config and patches it automatically:
npx @kronvex/setup
Get your key at dashboard.kronvex.io.
Cline Rules — automatic memory on every task
Create .clinerules/kronvex.md in your project root to teach Cline to automatically load and save memory:
## Memory Protocol (Kronvex)
BEFORE every task:
1. Call `kronvex_recall` with the current task description as query
2. Incorporate returned memories into your plan
AFTER every task:
1. Call `kronvex_remember` to store:
- Architecture decisions made
- Patterns and conventions discovered
- Bugs fixed and their root causes
- User preferences and constraints
Use memory_type: "procedural" for how-to knowledge, "semantic" for project facts,
"episodic" for events (bugs, deploys, decisions).
Ask Cline: "Use Kronvex to remember that this project uses ESLint with airbnb config."
→ Cline calls kronvex_remember → "Memory stored successfully."
Next session: "What linter config does this project use?"
→ Cline calls kronvex_recall → returns the memory above.
Windsurf
Add persistent cross-session memory to Codeium's Windsurf editor. Cascade (Windsurf's AI agent) will remember your architecture, past decisions, and preferences — so context persists between every session.
Run the setup wizard — it detects ~/.codeium/windsurf/mcp_config.json and patches it automatically:
npx @kronvex/setup
Get your key at dashboard.kronvex.io.
Windsurf Rules — automatic memory on every task
Create .windsurf/rules/kronvex.md in your project root to teach Cascade to recall and store memory automatically:
## Memory Protocol (Kronvex)
BEFORE every task:
1. Call `kronvex_recall` with the current task description as query
2. Incorporate returned memories into your plan
AFTER every task:
1. Call `kronvex_remember` to store:
- Architecture and design decisions
- Patterns and conventions established
- Preferences expressed by the user
- Bugs fixed and their root causes
Prefer memory_type "procedural" for workflows, "semantic" for project facts.
Ask Cascade: "Use Kronvex to remember that I prefer dark theme in all projects."
→ Cascade calls kronvex_remember → "Memory stored successfully."
Next session: "What are my UI preferences?"
→ Cascade calls kronvex_recall → returns the memory above.
Gemini CLI
Extend Google's Gemini CLI agent with persistent cross-session memory. Your preferences, project context, and past decisions survive between every run — no more repeating yourself.
Run the setup wizard — it detects ~/.gemini/settings.json and patches it automatically:
npx @kronvex/setup
Get your key at dashboard.kronvex.io.
GEMINI.md — automatic memory on every task
Add this block to GEMINI.md in your project root (or ~/.gemini/GEMINI.md globally) to teach Gemini CLI to use Kronvex automatically:
## Memory Protocol (Kronvex)
BEFORE every task:
1. Call `kronvex_recall` with the current task description as query
2. Incorporate returned memories into your plan
AFTER every task:
1. Call `kronvex_remember` to store:
- Key decisions and their rationale
- Patterns discovered in the codebase
- User preferences and constraints
- Bugs resolved and root causes
Use memory_type: "semantic" for facts, "procedural" for workflows.
gemini "Use Kronvex to remember that I prefer dark theme in all projects."
→ Gemini calls kronvex_remember → "Memory stored successfully."
Next session: "What are my UI preferences?"
→ Gemini calls kronvex_recall → returns the memory above.
GitHub Copilot
Give GitHub Copilot Chat a persistent memory layer — remembers your coding standards, architecture decisions, and personal preferences across every VS Code session.
Run the setup wizard — it auto-detects VS Code and patches the Copilot MCP config:
npx @kronvex/setup
Get your key at dashboard.kronvex.io.
Copilot Instructions — automatic memory on every task
Create .github/copilot-instructions.md in your project root to teach Copilot to use memory automatically:
## Memory Protocol (Kronvex)
BEFORE every task:
1. Call `kronvex_recall` with the current task description as query
2. Incorporate returned memories into your plan
AFTER every task:
1. Call `kronvex_remember` to store:
- Architecture and design decisions
- Coding standards and conventions
- Personal preferences expressed
- Bugs fixed and root causes found
Use memory_type: "procedural" for coding conventions, "semantic" for project facts.
In Copilot Chat: "Use Kronvex to remember that our API uses REST with JSON:API spec."
→ Copilot calls kronvex_remember → "Memory stored successfully."
Next session: "What API spec does this project use?"
→ Copilot calls kronvex_recall → returns the memory above.
Any MCP Client
Kronvex ships as a standard MCP server — works with any client that supports the Model Context Protocol.
Run this command — it auto-detects your installed tools and configures them:
npx @kronvex/setup
The wizard detects your config files and injects the Kronvex MCP server automatically.
Call tool: kronvex_recall with { "agent_id": "test-agent", "query": "test" }
→ Should return an empty list (no memories yet) — confirming the connection works.
Kilo Code
Add persistent memory to Kilo Code — the VS Code AI coding extension. One command installs and configures Kronvex as an MCP server.
Run the setup wizard — it detects Kilo Code and configures the MCP server automatically:
npx @kronvex/setup
The wizard reads your VS Code settings and injects the Kronvex MCP server into Kilo Code's config.
In Kilo Code chat: "remember that this project uses TypeScript strict mode"
→ Kilo Code calls kronvex_remember → "Memory stored."
Next session: "what are the project conventions?"
→ Kilo Code calls kronvex_recall → returns the memory above.
OpenCode
OpenCode is a terminal-based AI coding assistant with full MCP support. Connect Kronvex to give it persistent memory across coding sessions.
Run the setup wizard — it detects OpenCode and configures Kronvex automatically:
npx @kronvex/setup
Tell OpenCode: "remember that we use pnpm, not npm"
→ calls kronvex_remember → "Memory stored."
Later: "what package manager does this project use?"
→ calls kronvex_recall → returns the memory above.
ChatGPT
ChatGPT Desktop supports MCP servers — connect Kronvex to give your ChatGPT sessions persistent, searchable memory.
Run the setup wizard — it detects ChatGPT Desktop and injects the Kronvex MCP server:
npx @kronvex/setup
Restart ChatGPT Desktop after setup to activate the Kronvex memory tools.
In ChatGPT: "remember that I'm working on a SaaS product called Kronvex"
→ ChatGPT calls kronvex_remember → "Memory stored."
Next session: "what product am I working on?"
→ ChatGPT calls kronvex_recall → returns the memory above.
Works with your entire AI stack.
If it can make an HTTP POST, it already works with Kronvex. Native SDKs for Python and Node.js, framework adapters for LangChain, CrewAI and more, plus no-code nodes for n8n and Flowise.
n8n-nodes-kronvex directly in your n8n instance. Remember, recall, inject in any workflow.Don't see your integration?
Kronvex is REST-first — if your tool can make an HTTP request, it works today. Missing a native SDK or tutorial? Let us know.
Python SDK
The official Kronvex Python SDK — sync and async support, works with any Python AI framework: FastAPI, LangChain, CrewAI, OpenAI Agents, and more.
1. Install
pip install kronvex
# Async support: pip install "kronvex[async]"
2. Use it
from kronvex import Kronvex
kv = Kronvex("kv-your-key")
agent = kv.agents("my-agent") # creates if not exists
# Store a memory
agent.remember("User prefers formal tone", memory_type="preference")
# Recall semantically
memories = agent.recall("tone preference", top_k=5)
print(memories[0].content) # "User prefers formal tone"
# Inject context into your LLM prompt
ctx = agent.inject_context("What does this user prefer?")
print(ctx.context_block) # ready-to-use system prompt block
Run the snippet above.
→ Should print: "User prefers formal tone"
Node.js / TypeScript SDK
The official Kronvex TypeScript/JavaScript SDK — ESM and CJS builds, full type safety with autocomplete.
1. Install
npm install kronvex
# or: yarn add kronvex | pnpm add kronvex
2. Use it
import { Kronvex } from 'kronvex';
const kv = new Kronvex('kv-your-key');
const agent = kv.agents('my-agent'); // creates if not exists
// Store a memory
await agent.remember('User prefers formal tone', { memoryType: 'preference' });
// Recall semantically
const memories = await agent.recall('tone preference', { topK: 5 });
console.log(memories[0].content); // "User prefers formal tone"
// Inject context into LLM prompt
const ctx = await agent.injectContext('What does this user prefer?');
console.log(ctx.contextBlock); // ready-to-use system prompt block
Run the snippet above with ts-node or tsx.
→ Should print: "User prefers formal tone"
LangChain / LangGraph
Drop Kronvex into any LangChain chain or LangGraph node as a plug-and-play memory component.
Run this command — it auto-detects your installed tools and configures them:
npx @kronvex/setup
The wizard detects your config files and injects the Kronvex MCP server automatically.
memory.save_context({"input": "test"}, {"output": "hello"})
memories = memory.load_memory_variables({})
print(memories)
→ Should print stored context from Kronvex.
CrewAI
Give your CrewAI agents long-term memory that persists across crew runs and tasks.
Run this command — it auto-detects your installed tools and configures them:
npx @kronvex/setup
The wizard detects your config files and injects the Kronvex MCP server automatically.
result = tool._run("remember: project uses Python 3.11")
print(result)
→ Should return a confirmation string from Kronvex.
n8n
Add persistent memory to your n8n AI workflows — store and recall context across automation runs.
Run this command — it auto-detects your installed tools and configures them:
npx @kronvex/setup
The wizard detects your config files and injects the Kronvex MCP server automatically.
Execute a "Remember" node with content: "test memory from n8n"
→ The node output should show { "id": "...", "content": "test memory from n8n" }
OpenAI Agents SDK
Register Kronvex as tools in OpenAI's Agents SDK — your agents remember and recall across every run.
Run this command — it auto-detects your installed tools and configures them:
npx @kronvex/setup
The wizard detects your config files and injects the Kronvex MCP server automatically.
print(remember("Test memory from OpenAI Agents SDK"))
→ Should print: "Stored"
print(recall("test"))
→ Should print: "Test memory from OpenAI Agents SDK"
Grok SDK (xAI)
xAI's Grok uses an OpenAI-compatible API — plug Kronvex into your Grok agents using the Python SDK for persistent, searchable memory.
Run the setup wizard to configure the Kronvex MCP server:
npx @kronvex/setup
print(chat("My stack is FastAPI + PostgreSQL"))
# Second call — Grok now remembers your stack
print(chat("What database should I use for a new microservice?"))
→ Grok answers based on the stored context.
Claude Agent SDK
Build Claude-powered agents with persistent memory — every conversation, every tool call remembered and retrievable.
Run the setup wizard to configure Kronvex:
npx @kronvex/setup
print(chat("I'm building a SaaS with Stripe and FastAPI"))
# Second message — Claude remembers your stack
print(chat("What auth approach fits my stack?"))
→ Claude answers with full context from memory.
Google ADK
Add Kronvex memory tools to Google's Agent Development Kit — give your ADK agents persistent context across every invocation.
Run the setup wizard to configure Kronvex:
npx @kronvex/setup
result = agent.run("remember: our CI runs on GitHub Actions")
# Later:
result = agent.run("how does our CI work?")
→ Agent recalls the memory and answers correctly.
Vercel AI SDK
Add persistent memory to Vercel AI SDK agents — remember user preferences, context, and history across every call.
Run the setup wizard to configure Kronvex:
npx @kronvex/setup
// First call
generateText({ prompt: "I prefer TypeScript with strict mode" })
→ Agent calls remember → "Stored"
// Next request — agent has full context
generateText({ prompt: "set up my tsconfig" })
→ Agent generates config with strictMode: true
REST API (curl)
Use Kronvex directly over HTTP — works with any language, any runtime, any environment that can make HTTP requests.
Run this command — it auto-detects your installed tools and configures them:
npx @kronvex/setup
The wizard detects your config files and injects the Kronvex MCP server automatically.
Run the store command above.
→ Should return: { "id": "...", "content": "User prefers formal tone", "confidence": 1.0 }
Kronvex Memory API
Three endpoints. Persistent context. Production-ready in under 5 minutes.
https://api.kronvex.io · All endpoints require X-API-Key header · EU hostedQuickstart
Get your API key
Call POST /auth/demo or sign up. Your key looks like kv-XXXXXXXXXXXXXXXX
Register an agent
Create an isolated memory namespace per user, bot, or session.
Store → Recall → Inject
Push memories after interactions, recall semantically before responding.
# pip install kronvex from kronvex import Kronvex client = Kronvex("kv-your-key") agent = client.agents("my-agent") # Store a memory agent.remember("User is based in Paris, prefers concise answers") # Recall semantically results = agent.recall(query="user location", top_k=5) # Inject LLM-ready context block context = agent.inject_context("What does the user prefer?") print(context.context_block) # prepend to your system prompt
import requests # Auth header H = {"X-API-Key": "kv-your-key"} BASE = "https://api.kronvex.io" # 1. Create agent agent = requests.post(f"{BASE}/api/v1/agents", headers=H, json={"name": "sales-bot"}).json() agent_id = agent["id"] # 2. Store a memory requests.post(f"{BASE}/api/v1/agents/{agent_id}/remember", headers=H, json={"content": "User prefers async comms", "memory_type": "episodic"}) # 3. Recall semantically r = requests.post(f"{BASE}/api/v1/agents/{agent_id}/recall", headers=H, json={"query": "communication style", "top_k": 5}) print(r.json())
const H = {'X-API-Key':'kv-your-key','Content-Type':'application/json'}; const BASE = 'https://api.kronvex.io'; // 1. Create agent const agent = await fetch(`${BASE}/api/v1/agents`,{ method:'POST',headers:H, body:JSON.stringify({name:'sales-bot'}) }).then(r=>r.json()); // 2. Store memory await fetch(`${BASE}/api/v1/agents/${agent.id}/remember`,{ method:'POST',headers:H, body:JSON.stringify({ content:'User prefers async comms', memory_type:'episodic' }) }); // 3. Recall const r = await fetch(`${BASE}/api/v1/agents/${agent.id}/recall`,{ method:'POST',headers:H, body:JSON.stringify({query:'comms',top_k:5}) }); console.log(await r.json());
# 1. Create agent curl -X POST https://api.kronvex.io/api/v1/agents \ -H "X-API-Key: kv-your-key" -H "Content-Type: application/json" \ -d '{"name":"sales-bot"}' # 2. Store a memory (use agent UUID from step 1) curl -X POST https://api.kronvex.io/api/v1/agents/{id}/remember \ -H "X-API-Key: kv-your-key" -H "Content-Type: application/json" \ -d '{"content":"Prefers async comms","memory_type":"episodic"}' # 3. Recall curl -X POST https://api.kronvex.io/api/v1/agents/{id}/recall \ -H "X-API-Key: kv-your-key" -H "Content-Type: application/json" \ -d '{"query":"comms","top_k":5}'
Authentication
All requests require an X-API-Key header. Keys look like kv-XXXXXXXXXXXXXXXX.
Get a demo key
No sign-up required. Call POST /auth/demo to get a free API key instantly delivered to your inbox.
/auth/demoGet a free demo API key
| Parameter | Type | Required | Description |
|---|---|---|---|
| string | required | Your email address — key will be sent here | |
| name | string | optional | Your name (used in welcome email) |
| usecase | string | optional | What you're building — helps us improve |
curl -X POST https://api.kronvex.io/auth/demo \ -H "Content-Type: application/json" \ -d '{"email":"you@company.com","name":"Alex","usecase":"support bot"}' # Response: {"message":"Key sent to your email","plan":"demo"} # Demo plan: 1 agent · 100 memories · 30 req/min
What you can build with Kronvex
From customer support to legal research — any B2B AI agent that interacts with humans gets measurably better with persistent memory.
Support agents that know your users
Your AI support agent knows a user's full history — past tickets, preferences, account tier, prior resolutions. No more "can you repeat the issue?" — the agent already knows.
client.agents("support-bot").remember(
"User John prefers email updates, on Pro plan since Jan, had billing issue in March"
)
ctx = client.agents("support-bot").inject_context("renewal question")
Sales agents with perfect deal memory
Every call, every objection, every buying signal — your AI sales agent remembers it all and opens the next conversation exactly where you left off.
# After each sales call, persist deal context
client.agents("sales-bot").remember(
"Acme Corp: budget €50k, decision by Q3, main blocker is IT security review",
memory_type="episodic"
)
Coding assistants with project memory
Your AI dev tool remembers architecture decisions, naming conventions, tech debt notes, and team preferences — producing code that fits your actual codebase.
Legal assistants with case memory
Your legal AI retains full case context — precedents cited, client instructions, document history — across every session. Never re-read the file. Just ask.
Personal assistants with long-term memory
Your AI assistant builds a persistent user profile — preferences, habits, history, goals — and carries that context across every conversation, indefinitely.
client.agents("personal-assistant").remember(
"User prefers concise replies, morning briefings at 8am, based in Paris"
)
context = client.agents("personal-assistant").inject_context(user_message)
Store Memory
/api/v1/agents/{id}/rememberStore a memory
| Parameter | Type | Required | Description |
|---|---|---|---|
| content | string | required | The memory text |
| memory_type | enum | optional | episodic | semantic | procedural (default: episodic) |
| session_id | string | optional | Pin to a specific session |
| ttl_days | integer | optional | Auto-expire after N days (1–3650) |
| pinned | boolean | optional | Pinned memories never expire |
/api/v1/agents/{id}/recallSemantic recall
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | required | Natural language search query |
| top_k | integer | optional | Results count (default 5, max 20) |
| threshold | float | optional | Min similarity score (default 0.5) |
| session_id | string | optional | Filter by session |
| memory_type | string | optional | Filter by type |
| context_messages | array | optional | Last N messages for contextual re-ranking. Each item: {role, content} |
/api/v1/agents/{id}/inject-contextReady-to-use context block
Returns a pre-formatted context string ready to inject directly into your LLM system prompt.
| Parameter | Type | Required | Description |
|---|---|---|---|
| agent_id | string | required | Agent identifier |
| message | string | required | User message (used as search query) |
/api/v1/agents/{agent_id}/memories/{id}Delete a memory
Permanently removes a memory by UUID. Returns 204 No Content. GDPR-compliant targeted deletion.
/api/v1/agents/{agent_id}/healthMemory health scores
Returns memory health scores for an agent.
| Response field | Type | Description |
|---|---|---|
| coverage_score | float | How broadly topics are covered (0–1) |
| freshness_score | float | Recency of stored memories (0–1) |
| coherence_score | float | Internal consistency of the memory set (0–1) |
| utilization_score | float | Proportion of memory quota in use (0–1) |
| recommendations | array | Actionable suggestions to improve memory health |
/api/v1/agents/{agent_id}/consolidateTrigger memory consolidation
Manually trigger memory consolidation. Clusters semantically similar memories and merges them into meta-memories via GPT-4o-mini. Runs in background.
{
"status": "consolidation_queued",
"agent_id": "..."
}Recall
Search your agent's memory semantically. Returns memories ranked by vector similarity.
semantic, episodic, procedural{role, content}. When provided, results are re-ranked by GPT-4o-mini based on conversation context.import requests response = requests.post( "https://api.kronvex.io/api/v1/agents/{agent_id}/recall", headers={"X-API-Key": "kv-your-key"}, json={ "query": "user communication preferences", "top_k": 5, "threshold": 0.5 } ) # Returns: {query, results: [{memory, similarity}], total_found}
Inject Context
The most powerful endpoint. Pass the user's latest message — get back a formatted context block ready to inject into your LLM system prompt.
ctx = requests.post(
"https://api.kronvex.io/api/v1/agents/{agent_id}/inject-context",
headers={"X-API-Key": "kv-your-key"},
json={"message": user_message}
).json()["context_block"]
# Inject into your LLM
response = openai.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": ctx + your_system_prompt},
{"role": "user", "content": user_message}
]
)
Agents
Each agent has an isolated memory namespace. Create one per use case or customer.
Returns all agents for your API key with memory count.
Delete Memory
Delete a specific memory or all memories for an agent.
| Method | Path | Description |
|---|---|---|
| DELETE | /api/v1/agents/{id}/memories/{mem_id} | Delete one memory by ID |
| DELETE | /api/v1/agents/{id}/memories | Delete ALL memories for an agent |
Memory Types
SEMANTIC
Facts and persistent knowledge about the user or world.
EPISODIC
Past events and interactions — what happened in previous sessions.
PROCEDURAL
How the user wants things done — behavioral preferences.
FACT
Stable facts about a person, entity, or the world. Slow decay (180 days).
PREFERENCE
How someone likes things done. Medium decay (60 days).
CONTEXT
Situational/temporary info. Fast decay (3 days).
TTL & Decay
Set ttl_days to auto-expire memories. Use pinned: true to prevent any expiry.
# Expire in 30 days (e.g. trial period) requests.post(f"{BASE}/memories", headers=H, json={"agent_id":"bot","content":"Trial active","ttl_days":30}) # Pin permanently — never expires requests.post(f"{BASE}/memories", headers=H, json={"agent_id":"bot","content":"VIP customer","pinned":True})
Confidence Scoring
Each recalled memory includes a confidence score (0–1). Higher = more relevant. The score combines semantic similarity, recency, and access frequency.
confidence = similarity × 0.6 + recency × 0.2 # sigmoid, 30-day inflection + frequency × 0.2 # log-scaled access count
threshold parameter on /recall to filter results below a minimum confidence score.
SDKs & Integrations
Official SDKs for Python and Node.js. Both sync and async clients available. The SDK mirrors the REST API exactly — use whichever style you prefer.
Python SDK
pip install kronvex # Async support: pip install "kronvex[async]"
from kronvex import Kronvex client = Kronvex("kv-your-key") # Get or create an agent (idempotent) agent = client.agents("my-agent") # Store a memory agent.remember("User is based in Paris, prefers concise answers") # Recall semantically results = agent.recall(query="user location", top_k=5) # Inject context into your LLM system prompt context = agent.inject_context("What does the user prefer?") print(context.context_block) # paste into your system prompt
Node.js / TypeScript SDK
npm install kronvex # or: pnpm add kronvex / yarn add kronvex
import { Kronvex } from 'kronvex'; const client = new Kronvex('kv-your-key'); const agent = client.agents('my-agent'); await agent.remember('User prefers dark mode and concise replies'); const ctx = await agent.injectContext('What UI preferences does the user have?'); console.log(ctx.contextBlock); // inject into your LLM system prompt
requests / fetch if you prefer.
Error Codes
| Status | Code | Description |
|---|---|---|
| 400 | INVALID_REQUEST | Missing or malformed parameters |
| 401 | UNAUTHORIZED | Missing or invalid API key |
| 429 | LIMIT_REACHED | Memory or agent quota exceeded |
| 404 | NOT_FOUND | Agent or memory not found |
| 429 | RATE_LIMITED | Too many requests — back off and retry |
| 500 | INTERNAL_ERROR | Server error — contact support |
Rate Limits
All plans are billed monthly. The Demo plan is free forever. Upgrade at any time from your dashboard.
| Plan | Price | Agents | Memories | Req/min | Req/day |
|---|---|---|---|---|---|
| Demo | Free | 1 | 100 | 30 | 500 |
| Builder | €29/mo | 5 | 20,000 | 120 | 1,000 |
| Startup | €99/mo | 15 | 75,000 | 300 | 5,000 |
| Business | €349/mo | 50 | 500,000 | 600 | 25,000 |
| Growth | €599/mo | 30 | 300,000 | 1,000 | 100,000 |
| Scale | €1,499/mo | Unlimited | Unlimited | 2,000 | Unlimited |
| Enterprise | Custom | Unlimited | Unlimited | Custom | Custom |
Rate limit response headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset
LIMIT_REACHED error fires, memories or agents are capped. Upgrade your plan or delete old memories from the dashboard.
Integrations
Kronvex works with any AI framework. Below are quickstarts for popular tools. All integrations use the same REST API and SDKs — there's nothing framework-specific to install beyond the base SDK.
🦜 LangChain
Use Kronvex as a custom memory store in LangChain conversation chains. The pattern: store memories after each interaction, recall relevant ones before each LLM call.
Install
pip install kronvex langchain langchain-openai
Custom memory class
from kronvex import Kronvex
from langchain.memory import BaseMemory
from langchain.schema import BaseMessage
from typing import Dict, Any, List
class KronvexMemory(BaseMemory):
"""Persistent cross-session memory powered by Kronvex."""
client: Any = None
agent: Any = None
memory_key: str = "history"
def __init__(self, api_key: str, agent_id: str, **kwargs):
super().__init__(**kwargs)
self.client = Kronvex(api_key)
self.agent = self.client.agent(agent_id)
@property
def memory_variables(self) -> List[str]:
return [self.memory_key]
def load_memory_variables(self, inputs: Dict[str, Any]) -> Dict[str, Any]:
query = inputs.get("input", "")
ctx = self.agent.inject_context(query=query, top_k=5)
return {self.memory_key: ctx.context}
def save_context(self, inputs: Dict[str, Any], outputs: Dict[str, Any]) -> None:
user_msg = inputs.get("input", "")
ai_msg = outputs.get("output", "")
if user_msg:
self.agent.remember(content=user_msg, memory_type="episodic")
if ai_msg:
self.agent.remember(content=ai_msg, memory_type="episodic")
def clear(self) -> None:
pass # Use Kronvex dashboard to manage memories
Use in a chain
from langchain_openai import ChatOpenAI
from langchain.chains import ConversationChain
memory = KronvexMemory(
api_key="kv-your-api-key",
agent_id="your-agent-id"
)
chain = ConversationChain(
llm=ChatOpenAI(model="gpt-4o"),
memory=memory,
verbose=True
)
# Context from Kronvex is automatically injected
response = chain.predict(input="What are my preferences?")
session_id in inject_context() to scope memories per conversation thread.
🤖 CrewAI
Give your CrewAI agents persistent memory across runs. Agents can recall past interactions and store new knowledge automatically.
Install
pip install kronvex crewai
Memory tool for CrewAI agents
from crewai import Agent, Task, Crew
from crewai.tools import tool
from kronvex import Kronvex
kv = Kronvex("kv-your-api-key")
agent_mem = kv.agent("your-agent-id")
@tool("Recall from memory")
def recall_memory(query: str) -> str:
"""Search past memories relevant to the query."""
result = agent_mem.recall(query=query, top_k=5)
return "
".join([m.content for m in result.memories])
@tool("Store in memory")
def store_memory(content: str) -> str:
"""Store a new piece of information in long-term memory."""
agent_mem.remember(content=content, memory_type="semantic")
return "Memory stored successfully."
# Attach tools to your agent
sales_agent = Agent(
role="Sales Assistant",
goal="Help customers based on their history",
tools=[recall_memory, store_memory],
verbose=True
)
🕸 LangGraph
Add memory nodes to any LangGraph StateGraph. The recall node runs before your LLM node and injects relevant context; the store node persists the exchange after completion.
Install
pip install "kronvex[langgraph]" langgraph
Memory nodes in a StateGraph
from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated, Optional
import operator
from kronvex.integrations.langgraph import make_recall_node, make_store_node
class AgentState(TypedDict):
messages: Annotated[list, operator.add]
memory_context: Optional[str]
recall_node = make_recall_node("kv-your-api-key", "your-agent-id")
store_node = make_store_node("kv-your-api-key", "your-agent-id")
builder = StateGraph(AgentState)
builder.add_node("recall", recall_node)
builder.add_node("agent", call_model) # your LLM node
builder.add_node("store", store_node)
builder.set_entry_point("recall")
builder.add_edge("recall", "agent")
builder.add_edge("agent", "store")
builder.add_edge("store", END)
graph = builder.compile()
memory_context is automatically added to AgentState by the recall node and is available to your LLM node.
⚙️ AutoGen
Give AutoGen agents persistent cross-session memory. Inject relevant context before each run, store the exchange after.
Install
pip install "kronvex[autogen]" pyautogen
Persistent context for AutoGen agents
from kronvex.integrations.autogen import KronvexMemory
mem = KronvexMemory(api_key="kv-your-api-key", agent_id="your-agent-id")
# Before agent run — inject relevant memories into the system message
context = mem.inject_context(user_message)
system_msg = f"You are a helpful assistant.\n\n{context}"
# ... run your AutoGen agent with system_msg ...
# After agent run — store the exchange
mem.remember(f"User: {user_message}")
mem.remember(f"Assistant: {ai_response}")
🤖 OpenAI Agents SDK
KronvexHooks implements the RunHooks interface. Pass it to Runner.run() and memory injection/storage happens automatically.
Install
pip install "kronvex[openai-agents]" openai-agents
RunHooks-based memory layer
from agents import Agent, Runner
from kronvex.integrations.openai_agents import KronvexHooks
hooks = KronvexHooks(
api_key="kv-your-api-key",
agent_id="your-agent-id",
session_id="user-42", # optional — isolates memories per user
)
result = await Runner.run(
agent,
messages=[{"role": "user", "content": "Hello"}],
hooks=hooks,
)
on_agent_start recalls relevant memories and prepends them to the system prompt; on_run_end stores the exchange automatically.
🌊 Flowise
No SDK install required. Use Flowise's built-in HTTP Request node to call the Kronvex REST API directly from your flow.
HTTP Request node — Recall memories
Method : POST
URL : https://api.kronvex.io/api/v1/agents/{agent_id}/recall
Headers:
X-API-Key : kv-your-api-key
Content-Type : application/json
Body (JSON):
{
"query": "{{question}}",
"top_k": 5
}
HTTP Request node — Store a memory
Method : POST
URL : https://api.kronvex.io/api/v1/agents/{agent_id}/remember
Headers:
X-API-Key : kv-your-api-key
Content-Type : application/json
Body (JSON):
{
"content": "{{output}}",
"memory_type": "episodic"
}
⚙️ n8n
Official community node available — install n8n-nodes-kronvex v0.1.1 directly from your n8n instance's Community Nodes settings. Or use the HTTP Request node with the REST API.
Settings → Community Nodes → Install → n8n-nodes-kronvex
Store a memory
| FIELD | VALUE |
|---|---|
| Method | POST |
| URL | https://api.kronvex.io/api/v1/agents/{{AGENT_ID}}/remember |
| Header | X-API-Key: kv-your-api-key |
| Body (JSON) | {"content": "{{$json.content}}", "memory_type": "episodic"} |
Recall memories
POST https://api.kronvex.io/api/v1/agents/{{AGENT_ID}}/recall
X-API-Key: kv-your-api-key
{
"query": "{{ $json.userMessage }}",
"top_k": 5,
"session_id": "{{ $json.sessionId }}"
}