OPEN-SOURCE DEVELOPER INFRASTRUCTURE

Memory for agents.
Boundaries for runs.

Give Python agents context that can be traced, tool calls that can be bounded, and failures that are easier to understand.

Synapse brings persistent memory, provenance-aware retrieval, opt-in execution controls, and privacy-minimized run traces into one self-hostable layer.

⌘ Python SDK · HTTP API · LangChain · LlamaIndex
RUN INSPECTOR · illustrative view TRACE
RUN / SYN-8F2A

customer_lookup

Started just now · 4 events

Limit reached
STEPS04 / 04
TOOL CALLS02 / 03
STATUSStopped
Run startedPolicy attached · metadata only
Memory retrieval3 evidence records · 2 packed
Tool call failedcustomer_lookup · timeout
Repeated call blockedConfigured failure ceiling reached
No raw prompt or tool arguments shownEVENTS 04
✳Context with provenanceSource · time · trust · packing
⌁Explicit run limitsSteps · calls · deadline
BUILT FOR DEVELOPERS WHO SHIP AGENTS
PYTHONHTTP APIPOSTGRES + PGVECTORAPACHE 2.0 SOURCE

Release status: PyPI package 1.3.1 is published. Repository source targets 1.4.0; that version is prepared but not yet published to PyPI.

Understand the difference
THE PROBLEM

Agents can fail in ways
a better prompt cannot fix.

Useful agents need more than a longer context window. They need a way to manage what they remember, constrain what they do, and inspect what happened.

01 / CONTEXT
◈

Relevant context gets lost

Naive history replay grows without bounds. Stale or superseded facts can keep influencing new decisions.

02 / EXECUTION
⌁

Tool calls can repeat

Retries and loops can multiply side effects. A model saying “done” does not prove an external action succeeded.

03 / DIAGNOSIS
⌘

Failure evidence is fragmented

Without a connected run record, it is harder to understand which context was selected and where execution stopped.

WHAT SYNAPSE BRINGS TOGETHER

One layer. Four useful primitives.

Start with the part your application needs. Keep your existing agent framework and deployment decisions.

◈MEMORY

Memory that has a lifecycle

Ingest, deduplicate, retrieve, update, supersede, and retract information instead of replaying an ever-growing transcript.

  • Hybrid lexical + vector retrieval with rank fusion
  • Temporal validity and source/provenance metadata
  • Token-budgeted context packing
INGEST→RETRIEVE→PACK→USE
⌁EXECUTION

Opt-in run boundaries

Route selected work through SynapseRun to enforce step, tool-call, and cooperative deadline limits, with repeated-failure controls.

Explore run controls →
⌘EVIDENCE

Traces tied to context

Connect run events with retrieval IDs, memory evidence, ranking signals, token costs, and packing decisions—without storing raw prompts or tool payloads.

Explore trace model →
⌂DEPLOYMENT & CONTROL

Keep the infrastructure in your environment

Use the Python SDK or HTTP API. Develop locally with SQLite; use PostgreSQL and pgvector for production-shaped deployments. Tenant boundaries, scoped keys, and operational requirements are documented—not hidden behind a hosted-only workflow.

Python SDKHTTP APISQLite · local developmentPostgreSQL + pgvectorDocker · Helm
HOW IT FITS

Keep your agent.
Add the missing layer.

Synapse is designed to sit beside your existing application—not replace your orchestration framework.

YOUR APPLICATION
✳

Python agent

Tools · model calls · business logic

LangChainLlamaIndexCustom
SDK / HTTP
SYNAPSE LAYER
S

Memory + run evidence

Memory & retrievalRun boundariesTrace events
Storage
YOUR DATA LAYER
▤

SQLite / PostgreSQL

pgvector · tenant isolation

Operator-managed infrastructure

Conceptual architecture. Exact deployment topology depends on your environment and configuration.

FIRST STEP

Try the memory layer
on your machine.

The published package supports a local SQLite evaluation path. It is the easiest way to test the write-and-retrieve flow before provisioning production infrastructure.

Read the developer quickstart

Python 3.10+ · local-only evaluation · no external database required

TERMINAL
python -m pip install synapse-memory-engine==1.3.1
PYTHON
from synapse_memory import SynapseClient

with SynapseClient(
    "http://127.0.0.1:8008",
    tenant_id="local-dev",
) as client:
    saved = client.create_memory(
        "The app uses SQLite for local evaluation.",
        category="fact",
    )
    result = client.retrieve("Which database is used locally?")
    print(saved.id)
    print(result.fused_context)
✓ Example follows the published SDK quickstart
TRUST BY BEING PRECISE

Security details
should be explicit.

Synapse documents its boundaries so developers can decide whether its data model and deployment requirements fit their workload.

Read the security policy ↗
01

Field-level encryption has a defined scope

The authoritative content field is Fernet-encrypted. The plaintext search projection, text-search derivative, and embeddings remain readable by design; protect database volumes and backups accordingly.

02

Tenant isolation depends on deployment roles

PostgreSQL RLS must be paired with the documented non-owner, non-superuser runtime role and migrate-then-run setup.

03

Run evidence is metadata-only

Trace events are designed to exclude prompts, raw tool arguments, tool results, and memory text. Applications remain responsible for safe event metadata.

04

Validation status is not overstated

CI and synthetic fault-injection tests are not customer-workload proof, a security certification, or a production-readiness guarantee.

CURRENT PROJECT STATUS

Built in the open.
Validated in stages.

We want developers to see what exists, what is still being validated, and where their feedback can change the direction.

Published Python package1.3.1
Repository source target1.4.0 prepared
Independent security reviewPending
Real-world pilot validationOpen
The 1.4.0 source additions are not part of the published 1.3.1 package. See the version notes.