Skip to content

Knowledge Graphs — vs Other Approaches

There are many ways to give an AI agent access to structured domain knowledge. This page explains where SyntheticBrew Knowledge Graphs fit, what other approaches exist, and when each one is the right tool.

The short version: SyntheticBrew Knowledge Graphs are declarative-first (customers describe their domain in JSON Schema, not extracted from text), open-source (BSL 1.1), GitOps-native (bundles in git, applied via brewctl), and MCP-first (auto-generated MCP tools per entity type). No one else makes that combination in one product.

vs Vector RAG (Knowledge Bases in SyntheticBrew)

Section titled “vs Vector RAG (Knowledge Bases in SyntheticBrew)”
AspectVector RAG (Knowledge Bases)Knowledge Graphs
Data shapeUnstructured text (chunks of prose)Typed entities with fields and relationships
RetrievalCosine similarity, top-k rankingJSONB filter, exact match, full recall
Hallucination riskHigher on structured data (IDs, codes, enums)Near-zero on entity payloads (LLM cannot invent IDs)
Update patternAppend documents, re-embedBulk apply via brewctl, atomic
Tools agent usesknowledge_search(query)list_<type>(filters), get_<type>(id)
Sweet spotManuals, articles, narrative contentCatalogs, taxonomies, registries, controlled vocabularies

These are complementary, not competing. Use Knowledge Bases for narrative search and Knowledge Graphs for structured retrieval, on the same agent. See the Knowledge Graphs concept for the boundary.

LlamaIndex Property Graph Index is the closest open-source equivalent — a property graph built around entity types and relationships, with schema-controlled extraction (SchemaLLMPathExtractor) for whitelisting which types and relations the LLM may produce.

Key differences:

AspectLlamaIndex Property GraphSyntheticBrew Knowledge Graphs
WorkflowExtraction-first — LLM reads documents and extracts entitiesDeclarative-first — customer authors entity bundles directly
Schema controlWhitelist for LLM extraction (still subject to drift)100% deterministic; entities only enter the graph through validated apply
Schema languagePython types / PydanticPortable JSON Schema (Draft 2020-12) with x-* annotations
GitOpsBuild and re-build pipelines in codebrewctl kg apply from a directory; idempotent diff
Agent tool surfaceCustom retrievers per integrationAuto-generated MCP tools per entity type
Multi-tenantPer-namespace storage backendsFirst-class per-tenant scope baked into the engine

Use LlamaIndex when you start from a corpus of unstructured text and want to auto-extract a graph. Use SyntheticBrew when you already know your domain and want a declarative bundle the engine validates and serves to agents directly.

Cognee positions itself as “memory for AI agents” — an ECL pipeline (Extract, Cognify, Load) that ingests data and builds a knowledge graph automatically, with recent support for grounding in existing OWL/RDF ontologies.

Key differences:

AspectCogneeSyntheticBrew Knowledge Graphs
Primary frameMemory layer for agents — what the agent has seenDomain ontology — how the agent’s world is structured
Data source38+ connectors, mostly extraction-basedCustomer-authored bundles, declarative
Ontology authoringOptional grounding through external OWL/RDFNative JSON Schema with x-* annotations
HostingOpen-source library + managed CloudOpen-source engine (CE/EE/Cloud) — bundles served by the same engine that runs the agent

Use Cognee when “memory of what the agent saw” is your primary concern and you want extraction pipelines to populate the graph for you. Use SyntheticBrew when your domain is already known and you want a clean separation between conversation memory (Memory capability) and domain ontology (Knowledge Graphs).

The Neo4j + LangChain partnership provides a pattern: hold the graph in Neo4j and access it from LangChain agents via Cypher queries (often LLM-generated through GraphCypherQAChain).

Key differences:

AspectNeo4j + LangChainSyntheticBrew Knowledge Graphs
StorageNeo4j graph databasePostgres JSONB with generic GIN
Query languageCypher (often LLM-generated)Auto-generated MCP tools (no query generation by LLM)
Setup complexityManage Neo4j cluster + integration codeSingle Postgres in the engine you already run
Hallucination surfaceLLM-generated Cypher can be wrongNo LLM query generation; tools are typed
Schema authoringManual via Cypher CREATEDeclarative JSON Schema
LicenseNeo4j commercial / community + LangChain MITEngine BSL 1.1 (free self-host)

Use Neo4j when you need true graph traversal (multi-hop Cypher patterns, shortest paths, centrality algorithms) over large interconnected datasets. Use SyntheticBrew when you want typed, deterministic retrieval over a curated set of entities without the operational cost of a separate graph database.

Palantir Ontology is the conceptual original: a “digital replica of an organization” where AI agents navigate first-class objects, links, and actions. It is the closest enterprise analogue to Knowledge Graphs.

Key differences:

AspectPalantir OntologySyntheticBrew Knowledge Graphs
Target marketLarge enterprisesMid-market and self-host developers
LicenseCommercial, enterprise contractsOpen-source BSL 1.1
PricingCustom enterprise (typically $1M+)Free self-host; Cloud tiers (Free / Personal / Pro)
Self-hostNoYes (CE binary, Helm chart)
Setup timeMonths (services-led deployment)Hours (brewctl + helm)
ConceptOntology with attached actions / models / decisionsOntology of entities + auto-MCP tools (read-only in MVP)

Positioning: Knowledge Graphs are “Palantir Ontology for the rest of us, open source” — same concept, much narrower scope, mid-market accessible.

Apollo’s MCP Server converts existing GraphQL operations into MCP tools, so an agent calling MCP tools effectively executes GraphQL queries.

Key differences:

AspectApollo MCP ServerSyntheticBrew Knowledge Graphs
InputExisting GraphQL schema and resolversNew JSON Schema bundles
Use caseYou already have a GraphQL APIYou want a declarative ontology without a GraphQL backend
Data backingWhatever your GraphQL resolvers return (DB, microservices, …)The engine’s Postgres
Tool generationOne MCP tool per GraphQL operationThree MCP tools per entity type (list_X, get_X, list_X_ids)

Use Apollo MCP Server when you have a mature GraphQL API and want to expose it to agents. Use SyntheticBrew Knowledge Graphs when you do not have (or do not want to build) a GraphQL backend, and your domain fits the “small-to-medium catalog of typed entities” sweet spot.

Knowledge Graphs are not the right primitive when:

  • Cardinality > 10,000 per entity type — use an external MCP server backed by your existing system
  • Records change more than once per day — use an external MCP server (Knowledge Graphs are GitOps-managed)
  • You need multi-hop graph traversal (shortest path, PageRank, cycle detection in queries) — use Neo4j
  • You only have unstructured text — use Knowledge Bases (vector RAG)
  • You need true entity-to-entity ACID transactions — use a traditional database, not Knowledge Graphs

See the hybrid pattern guide for combining Knowledge Graphs with external systems.

WantUse
Declarative typed catalogs for agents, open-source, GitOps-nativeSyntheticBrew Knowledge Graphs
Auto-extract a graph from documentsLlamaIndex Property Graph Index or Cognee
Multi-hop graph traversal at scaleNeo4j + LangChain GraphRAG
Enterprise ontology with deep integration servicesPalantir AIP
Expose existing GraphQL API to agentsApollo MCP Server
Search narrative documents semanticallyVector RAG (Knowledge Bases)
Per-conversation user memoryMemory capability (Mem0 / Zep style)