Build production LLM apps with 2 dependencies. Async-native RAG, Agents, and Graph workflows — no magic, no SaaS, no bloat.
"LangChain for people who hate LangChain."
SynapseKit is the minimal, async-first Python framework for LLM applications. 33 providers · 48+ tools · 64 loaders · 22 vector stores. Every abstraction is plain Python you can read, debug, and extend. No hidden chains. No global state. No lock-in.
10-Line Agent Example
from synapsekit import agent, tool @tool def get_weather(city: str) -> str: """Get current weather for a city.""" return f"Sunny, 22°C in {city}" my_agent = agent( model="gpt-4o-mini", api_key="sk-...", tools=[get_weather], ) print(my_agent.run("What's the weather in Tokyo?"))
SynapseKit vs LangChain vs LlamaIndex
| SynapseKit | LangChain | LlamaIndex | |
|---|---|---|---|
| Hard dependencies | 2 | 50+ | 20+ |
| Install size | ~5 MB | ~200 MB+ | ~100 MB+ |
| Async-native | ✅ Default | ⚠️ Partial | ⚠️ Partial |
| Streaming | ✅ Default | ⚠️ Varies | ⚠️ Varies |
| Cost tracking | ✅ Built-in | ❌ LangSmith (SaaS) | ❌ No |
| Evaluation / EvalCI | ✅ CLI + GitHub Action | ❌ LangSmith (SaaS) | ⚠️ Built-in |
| Graph workflows | ✅ Built-in | ⚠️ LangGraph (separate pkg) | ❌ No |
| Agent federation | ✅ Built-in | ❌ No | ❌ No |
| Reasoning LLMs | ✅ Unified adapter | ⚠️ Manual | ⚠️ Manual |
| Structured output | ✅ Provider-agnostic | ⚠️ Provider-specific | ⚠️ Provider-specific |
| Agent memory backends | ✅ 4 built-in | ⚠️ Community plugins | ⚠️ Community plugins |
| Observability | ✅ Prometheus + Grafana | ❌ No | ❌ No |
| Type safety | ✅ Strict dataclasses | ⚠️ Partial | ⚠️ Partial |
| LLM providers | 33 | 38+ | 20+ |
| Stack traces | Your code | Framework internals | Framework internals |
| License | Apache 2.0 | MIT | MIT |
LangChain has more raw integrations and more tutorials. That's not what SynapseKit is optimizing for. SynapseKit is optimizing for the engineer who needs to ship, debug, and maintain an LLM feature in production — where readable code, predictable async behavior, and no surprise SaaS bills actually matter.
Who is it for?
SynapseKit is for Python developers who want to ship LLM features without fighting their framework.
- Burned LangChain users — hit a wall with debugging, dependency hell, or version churn and want full control back
- Async backend engineers — building FastAPI services where LangChain's sync-first model feels bolted on
- Cost-conscious teams — startups and teams who don't want a LangSmith subscription for basic observability
- ML engineers — building RAG or agent pipelines who need full control over retrieval, prompting, and tool use
What it covers
|
🗂 RAG Pipelines |
🤖 Agents |
|
🔀 Graph Workflows |
🧠 LLM Providers |
|
🗄 Vector Stores |
🔧 Utilities |
|
🧠 Reasoning LLMs (new in v1.7.0) |
⚖️ Cost-Quality Routing (new in v1.7.0) |
|
🎯 Prompt Optimization (new in v1.7.0) |
🌐 Federated Retrieval (new in v1.7.0) |
|
🧠 Smart Context Manager (new) |
✅ Structured Output (new) |
|
🕸 Agent Federation (new) |
🔁 Continuous Fine-Tuning Pipeline (new) |
|
⚡ Performance suite (new in v1.7.0) |
|
|
🧪 EvalCI — LLM Quality Gates |
|
|
📊 Agent Benchmarking 🧪 EvalHub Community Suites |
|
ReasoningAgent (automatic routing)
import asyncio from synapsekit import ReasoningAgent, ReasoningAgentConfig from synapsekit.agents.tools import CalculatorTool from synapsekit.llm import LLMConfig, OpenAILLM, ReasoningLLM fast = OpenAILLM( LLMConfig(model="gpt-4o-mini", api_key="sk-...", provider="openai") ) reasoning = ReasoningLLM(model="o3", api_key="sk-...") agent = ReasoningAgent( ReasoningAgentConfig( fast_llm=fast, reasoning_llm=reasoning, tools=[CalculatorTool()], agent_type="function_calling", ) ) async def main(): answer = await agent.run("Solve: find the eigenvalues of [[2,1],[1,2]]") print(answer) asyncio.run(main())
EvalHub quick usage
synapsekit bench --list synapsekit bench --suite community/customer-support --model gpt-4o-mini synapsekit bench --publish my_evals/ --name myorg/rag-finance
Docs: docs/evalhub.md
Integrations
One interface. 190+ integrations. Zero lock-in.
| 🧠 LLM Providers | 🗄 Vector Stores | 📂 Data Loaders | 🔧 Agent Tools |
|---|---|---|---|
| 33 | 22 | 64 | 48+ |
Every integration is pip install synapsekit[name] — nothing else. Swap providers, vector stores, or loaders without touching your application code.
Icons use Google Favicons for reliability across light and dark themes.
🧠 LLM Providers — 33 supported
Every provider implements the same
BaseLLMinterface. Auto-detected from model name —gpt-4o→ OpenAI,claude-*→ Anthropic,gemini-*→ Google. Swap without rewriting.
🗄 Vector Stores — 22 backends
All implement
VectorStorewithadd(),search(),search_mmr(),save(), andload(). Built-inInMemoryVectorStoreneeds zero extra deps. Everything else ispip install synapsekit[name].
ChromaDB |
FAISS |
Qdrant |
Pinecone |
Weaviate |
Milvus |
LanceDB |
PGVector |
SQLiteVec |
MongoDB Atlas |
Redis |
Elasticsearch |
OpenSearch |
Supabase |
Cassandra |
DuckDB |
ClickHouse |
Marqo |
Typesense |
Vespa |
Zilliz |
📂 Data Loaders — 64 sources
All return
list[Document]with.textand.metadata. Every loader has a sync.load()and async.aload(). Load from disk, cloud, databases, or APIs — same interface everywhere.
File Formats
Word (DOCX) |
Excel (XLSX) |
PowerPoint |
HTML / XML |
Markdown |
LaTeX |
YAML / JSON |
|
Parquet |
Audio (Whisper) |
Video |
RSS / Sitemap |
Git Repo |
Cloud Storage
AWS S3 |
Google Drive |
Azure Blob |
OneDrive |
Dropbox |
Google Cloud |
Databases
PostgreSQL |
MySQL |
MongoDB |
DynamoDB |
Elasticsearch |
Redis |
BigQuery |
Snowflake |
SQLite |
Supabase |
APIs & Productivity
GitHub |
Jira |
Confluence |
Notion |
Slack |
Discord |
HubSpot |
Salesforce |
Airtable |
YouTube |
Wikipedia |
Obsidian |
Google Sheets |
Firebase |
Twilio |
|
arXiv |
PubMed |
Email (IMAP) |
🔧 Agent Tools — 48+ built-in
All implement
BaseToolwith a single asyncrun(). Pass any list of tools toReActAgentorFunctionCallingAgent. Write your own in 5 lines.
🧠 Memory & Cache Backends
SQLite |
Redis |
PostgreSQL |
DynamoDB |
Memcached |
📡 Observability
PrometheusMetrics records synapsekit_cost_usd_total, synapsekit_tokens_total, and synapsekit_latency_seconds per model/provider. Hooks into the existing observe span pipeline — no code changes needed. Helm chart for a Prometheus + Grafana stack ships in assets/helm/synapsekit-observability/. pip install synapsekit[observe].
Multi-Hop Knowledge Graph RAG
SynapseKit provides advanced retrieval modules, including vector search and multi-hop Knowledge Graph (KG) retrieval.
When to use which?
- Vector Search (Semantic): Best for broad conceptual queries, finding similar passages, or answering questions whose answers are contained within a single chunk of text.
- Knowledge Graph (KG): Best for specific, multi-hop reasoning questions where the relationship spans across multiple documents (e.g., finding out who owns the parent company of a subsidiary).
- Hybrid (Vector + KG): Combining both strategies guarantees that you capture deep semantic context while also exploring explicitly extracted entity relationships. Initialize the
RAGfacade withgraph_store=NetworkXStore()orNeo4jStore(...)to enable this out-of-the-box.
Production RAG ROI
from synapsekit import RAG, RAGEvaluator, SlackWebhookAlertSink from synapsekit.cli.ui_server import create_app rag = RAG( model="gpt-4o-mini", api_key="sk-...", evaluator=RAGEvaluator( judge_llm=judge_llm, # a cheaper judge model sample_rate=0.1, alert_sinks=[SlackWebhookAlertSink(webhook_url=SLACK_WEBHOOK_URL)], ), ) app = create_app(tracer=rag.tracer, rag_evaluator=rag.evaluator) answer = await rag.ask("What changed in the release notes?") await rag.wait_for_evaluations() metrics = rag.tracer.summary() print(metrics["avg_rag_benefit_to_cost"]) print(metrics["total_rag_alerts"])
Install
pip
pip install synapsekit[openai] # OpenAI pip install synapsekit[anthropic] # Anthropic + prompt caching pip install synapsekit[ollama] # Ollama (local) pip install synapsekit[performance] # orjson + uvloop + xxhash (faster) pip install synapsekit[observe] # OpenTelemetry + Prometheus metrics pip install synapsekit[training] # Continuous fine-tuning pipeline pip install synapsekit[bench] # pytest-benchmark + ASV harness pip install synapsekit[redis] # Redis agent registry + memory backends pip install synapsekit[all] # Everything
uv
uv add synapsekit[openai] uv add synapsekit[all]
Poetry
poetry add synapsekit[openai]
poetry add "synapsekit[all]"Full installation options → docs
Observability guide → docs/observability.md
Documentation
Everything you need to get started and go deep is in the docs.
| 🚀 Quickstart | Up and running in 5 minutes |
| 🗂 RAG | Pipelines, loaders, retrieval, vector stores |
| 🤖 Agents | ReAct, function calling, tools, executor |
| 🔀 Graph Workflows | DAG pipelines, conditional routing, parallel execution |
| 🧠 LLM Providers | All 33 providers + ReasoningLLM with examples |
| 🧪 EvalCI | LLM quality gates on every PR — GitHub Action |
| 📖 API Reference | Full class and method reference |
Development
git clone https://github.com/SynapseKit/SynapseKit
cd SynapseKit
uv sync --group dev
uv run pytest tests/ -qContributing
Contributions are welcome — bug reports, documentation fixes, new providers, new features.
Read CONTRIBUTING.md to get started. Look for issues tagged good first issue if you're new.
Community
- 💬 Discord — chat, help, show and tell
- 💬 Discussions — ask questions, share ideas
- 🧭 Discord roles draft — proposed roles and permissions for issue #389
- 🧭 Discord release webhook draft — automate release announcements for issue #390
- 🐛 Bug reports
- 💡 Feature requests
- 🔒 Security policy
Contributors
Nautiverse 💻 📖 🚧 |
Gordienko Andrey 💻 |
Deepak singh 💻 |
by22Jy 💻 |
Arjun Kundapur 💻 |
Harshit Gupta 📖 |
Dhruv Garg 💻 |
Adam Silva 💻 |
qorex 💻 |
Abhay Krishna 💻 |
AYUSH BHATT 💻 |
HARSH 📖 |
mikemolinet 💻 🐛 |
Alessandro Mecca 💻 🐛 |





























