Changelog
All notable changes to SynapseKit are documented here.
v1.1.0 — GraphRAG, Redis Memory, Vertex AI, MarkdownSplitter, Graph Visualization
Retrieval
GraphRAGRetriever— entity-based graph traversal merged with vector retrieval for knowledge-graph-augmented RAGKnowledgeGraph— in-memory graph store with triples, BFS traversal, and LLM-powered entity extraction
Memory
RedisConversationMemory— persistent conversation memory backed by Redis with windowing support (pip install synapsekit[redis])
LLM Providers
VertexAILLM— Google Vertex AI with Application Default Credentials, streaming, and native function calling (pip install synapsekit[vertex])
Text Splitters
MarkdownTextSplitter— header-aware chunking that preserves parent header context, with recursive fallback for oversized sections
Graph Visualization
GraphVisualizer— ASCII timeline rendering, Mermaid trace highlighting, step-by-step replay, and standalone HTML exportget_mermaid_with_trace()— Mermaid flowcharts with CSS classes for completed/errored/skipped nodes
Stats: 1047 tests, 16 LLM providers, 20 retrieval strategies, 6 text splitters, 9 memory backends
v1.0.0 — Multimodal + Image Loader + API Markers
Multimodal
ImageContent— image payloads withfrom_file(),from_url(),from_base64(),to_openai_format(),to_anthropic_format()AudioContent— audio payloads withfrom_file(),from_base64()MultimodalMessage— compose text + images + audio withto_openai_messages(),to_anthropic_messages()ImageLoader— syncload()andasync_load()with optional vision LLM description
API Markers
@public_api— mark stable public API surfaces@experimental— mark experimental features@deprecated(reason, alternative)— mark deprecated features with migration guidance
v0.9.0 — A2A + Guardrails + Distributed Tracing
Agent-to-Agent (A2A) Protocol
A2AClient— call remote agents via the A2A protocolA2AServer— expose agents as A2A-compatible endpointsAgentCard— agent metadata for discoveryA2ATask,A2AMessage,TaskState— task lifecycle management
Guardrails
ContentFilter— block harmful or inappropriate contentPIIDetector— detect and redact personally identifiable informationTopicRestrictor— restrict agent conversations to allowed topicsGuardrails— compose multiple guardrail checks into a pipeline
Distributed Tracing
DistributedTracer— trace requests across multiple services/agentsTraceSpan— individual span in a distributed trace
v0.8.0 — Evaluation + Observability
Evaluation
FaithfulnessMetric— measure whether answers are faithful to source documentsRelevancyMetric— measure answer relevancy to the questionGroundednessMetric— measure how well answers are grounded in retrieved contextEvaluationPipeline— run multiple metrics over a datasetEvaluationResult— structured results with per-metric scores andmean_score
Observability
OTelExporter— export traces in OpenTelemetry formatSpan— individual trace span with timing and metadataTracingMiddleware— auto-trace LLM calls with zero code changesTracingUI— HTML dashboard for viewing traces
v0.7.0 — MCP + Multi-Agent
MCP (Model Context Protocol)
MCPClient— connect to MCP servers viaconnect_stdio()orconnect_sse()MCPToolAdapter— wrap MCP tools asBaseToolinstances for use with any agentMCPServer— expose your SynapseKit tools as an MCP-compatible server
Multi-Agent: Supervisor/Worker
SupervisorAgent— orchestrates worker agents, routes tasks using DELEGATE/FINAL protocolWorkerAgent— specialized agent that reports results back to the supervisor
Multi-Agent: Handoffs
HandoffChain— chain of agents with condition-based handoffsHandoff— defines a condition and target agent for automatic transfer
Multi-Agent: Crew
Crew— role-based team of agents that execute tasks sequentially or in parallelCrewAgent— agent with a defined role, goal, and backstoryTask— unit of work assigned to a crew agent
v0.6.9 — Tools & Graph Routing
Tools (3 new)
SlackTool— send messages via Slack webhook URL or Web API bot token (stdlib only, no deps)JiraTool— Jira REST API v2: search issues (JQL), get issue, create issue, add comment (stdlib only)BraveSearchTool— web search via Brave Search API (stdlib only)
Graph Workflows (2 new)
approval_node()— factory returning a node that gates on human approval; raisesGraphInterruptwhenstate[key]is falsy; supports dynamic messages via callabledynamic_route_node()— factory returning a node that routes to different compiled subgraphs based on a routing function; supports sync/async routing and input/output mapping
Closes: #199, #218, #234, #243, #247
Stats: 795 tests, 15 providers, 32 tools, 14 loaders, 18 retrieval strategies, 4 cache backends, 8 memory backends
v0.6.8 — Tools, Execution Trace & WebSocket Streaming
Tools (5 new)
VectorSearchTool— wraps aRetrieverso agents can search a knowledge base (no extra deps)PubMedSearchTool— search PubMed for biomedical literature via E-utilities API (stdlib only, no deps)GitHubAPITool— interact with GitHub REST API: search repos, get repo info, search issues, get issue details (stdlib only)EmailTool— send emails via SMTP with STARTTLS (stdlibsmtplib+email, config via env vars)YouTubeSearchTool— search YouTube for videos (pip install synapsekit[youtube])
Graph Workflows (2 new)
ExecutionTrace+TraceEntry— structured execution tracing that hooks intoEventHookswith timestamps, durations, and JSON-serializable outputws_stream()— stream graph execution events over WebSocket connections (works with any object withsend_text()orsend())GraphEvent.to_ws()— format events as JSON strings for WebSocket transmission
Closes: #217, #219, #220, #229, #231, #239, #241
Stats: 743 tests, 15 providers, 29 tools, 14 loaders, 18 retrieval strategies, 4 cache backends, 8 memory backends
v0.6.6 — Providers, Retrieval, Tools & Memory
LLM Providers (2 new)
PerplexityLLM— Perplexity AI with Sonar models, OpenAI-compatible (pip install synapsekit[openai])CerebrasLLM— Cerebras ultra-fast inference, OpenAI-compatible (pip install synapsekit[openai])
Retrieval (4 new strategies)
HybridSearchRetriever— combines BM25 keyword matching with vector similarity using Reciprocal Rank FusionSelfRAGRetriever— self-reflective RAG: retrieve → grade relevance → generate → check support → retryAdaptiveRAGRetriever— LLM classifies query complexity and routes to different retrieval strategiesMultiStepRetriever— iterative retrieval-generation with gap identification and follow-up queries
Tools (2 new)
ArxivSearchTool— search arXiv for academic papers via the Atom API (stdlib only, no deps)TavilySearchTool— AI-optimized web search via Tavily API (pip install synapsekit[tavily])
Memory (2 new)
BufferMemory— simplest unbounded buffer, keeps all messages until cleared (no LLM, no trimming)EntityMemory— LLM-based entity extraction with running descriptions and eviction policy
Stats: 698 tests, 15 providers, 24 tools, 14 loaders, 18 retrieval strategies, 4 cache backends, 8 memory backends
v0.6.5 — Retrieval, Tools, Memory & Redis Cache
Retrieval (3 new strategies)
CohereReranker— rerank retrieval results using the Cohere Rerank API (pip install synapsekit[cohere])StepBackRetriever— generates a more abstract "step-back" question, retrieves for both original and step-back in parallel, deduplicatesFLARERetriever— Forward-Looking Active REtrieval: iterative generate/retrieve loop with[SEARCH: ...]markers
Tools (3 new)
DuckDuckGoSearchTool— extended DuckDuckGo search with text and news search types (pip install synapsekit[search])PDFReaderTool— read and extract text from PDF files with optional page selection (pip install synapsekit[pdf])GraphQLTool— execute GraphQL queries against any endpoint (pip install synapsekit[http])
Memory (1 new)
TokenBufferMemory— token-budget-aware memory that drops oldest messages when over limit (no LLM needed)
LLM Caching (1 new backend)
RedisLLMCache— distributed Redis cache backend (pip install synapsekit[redis])
Stats: 642 tests, 13 providers, 22 tools, 14 loaders, 14 retrieval strategies, 4 cache backends, 6 memory backends
v0.6.4 — Loaders, HyDE, Tools, Caching & Checkpointing
Loaders (2 new)
DocxLoader— load Microsoft Word (.docx) files (pip install synapsekit[docx])MarkdownLoader— load Markdown files with optional YAML frontmatter stripping (stdlib, no deps)
Retrieval (1 new strategy)
HyDERetriever— Hypothetical Document Embeddings: generates a hypothetical answer with an LLM and uses it as the search query for improved retrieval
Tools (2 new)
ShellTool— async shell command execution with configurable timeout and allowed_commands whitelistSQLSchemaInspectionTool— inspect database schema (list_tables, describe_table) for SQLite and SQLAlchemy backends
LLM Caching (1 new backend)
FilesystemLLMCache— persistent file-based cache using JSON files on disk (cache_backend="filesystem")
Graph (1 new checkpointer)
JSONFileCheckpointer— file-based graph checkpointing using JSON files
Observability
COST_TABLEupdated with GPT-4.1 family, o3/o3-mini/o4-mini, Gemini 2.5 Pro/Flash, DeepSeek-V3/R1, Groq-hosted models
Stats: 587 tests, 13 providers, 19 tools, 14 loaders, 11 retrieval strategies, 3 cache backends, 3 checkpointers
v0.6.3 — Typed State, Fan-Out, SSE Streaming & LLM Tools
Graph Workflows
TypedState+StateField— typed state with per-field reducers for safe parallel mergefan_out_node()— run multiple subgraphs concurrently and merge resultssse_stream()— stream graph execution as Server-Sent Events for HTTP responsesEventHooks+GraphEvent— register callbacks on node_start, node_complete, wave_start, wave_complete
LLM Caching
SemanticCache— similarity-based cache lookup using embeddings (configurable threshold)
Tools (3 new, LLM-powered)
SummarizationTool— summarize text (concise, bullet points, or detailed styles)SentimentAnalysisTool— sentiment analysis with confidence and explanationTranslationTool— translate text between languages
Stats: 540 tests, 13 providers, 16 tools, 12 loaders, 10 retrieval strategies, 4 memory backends
v0.6.2 — Retrieval Strategies, Memory & Tools
Retrieval (4 new strategies)
CRAGRetriever— Corrective RAG: grades retrieved docs for relevance, rewrites query and retries when too few are relevantQueryDecompositionRetriever— breaks complex queries into sub-queries, retrieves for each, deduplicatesContextualCompressionRetriever— compresses retrieved documents to only relevant excerpts using an LLMEnsembleRetriever— fuses results from multiple retrievers using weighted Reciprocal Rank Fusion
Memory (2 new backends)
SQLiteConversationMemory— persistent chat history in SQLite, multi-conversation support, optional sliding windowSummaryBufferMemory— token-budget-aware memory that progressively summarizes older messages
Tools (2 new)
HumanInputTool— pauses agent execution to ask the user a question (custom sync/async input functions)WikipediaTool— searches and fetches Wikipedia article summaries via REST API, no extra deps
Stats: 512 tests, 13 providers, 13 tools, 12 loaders, 10 retrieval strategies, 4 memory backends
v0.6.1 — Graph Power-ups & Advanced Retrieval
Graph Workflows
GraphInterrupt— raise from any node to pause execution for human reviewInterruptState— holds interrupt details (graph ID, node, state, message)resume(updates=...)— apply human edits and continue from checkpointsubgraph_node()— nest aCompiledGraphas a node in a parent graph with input/output key mappingllm_node(stream=True)— wrap anyBaseLLMas a graph node with optional token streamingstream_tokens()— yields{"type": "token", ...}events for real-time LLM output
Advanced Retrieval
SelfQueryRetriever— LLM decomposes natural-language queries into semantic search + metadata filtersParentDocumentRetriever— embeds small chunks for precision, returns full parent documentsCrossEncoderReranker— reranks results with cross-encoder models for higher accuracy
Memory
HybridMemory— sliding window of recent messages + LLM-generated summary of older context
Stats: 482 tests, 13 providers, 11 tools, 12 loaders, 6 retrieval strategies, 2 memory backends
v0.6.0 — Tools, Providers & Retrieval Strategies
Built-in Tools (6 new)
HTTPRequestTool— GET/POST/PUT/DELETE/PATCH with aiohttpFileWriteTool— write/append files with auto-mkdirFileListTool— list directories with glob patterns, recursive modeDateTimeTool— current time, parse, format with timezone supportRegexTool— findall, match, search, replace, splitJSONQueryTool— dot-notation path queries on JSON data
LLM Providers (3 new)
OpenRouterLLM— unified API for 200+ models (auto-detected from/in model name)TogetherLLM— Together AI fast inferenceFireworksLLM— Fireworks AI optimized serving
Advanced Retrieval (2 new)
ContextualRetriever— Anthropic-style contextual retrieval (LLM adds context before embedding)SentenceWindowRetriever— sentence-level embedding with window expansion at retrieval time
Stats: 452 tests, 13 providers, 11 tools, 12 loaders
v0.5.3 — Enterprise Providers & Ecosystem
LLM Providers (3 new)
AzureOpenAILLM— Azure OpenAI enterprise deploymentsGroqLLM— ultra-fast inference (Llama, Mixtral, Gemma)DeepSeekLLM— DeepSeek with function calling support
Features
LLMConfig(cache_backend="sqlite")— persistent SQLite LLM cacheRAGFusionRetriever— multi-query + Reciprocal Rank FusionExcelLoader—.xlsxfile loadingPowerPointLoader—.pptxfile loading
Stats: 415 tests, 10 providers, 10 loaders
v0.5.2 — Developer Experience
__repr__methods onStateGraph,CompiledGraph,RAGPipeline,ReActAgent,FunctionCallingAgent- Empty document handling —
RAGPipeline.add()silently skips empty text - Retry for
call_with_tools()— retries apply to function calling BaseLLM.cache_stats— cache hit/miss statisticssearch_mmr()/retrieve_mmr()— MMR diversity-aware retrievalLLMConfig(requests_per_minute=N)— token-bucket rate limitinggenerate_structured(llm, prompt, schema=Model)— structured output with Pydantic validation and retry
Stats: 389 tests
v0.5.1 — Polish
@tooldecorator — create agent tools from plain functions with auto-generated JSON Schema- Metadata filtering —
VectorStore.search(metadata_filter={"key": "value"}) - Vector store lazy exports — all backends importable directly from
synapsekit - File existence checks — loaders raise
FileNotFoundErrorbefore reading - Parameter validation — agents and memory reject invalid config
Stats: 357 tests
v0.5.0 — Production Features
- Text Splitters —
BaseSplitter,CharacterTextSplitter,RecursiveCharacterTextSplitter,TokenAwareSplitter,SemanticSplitter - Function calling —
call_with_tools()added toGeminiLLMandMistralLLM - LLM Caching —
AsyncLRUCachewith SHA-256 keys, opt-in viaLLMConfig(cache=True) - LLM Retries — exponential backoff, skips auth errors,
LLMConfig(max_retries=N) - Graph Cycles —
compile(allow_cycles=True)for intentional loops - Configurable max_steps —
compile(max_steps=N) - Graph Checkpointing —
BaseCheckpointer,InMemoryCheckpointer,SQLiteCheckpointer CompiledGraph.resume()— re-execute from saved state
Stats: 332 tests
v0.4.0 — Graph Workflows
StateGraph— fluent DAG builder with compile-time validation and cycle detectionCompiledGraph— wave-based async executor withrun()/stream()/run_sync()Node,Edge,ConditionalEdge— sync + async node functions and routingagent_node(),rag_node()— wrap agents and RAG pipelines as graph nodes- Parallel execution via
asyncio.gather() - Mermaid diagram export
Stats: 267 tests
v0.3.0 — Agents
BaseToolABC,ToolRegistry,AgentMemoryReActAgent— Thought / Action / Observation loopFunctionCallingAgent— native OpenAItool_calls/ Anthropictool_useAgentExecutor— unified runner withrun()/stream()/run_sync()call_with_tools()onOpenAILLMandAnthropicLLM- 5 built-in tools: Calculator, PythonREPL, FileRead, WebSearch, SQL
Stats: 223 tests
v0.2.0 — Ecosystem
- Loaders: PDF, HTML, CSV, JSON, Directory, Web
- Output parsers: JSON, Pydantic, List
- Vector stores: Chroma, FAISS, Qdrant, Pinecone
- LLM providers: Ollama, Cohere, Mistral, Gemini, Bedrock
- Prompt templates: standard, chat, few-shot
Stats: 141 tests
v0.1.0 — Core RAG
BaseLLM+LLMConfig,OpenAILLM,AnthropicLLMSynapsekitEmbeddings,InMemoryVectorStore,RetrieverTextSplitter,ConversationMemory,TokenTracerRAGPipeline,RAGfacadeTextLoader,StringLoader
Stats: 52 tests