Skip to main content

MultiMind SDK

The compliance-first AI agent framework.
Multi-model AI with built-in GDPR and HIPAA support. Works with any model. Runs anywhere.

PyPI CI Python versions License Discord


New to AI? Start with the plain-language getting started guide — no coding required.

Why MultiMind?

Most AI frameworks assume you'll handle compliance yourself. MultiMind doesn't.

  • One API for all models — OpenAI, Anthropic Claude, Google Gemini, Mistral, Groq, DeepSeek, xAI, Together, Perplexity, Fireworks, Cerebras, 300+ models via OpenRouter, and local models via Ollama through a single async interface with streaming
  • Built-in compliance — a drop-in PII guard that detects, redacts, and audits sensitive data on every model call, plus GDPR & HIPAA policy modeling and compliance dashboards as a first-class module, not an afterthought
  • Govern the stack you already have — don't migrate off LangChain, LlamaIndex, or CrewAI; wrap them. Run multimind serve and point any OpenAI-compatible app at it to add PII redaction, budgets, and audit with one line changed
  • Governed by default — cost budgets that stop overspending before the call, hallucination detection with sentence-level evidence, and audit trails — each a one-line wrapper around any model
  • Switch models without losing knowledge — move a live conversation from GPT to Claude to a local model; the context travels with you
  • Adaptive routing — route requests across providers by cost, latency, or fallback strategy
  • RAG that works — FAISS and Chroma with document processing out of the box; 40+ client-backed vector stores including Pinecone, Qdrant, Weaviate, Milvus, pgvector, and LanceDB
  • Beyond transformers — run Mamba and RWKV models through the same interface
  • Runs anywhere — Cloud, on-prem, air-gapped with local models

Quick Start

pip install multimind-sdk
import asyncio
from multimind import OpenAIModel

async def main():
    model = OpenAIModel(model_name="gpt-4o-mini")
    response = await model.generate("Explain quantum computing simply")
    print(response)

asyncio.run(main())

Requires OPENAI_API_KEY in your environment. The same pattern works for ClaudeModel (Anthropic, ANTHROPIC_API_KEY), GeminiModel (Google, GEMINI_API_KEY), MistralAIModel (MISTRAL_API_KEY), GroqModel (GROQ_API_KEY), DeepSeekModel (DEEPSEEK_API_KEY), and OllamaModel (local models — Mistral, Llama, and anything else Ollama serves). Also: OpenRouterModel (OPENROUTER_API_KEY — 300+ models via one key), TogetherModel (TOGETHER_API_KEY), XAIModel (XAI_API_KEY), PerplexityModel (PERPLEXITY_API_KEY), FireworksModel (FIREWORKS_API_KEY), and CerebrasModel (CEREBRAS_API_KEY).

Install what you need

pip install multimind-sdk                # Core (incl. Ollama via HTTP, no extra needed)
pip install multimind-sdk[rag]           # + RAG & vector stores (FAISS, Chroma)
pip install multimind-sdk[agents]        # + Agent framework with memory
pip install multimind-sdk[compliance]    # + GDPR/HIPAA compliance + dashboards
pip install multimind-sdk[finetune]      # + LoRA/QLoRA fine-tuning (CPU)
pip install multimind-sdk[finetune-gpu]  # + 4-bit QLoRA via bitsandbytes (Linux only)
pip install multimind-sdk[gateway]       # + FastAPI gateway server
pip install multimind-sdk[all]           # rag, vector-stores, agents, memory, documents, finetune, compliance, gateway, mcp
# Framework adapters are separate: [langchain] [llamaindex] [crewai] [autogen]

Ollama users: no extra needed — multimind.models.ollama talks to a running Ollama instance over HTTP. Just pip install multimind-sdk and point at http://localhost:11434.

Features

Feature Status Install Extra
Multi-model chat (OpenAI, Claude, Gemini, Groq, ...) Stable core
Streaming responses Stable core
Runtime PII guard (detect, redact, block, audit) Stable core
Cost tracking & budgets Stable core
Hallucination detection (grounding checks) Stable core
Mid-conversation model switching (ModelSession) Stable core
Compliance proxy (multimind serve, OpenAI-compat) Stable [gateway]
Governance dashboard UI (multimind dashboard) Stable [gateway]
Compliance evidence reports (md/HTML) Stable core
Framework adapters (LangChain, LlamaIndex, CrewAI) Stable [langchain] etc.
AI usage audit & cost chargeback (multimind audit) Stable core
Anthropic MCP compliance server Stable [mcp]
RAG pipeline (FAISS, Chroma) Stable [rag]
Context transfer between models Stable core
CLI interface Stable core
REST gateway with Swagger UI (/docs) Stable [gateway]
Docker image (ghcr.io/multimindlab/multimind-sdk, amd64 + arm64) Stable —
Vision/multimodal input (images=) Stable core
AI Agents with native function-calling & memory Stable [agents]
Self-evolving agents (bounded exemplar learning) Stable [agents]
GDPR & HIPAA compliance (runtime enforcement) Stable [compliance]
Vector stores, core set (FAISS, Chroma, Pinecone, Qdrant, Weaviate, Milvus, ...) Stable [rag]/[vector-stores]
Self-orchestrating agents (bounded spawning) Beta [agents]
Non-transformer models (Mamba, RWKV) Beta [finetune]
Vector stores, extended set (26 client-backed, less battle-tested) Beta [vector-stores]
Fine-tuning (LoRA, real QLoRA) Beta [finetune]

Note: multimind.mcp is MultiMind's internal Model Composition Protocol — a workflow executor for chaining models. Anthropic's Model Context Protocol is supported separately via multimind.mcp_server (see docs/mcp-server.md).

Full status: docs/feature-status.md · Roadmap: ROADMAP.md

Examples

Snippets using await assume an async context — wrap them in asyncio.run(main()) as shown in the Quick Start. Full runnable versions live in examples/ and the cookbook.

Govern an app you already have — change one line

Start the compliance proxy, then point any OpenAI-compatible client (LangChain, LlamaIndex, the raw openai SDK, anything) at it:

multimind serve --port 8400 --upstream openai --block-on ssn,credit_card --budget 25.00 --audit-log audit.jsonl
from openai import OpenAI

# The ONLY change: base_url. Every call now gets PII redaction, budgets, and an audit trail.
client = OpenAI(base_url="http://localhost:8400/v1", api_key="unused-upstream-key-is-server-side")
client.chat.completions.create(model="gpt-4o-mini", messages=[{"role": "user", "content": "..."}])

Prefer to stay in code? Wrap your existing framework objects instead — see docs/integrations.md for LangChain, LlamaIndex, CrewAI, and OpenAI-SDK adapters.

Guard any model against PII leaks

from multimind import OpenAIModel
from multimind.compliance import guard

model = guard(
    OpenAIModel(model_name="gpt-4o-mini"),
    strategy="mask",                    # emails become [EMAIL], SSNs [SSN], ...
    block_on=("credit_card", "ssn"),    # refuse these outright
    audit_log="compliance_audit.jsonl", # types & counts only — never raw PII
)

response = await model.generate("Email jane.doe@corp.com about the invoice")
# The provider only ever saw: "Email [EMAIL] about the invoice"

Detects emails, phone numbers, SSNs, credit cards (Luhn-validated), IPs, IBANs, API keys (entropy-checked), and more — including across streaming chunk boundaries. Works with any model object that has generate/chat, so you can wrap non-MultiMind clients too. No extra dependencies. Runnable demo: examples/compliance/guarded_model.py

Multi-model chat

from multimind import OpenAIModel, ClaudeModel, GeminiModel, GroqModel

gpt = OpenAIModel(model_name="gpt-4o-mini")
claude = ClaudeModel(model_name="claude-3-5-sonnet-20241022")
gemini = GeminiModel(model_name="gemini-2.0-flash")
groq = GroqModel(model_name="llama-3.3-70b-versatile")

# Same interface, different providers
response = await gpt.generate("Hello!")
response = await claude.generate("Hello!")
response = await gemini.generate("Hello!")

MistralAIModel and DeepSeekModel work the same way.

Sync usage (no asyncio needed)

from multimind import OpenAIModel

model = OpenAIModel(model_name="gpt-4o-mini")
response = model.generate_sync("Explain quantum computing simply")

chat_sync and embeddings_sync are also available. Inside a running event loop, use the async methods instead.

Structured output

from pydantic import BaseModel
from multimind import OpenAIModel

class City(BaseModel):
    name: str
    population: int

model = OpenAIModel(model_name="gpt-4o-mini")
city = await model.generate("Largest city in France?", response_format=City)
print(city.name, city.population)  # a City instance, not a string

Works with OpenAIModel, ClaudeModel, GeminiModel, MistralAIModel, GroqModel, and DeepSeekModel.

RAG over your documents

from multimind.rag.fluent import RAGPipeline, RAGConfig
from multimind.vector_store.base import VectorStoreConfig, VectorStoreFactory
from multimind.core.router import Router

router = Router()  # register your providers with router.register_provider(...)

vector_store = VectorStoreFactory.create_store(
    "faiss",
    VectorStoreConfig.create_faiss_config(dimension=1536, metric="cosine"),
)

pipeline = RAGPipeline(router, RAGConfig(
    vector_store=vector_store,
    embedding_provider="openai",
    embedding_model="text-embedding-ada-002",
    generation_provider="openai",
    generation_model="gpt-4o-mini",
))

result = await (
    pipeline
    .load_documents(["Your documents here"])
    .query("What does this say?")
    .generate()
    .execute()
)
print(result.answer)

Full working example: examples/rag/fluent_rag_example.py

Agent with tools

from multimind import OpenAIModel
from multimind.agents import Agent
from multimind.agents.tools import CalculatorTool

agent = Agent(
    model=OpenAIModel(model_name="gpt-4o-mini"),
    tools=[CalculatorTool()],
)

# The task should mention the tool by name to route to it.
# Required parameters for the tool are passed as kwargs to agent.run().
response = await agent.run("Use the calculator", expression="42 * 17")
print(response)

More examples: examples/

Documentation

Hosted docs: docs.multimind.dev. The same pages live in docs/.

Contributing

We welcome contributions! See CONTRIBUTING.md for details.

git clone https://github.com/multimindlab/multimind-sdk.git
cd multimind-sdk
pip install -e ".[dev]"
pytest

License

Apache 2.0 — see LICENSE.

References

Third-party places where MultiMind SDK is discussed, listed, or used as material. None of these is a customer deployment; they are linked so you can judge the project's footprint yourself.

Using MultiMind in a product or project? Open a discussion and we will link it here.

Discord · Twitter · Support

Metadata

Release files for multimind-sdk 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for multimind-sdk 1.0.0
File Size Uploaded
multimind_sdk-1.0.0.tar.gz 798.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for multimind-sdk 1.0.0
File Interpreter ABI Platform
multimind_sdk-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.7 MB

Release files / multimind_sdk-1.0.0.tar.gz

Download URL multimind_sdk-1.0.0.tar.gz
Size 798.8 kB
Tags Source
SHA-256 checksum
How to use checksums
8a96de12c0d067fe930c0295714678949c3bb9932fdce59c350c1f17d85b5459
BLAKE2b-256 checksum
How to use checksums
0a4b557681a946cba9faf84909a2f6daad04b76a2de1e28d6e5a30d6f21eee81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / multimind_sdk-1.0.0-py3-none-any.whl

Download URL multimind_sdk-1.0.0-py3-none-any.whl
Size 941.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
86d54101721b1b1e6d32e461f4ae43a3334c17c5abc5274248b77d3ced55305d
BLAKE2b-256 checksum
How to use checksums
61791d4f6a3c0bd3b4d92b0d7097f1f139cfe21bedaf3d3fab444dfb0c1c6d69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page