Everything under the hood

Memory primitives, semantic search, pluggable embeddings, and the dev tools to wire it all together.

Memory Primitives

Store, embed, and retrieve memories with semantic understanding and vector search capabilities.

Intelligent Search

Find relevant memories using natural language queries and context-aware semantic matching.

Agent Hooks

Seamlessly integrate memory operations into your agent workflows with simple API calls.

Built for production

Enterprise-grade features that scale with your AI applications, from prototype to production.

Vector Store

High-performance vector database optimized for AI workloads with automatic embedding generation.

  • Support for multiple embedding models
  • Automatic chunking and preprocessing
  • Hybrid search (sparse and dense vectors)
  • Real-time indexing and updates

Lightning Performance

Low-latency vector search with intelligent caching and optimized data structures.

  • Filtering over arbitrary JSON metadata
  • Retrieval time varies with collection size, result count, and reranking
  • PostgreSQL-backed query optimization
  • Batch processing capabilities
  • PostgreSQL-based auto-scaling infrastructure

Enterprise Security

Built-in access control and data governance for production environments.

  • TLS for REST and gRPC, with automated certificate renewal
  • Instance and space roles, resource grants, and scoped API keys
  • Human and service identities with managed enrollment and ownership
  • PAIR Systems is ISO 27001 certified; its SOC 2 Type II audit is in progress

Multi-Agent Support

Manage memories across multiple agents with shared and isolated contexts.

  • Isolated and shared memory contexts
  • Agent-specific namespaces and permissions

Developer Tools

Comprehensive SDKs, debugging tools, and development workflows for any stack.

  • Multi-language SDKs
  • Command-line interface (CLI)
  • HTTP REST and gRPC API support

Document Ingestion & Visual RAG

Turn documents into searchable, visually-grounded memory — PDF, Word, PowerPoint, and Excel.

  • No LibreOffice — pure-JVM page rendering
  • Faithful tables, charts, and layout
  • Page-level grounding for precise citations
  • Multimodal-ready for vision-model retrieval

Built by ISO 27001-certified PAIR Systems. Our SOC 2 Type II audit is in progress. Visit our Trust Center

Your documents, rendered

GoodMem turns PDFs and Office files into per-page images, so your agents retrieve over what a document actually looks like — tables, charts, and layout — not a flattened text dump.

PDFDOCXPPTXXLSX

No LibreOffice required

Pure-JVM, server-side rendering with no headless Office subprocess to operate or secure — deterministic output that is container- and air-gap-friendly.

Faithful to the page

Tables, charts, conditional formatting, embedded images and effects, and right-to-left scripts like Arabic are rendered, not stripped.

Grounded citations

Every chunk maps back to its source page, so retrieval results can cite exactly where an answer came from.

Built-in web console

Manage resources, upload documents, and search your knowledge base — all from your browser. Launches automatically with the server.

GoodMem web console showing system health, resource status, and getting started checklist

Simple, powerful API

Get started with just a few lines of code. Our intuitive API makes memory management effortless across all supported languages.

import requests, json
BASE_URL = "http://localhost:8080"
HEADERS = {"x-api-key": "your-api-key", "Content-Type": "application/json"}
# Store a memory
memory = requests.post(f"{BASE_URL}/v1/memories", headers=HEADERS, json={
"spaceId": "your-space-id",
"contentType": "text/plain",
"originalContent": "User prefers dark mode and Python"
}).json()
print(f"Stored: {memory['memoryId']}")
# Search with natural language
results = requests.post(
f"{BASE_URL}/v1/memories:retrieve",
headers={**HEADERS, "Accept": "application/x-ndjson"},
json={
"message": "What are the user's preferences?",
"spaceKeys": [{"spaceId": "your-space-id"}]
}
)
for line in results.text.strip().split("\n"):
if line:
print(json.loads(line))

Works with your stack

Native SDKs and integrations for popular AI frameworks, providers, and programming languages.

View all integrations

Ready to give your agents memory?

Start building with GoodMem today. No setup required, just add intelligence to your agents in minutes.