Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Bug report
description: Report a reproducible problem with synaptic-memory.
title: "[Bug]: "
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to report this. A small reproduction is the fastest path to a fix.
- type: textarea
id: summary
attributes:
label: Summary
description: What went wrong?
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: Reproduction
description: Paste the smallest code sample or commands that reproduce the issue.
render: bash
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
validations:
required: true
- type: textarea
id: environment
attributes:
label: Environment
description: Python version, synaptic-memory version, OS, backend, and installed extras.
value: |
- Python:
- synaptic-memory:
- OS:
- Backend:
- Extras:
validations:
required: true
- type: textarea
id: logs
attributes:
label: Logs or trace
render: text
validations:
required: false
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: Questions and adoption help
url: https://github.com/PlateerLab/synaptic-memory/discussions
about: Ask questions, discuss integration choices, or share use cases.
- name: Documentation
url: https://github.com/PlateerLab/synaptic-memory#readme
about: Start with the README, quickstart, install extras, and reports.
41 changes: 41 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Feature request
description: Suggest a capability, backend, integration, or documentation improvement.
title: "[Feature]: "
labels: ["enhancement"]
body:
- type: textarea
id: problem
attributes:
label: Problem
description: What workflow or limitation are you trying to solve?
validations:
required: true
- type: textarea
id: proposal
attributes:
label: Proposed solution
description: What would you like synaptic-memory to do?
validations:
required: true
- type: dropdown
id: area
attributes:
label: Area
options:
- Ingest
- Search / ranking
- MCP / agent tools
- Memory operating layer
- Backend / infrastructure
- Documentation
- Evaluation / benchmarks
- Other
validations:
required: true
- type: textarea
id: context
attributes:
label: Additional context
description: Links, examples, corpus shape, scale, or constraints.
validations:
required: false
18 changes: 18 additions & 0 deletions README.ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,24 @@ synaptic-quickstart --db quickstart.db

---

## 왜 그냥 RAG가 아닌가?

일반 RAG는 독립적인 chunk에서 답을 찾는 경우가 많습니다. Synaptic은 먼저
그래프를 만들기 때문에 에이전트가 검색하고, 관계를 따라가고, 정형 row를
조회하고, 어떤 evidence가 도움이 됐는지 기억할 수 있습니다.

| 일반 RAG | Synaptic Memory |
|----------|-----------------|
| chunk + vector search | 문서, chunk, row, edge |
| 데이터 변경 시 재빌드가 흔함 | live DB용 CDC sync |
| 기본은 single-shot retrieval | 멀티턴 탐색용 MCP 도구 |
| feedback은 인덱스 밖에 있음 | 선택적 memory event, feedback, health signal |

vector DB 대체재가 아닙니다. 기존 문서, SQL 데이터, embedding endpoint,
agent runtime 주변에 붙는 graph/tool layer입니다.

---

## 그래프 구축과 검색

```python
Expand Down
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,24 @@ zero-dependency smoke test. Full source for the expanded example:

---

## Why not just RAG?

Plain RAG usually answers from independent chunks. Synaptic builds a graph first,
so an agent can search, follow relations, inspect structured rows, and remember
which evidence helped.

| Plain RAG | Synaptic Memory |
|-----------|-----------------|
| chunks + vector search | documents, chunks, rows, and edges |
| usually rebuilds on data change | CDC sync for live databases |
| single-shot retrieval by default | MCP tools for multi-turn exploration |
| feedback lives outside the index | optional memory events, feedback, and health signals |

It is not a vector database replacement. It is the graph and tool layer around
your existing documents, SQL data, embedding endpoint, and agent runtime.

---

## Build and search

```python
Expand Down
202 changes: 202 additions & 0 deletions docs/launch/promotion_playbook.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
# Promotion Playbook

This is the working launch plan for Synaptic Memory. Keep claims tied to the
current README, reports, and reproducible commands.

---

## Positioning

Short form:

> Synaptic Memory is a Python knowledge graph + MCP tool server for agentic RAG:
> deterministic indexing by default, infra-friendly backends, live DB sync, and
> optional memory feedback.

One-line GitHub/social variant:

> Graph memory for RAG agents: documents + SQL rows + edges + MCP tools, with
> LLM-free indexing by default.

What to emphasize:

- LLM-free deterministic default path.
- Mixed structured and unstructured retrieval.
- MCP tools for multi-turn agent search.
- Live database sync.
- Infra options: SQLite locally, PostgreSQL for shared service, Kuzu/Qdrant/MinIO
for scale-out composition.
- Memory operating layer: feedback, provenance, scope-aware scores, health
signals.

What not to claim:

- Do not call it a vector database replacement.
- Do not say it is 10TB-ready out of the box.
- Do not imply the memory layer decides truth automatically.
- Do not quote benchmark numbers without linking the report and reproduction
path.

---

## Launch Assets

Must-have:

- GitHub README with quickstart and "Why not just RAG?"
- PyPI metadata links: repository, docs, changelog, issues, discussions, reports,
quickstart.
- GitHub topics and description.
- GitHub release notes.
- Show HN draft: `docs/launch/show_hn_draft.md`.

Nice-to-have:

- 30-60 second terminal GIF:
`pip install`, `synaptic-quickstart --json`, `from_data()`, `search()`.
- Architecture image showing documents/SQL -> graph -> EvidenceSearch -> MCP
agent tools.
- Short Korean post for GeekNews / LinkedIn.

---

## GitHub Release Draft

Title:

> Synaptic Memory: graph memory layer for agentic RAG

Body:

~~~markdown
Synaptic Memory is a Python knowledge graph + MCP tool server for agentic RAG.
The default path is deterministic and LLM-free at indexing time, while optional
layers add embeddings, reranking, OpenIE extraction, retrieval feedback, and
memory health signals.

Highlights:

- `synaptic-quickstart` for a 5-minute local smoke test.
- `SynapticGraph.from_data()`, `from_chunks()`, and `from_database()` presets:
`local`, `rag`, `agent`, `scale`.
- Infrastructure paths for SQLite, PostgreSQL + pgvector, Kuzu, Qdrant, and
MinIO/S3-compatible blob storage.
- MCP tools for deep search, comparison search, structured filters, aggregation,
FK joins, top-N queries, ingestion, and CDC sync.
- Memory operating layer: retrieval events, feedback, provenance, scope-aware
reinforcement, and health reporting.

Try it:

```bash
pip install "synaptic-memory[sqlite,korean,vector]"
synaptic-quickstart --db quickstart.db
```

Reports:

- RAG comparison: docs/REPORT-rag-vs-synaptic.md
- Memory operating layer eval: docs/REPORT-memory-operating-layer-eval.md
- Reproducible results log: docs/comparison/synaptic_results.md
~~~

---

## Social Copy

### X / Twitter

```text
I built Synaptic Memory: a Python knowledge graph + MCP server for agentic RAG.

Default path:
- no LLM calls at indexing time
- local SQLite quickstart
- optional PostgreSQL/Kuzu/Qdrant/MinIO infra
- MCP tools for multi-turn search
- feedback + memory health signals

https://github.com/PlateerLab/synaptic-memory
```

### LinkedIn

```text
I have been building Synaptic Memory, a Python library for teams that need RAG
over both documents and SQL data without turning every indexing job into an LLM
job.

It builds a deterministic knowledge graph by default, exposes MCP tools for
agentic multi-turn search, supports live database sync, and can run locally on
SQLite or connect to PostgreSQL, Kuzu, Qdrant, and MinIO/S3-style storage.

The goal is not to replace vector databases. It is to provide the graph, tool,
and memory layer around existing documents, SQL data, embedding endpoints, and
LLM agents.

GitHub: https://github.com/PlateerLab/synaptic-memory
PyPI: https://pypi.org/project/synaptic-memory/
```

### Reddit

Use only in communities where project posts are allowed. Lead with the problem,
not the link.

```text
I built a Python knowledge graph + MCP server for RAG agents over mixed
documents and SQL data.

The main design choice: indexing is deterministic by default, so adding data
does not require an LLM call. The agent can still use embeddings/rerankers and
MCP tools at query time.

Useful if you care about local/on-prem deployments, live DB sync, Korean FTS, or
agent search over both structured and unstructured data.

I would appreciate feedback on the tool surface and benchmark plan:
https://github.com/PlateerLab/synaptic-memory
```

---

## Channel Order

1. GitHub release.
2. PyPI release metadata check.
3. HN Show HN.
4. Korean mirror post: GeekNews / LinkedIn.
5. Reddit posts only where allowed.
6. Follow-up technical blog post:
"Why RAG agents need graph tools, not only vector search."

---

## Follow-Up Blog Outline

Title:

> Why RAG agents need graph tools, not only vector search

Outline:

1. Plain RAG is strong but chunk-local.
2. Enterprise corpora mix documents, tables, foreign keys, policies, and updates.
3. Index-time LLM extraction is useful but costly and hard for on-prem.
4. Deterministic graph first: documents, chunks, rows, references, FK edges.
5. Query-time agent tools: search, expand, filter, aggregate, join, top-N.
6. Memory operating layer: feedback and provenance as metadata, not prompt bulk.
7. Honest limits: not web-scale without an operating layer, not truth discovery.

---

## Measurement Backlog

Good promotion gets stronger when each claim has a command behind it.

- Clean-install quickstart timing.
- Public Korean FTS benchmark.
- Agent search benchmark with DeepSeek Flash profile.
- Postgres CDC parity smoke.
- CompositeBackend smoke with Kuzu + Qdrant + MinIO.
- Large-corpus benchmark report linked from `docs/comparison/synaptic_results.md`.
Loading
Loading