SERVICE · AI AND AGENT ENGINEERING

Retrieval engineering

Build or extend the retrieval stack behind a product — and prove it with numbers instead of adjectives.

STACK
TypeScript · Bun · PostgreSQL/pgvector · MCP
DELIVERY
Weekly diffs, fixed scope
PROOF
A scored query set you can rerun

WHAT WE BUILD

  1. Graph ingestion

    Markdown, PDF-to-text and HTML corpora into entities, relationships and communities, stored in PostgreSQL with pgvector so the graph and the embeddings share one database.

  2. Hybrid retrieval

    Vector, keyword and graph channels combined with reciprocal rank fusion, then community scoring for corpus-wide questions. Every answer returns its sources.

  3. MCP server in front of it

    The engine exposed over the Model Context Protocol with isolated workspaces, so an editor or an agent can query it without an SDK.

HOW IT IS EVALUATED

A retrieval system without a query set is a demo. We ask for twenty questions your team already argues about, then report on them every week.

  • Strict hit rate — did the answer contain the fact at all
  • Entity and phrase recall — which named things and phrases were retrieved
  • Latency per query and total indexing time, on your hardware
  • The harness is committed to your repository and reruns with one command

STACK NOTES

PostgreSQL and pgvector instead of a separate vector database; Leiden communities instead of Louvain; reciprocal rank fusion instead of one tuned weight. The reasoning is written up in the case study.

Case study: GraphRAG in TypeScript ↗ · Repository ↗

ENGAGEMENT

Fixed scope, quoted per project, weekly diffs and a handover on completion. If the problem is only the evaluation, that is a two-week engagement on its own.

FAQ

  1. GraphRAG or plain vector RAG?

    Vector RAG answers "which chunk looks like this question". GraphRAG also answers "which entities connect to this one", which is what multi-hop and corpus-wide questions need. Start with vector search if your questions are single-fact; add the graph when they are not.

  2. PostgreSQL and pgvector, or a dedicated vector database?

    PostgreSQL keeps the graph, the embeddings and your relational data in one place with one backup and one migration path. A dedicated vector database earns its place above roughly tens of millions of vectors or when you need its specific index types; below that the operational cost usually outweighs the query difference.

  3. Why expose retrieval over MCP instead of a REST API?

    An MCP server is usable by any MCP-capable editor or agent without writing a client. A REST API still needs an SDK, auth plumbing and a client update every time the schema moves.

Talk about a build ↗More questions in the FAQ