Home / AI & Data / GraphRAG
ProductAI & Data

GraphRAG

A company AI assistant: it answers from your documents, price list and catalog with the source of every fact, books clients for services and reminds them of visits. Works on your website, in Telegram and Max, over API and MCP.

AI agentknowledge basebookingwebsite widgetTelegramMaxMCP
Request access →
Format
SaaS or private deploymentone service in Docker, data inside your perimeter
Status
Production
Stack
FastAPI · SQLite (vectors + FTS5) · tool-calling agent · MCP · Telegram · Max
Product site
graphrag.ru ↗
Direction
AI & Data
01

About the product

GraphRAG turns a company's policies, manuals, price lists and catalogs into a knowledge base that an AI assistant answers from. For each question it decides what to open: a document section, a product card by SKU or a selection from the catalog. The answer is built only from what was read, and the list of sources is assembled by the program, so a document the assistant never opened cannot appear under the answer. With the Clients module on, the assistant also books: it offers free time from the real schedule, files a request and reminds the client of the visit.

The product fits where the knowledge already exists but lives in files and in people's heads, and routine questions eat staff time: customer support, sales teams with large catalogs, HR and internal policies, salons, clinics and other businesses that take appointments. Instead of a chatbot with a scenario tree, the company gets an assistant it tunes to its own needs and checks with tests.

The key difference is that answer logic is described as data. Input checks, branches, prompts, the tool set and required phrases live in a harness: JSON with versions, built-in tests and one-command rollback. The harness changes without a service release, and a connected AI agent can edit it over the admin MCP link, while a person switches the new version on. Data stays inside your perimeter: each client or department has its own isolated collection.

02

An agent instead of a rigid scenario

A classic bot runs a “router → search → answer” chain: every new type of question needs a new branch. The agent in GraphRAG works differently. It has tools and rules, and it picks the path to the answer itself: for “compare A and B” it opens both cards, for “anything similar?” it takes the product's category and selects by it, for “book me Saturday morning” it checks the schedule and offers slots.

What must always happen is not left to the model. The harness can drop spam without calling the model and switch on a cautious mode for sensitive topics, while required phrases and sources are added by the program.

How the agent answers: question → checks without the model → agent with tools → answer assembled by code → channels INPUT NO MODEL · 0 LLM AGENT · ALL MODEL CALLS ANSWER · BUILT BY CODE CHANNELS Question + dialogue history (last 5 turns) + call context: name, channel “and for kids?” a follow-up is expanded into a full query Spam or ads? regular expression yes → canned reply in milliseconds, no model call Sensitive? health, money, complaints yes → cautious mode + extra agent rules Agent with tools decides what to call and what to read next search grep outline find_objects get_object file_outline read read_section searches → reads → evaluates → reads on or changes method up to 8 rounds, step and time budget Answer only from what was read Sources collected by code from what the agent opened Required phrase in cautious mode — added by the program Clarifying question only if different options were found Websitechat, portal Telegramand Max HTTP API+ streaming MCPClaude etc. A log of every answer question and answer, channel, logic version, step path, tool calls, model calls, time, errors → you see where an answer was bad and why One answer format in every channel answer · items · context · warnings · harness_trace

Tools instead of branches

Semantic and exact search, reading a document or a section, a product card, catalog selection by fields, free time and booking. The same knowledge tools are available to external agents over MCP.

Doesn't give up on an empty search

It changes wording and method: semantic search → exact string → field selection → knowledge base outline. Only then does it say there is no data.

Remembers the dialogue and the person

“And for kids?” is tied to the product from the previous message. A returning client is recognised by channel, with their past visits.

Asks only when it matters

A counter-question only when the choice changes the answer. When the client has to pick a service, a specialist or a time, the options come as buttons.

03

What it looks like

A demo collection: a few policies and an equipment catalog. Click a frame to enlarge.

01

Knowledge base

02

Category tags

03

Settings and tests

04

Chat for employees

05

Documents

Arrows, dots or drag with the mouse; in the enlarged view — ← → and Esc.

04

Who it is for

Companies with extensive documentation

Policies, manuals, HR documents: employees ask in a chat, on the portal or in a messenger and get an answer with the source section.

Shops and distributors with a catalog

Selection by need, comparison, alternatives from the same category and availability answers — with SKUs and prices from the product cards.

Businesses that take appointments

Salons, clinics, studios, restaurants, consultants: the assistant answers about prices and rules, books free time, reminds of the visit and invites clients back. A manager confirms requests.

05

How it works

  1. 1

    Upload documents

    PDF, DOCX, TXT, scans via OCR; price lists and catalogs in XLSX or JSON. A document becomes one structured .md with no paraphrasing, a catalog row becomes an object with fields.

  2. 2

    Index and categories

    Vectors and a full-text index of the collection are built from the .md. Documents are grouped into categories, and category tags work as search filters.

  3. 3

    Set up the assistant

    Tone, rules and sensitive topics live in the answer logic. For booking: the business type, services, bookable resources (specialists, rooms, tables) and their schedules. Built-in tests make sure answers don't break with the next edits.

  4. 4

    Connect channels

    A website widget in one line of code, Telegram and Max bots by token, an HTTP API with streaming, MCP links for Claude and other agents. Other messengers and CRMs connect via webhooks.

  5. 5

    Answers, bookings and the log

    A client gets an answer with its source or books in a few messages. A manager confirms requests, the owner sees each answer's path and ratings in the log.

06

Answer logic is data, not code

The harness describes how a collection answers: 12 step types (checks, branches, variables, search in a given section, custom LLM steps, the agent, the answer), prompts, limits and tests. A validator checks it before saving, and the flowchart in the admin panel is drawn from the same data.

Improvement runs in a loop: run the tests, review the answer log, fix a prompt or a step, check the new version on the same questions and switch it on. This can be done in the admin panel or over the admin MCP. A version with failing tests won't go live; rolling back takes one command.

Harness — answer logic as data (layers: input without the model, agent, answer by code) and the improvement loop over the admin MCP: test, review, edit, check, activate, roll back HARNESS · JSON · VERSIONS v1…vN INPUT — NO MODEL checkspam or ads → canned reply checksensitive topic → flag setswitch on cautious mode AGENT — THE MODEL WORKS HERE agent prompts: @agent_system, @agent_rules, @user_profile (user's name and channel) tools: search · grep · find_objects · get_object · outline · file_outline · read · read_section up to 8 rounds · limit: 10 steps, 12 LLM, 300 s rule: similar products = category → find_objects ANSWER — CODE AGAIN check“CLARIFY:” → counter-question answeranswer + @disclaimer (required phrase) answeranswer + sources from what was read 12 step types · no code in the harness validator before saving · built-in tests · the flowchart is drawn from this data IMPROVEMENT LOOP · ADMIN MCP AI agent (e.g. Claude) via the admin link · 77 tools · a person activates 1 Test built-in tests of the current version harness_run_tests 2 Review answer path, tool calls, errors ask_log 3 Edit a prompt, a step or tools → vN harness_set 4 Check the new version on the same questions harness_test 5 Activate failing tests — version won’t go live harness_activate The loop repeats · rollback — the previous version in one command

Versions and rollback

Every edit is a new version with an author and a comment. Going back takes one command, no release.

Tests gate activation

A test is a question plus expectations: the step path, phrases in the answer, number of model calls, tools called.

Managed over MCP

The user link has 11 tools: search, reading and answers. The admin link adds 66 more: harness, log, documents, categories, settings, archives, clients, calendar and schedule.

Log and traces

Every answer keeps its step path, tool calls, model calls and timing. The admin panel highlights the path on the diagram.

07

What the product does

An AI agent with tools

8 knowledge tools: search, grep, outline, file_outline, read, read_section, get_object, find_objects. The agent picks its own path, reads on when data is incomplete and answers only from what it read.

Sources that can't be made up

Sources are assembled by code from what was found and read; the model sees exactly the context the client gets. A found fragment comes as its whole document section, not a scrap.

Hybrid search

Vectors and BM25 with word forms in one SQLite: SKUs, typos, transliteration (“магнезиум” ↔ “magnesium”), catalog field filters before ranking. Every fragment explains why it was returned.

Client booking

A service directory, bookable resources with schedules and exceptions, free time from real occupancy. The agent books, reschedules and cancels; a taken slot is never sold twice, and a manager confirms requests.

Clients and reminders

A client card from any channel: contacts, notes, visits. Ready-made scenarios: a visit reminder, “Are you coming?”, a thank-you afterwards, an invitation back on time. Quiet hours and /stop to opt out.

Choices as buttons

When the client has to pick a service, a specialist or a time, the options come as buttons in the chat, the widget, Telegram and Max. Buttons are built by the program from the schedule and the directory, so no made-up slot can appear among them.

Harness: logic as data

12 step types, prompts, limits on steps, model calls and time. Versions with rollback, a validator before saving, built-in tests as a condition for activation.

Markdown is the source of truth

A document is stored as .md in its category folder, and the base opens in Obsidian. Edits in the web editor are visible to answers immediately, manual edits survive reindexing.

Isolated collections

Each client is a separate collection: documents, index, history, passwords, bots and MCP links in one folder. Docker inside your perimeter, delivered without source code.

01

AI & Data

RAG, AI assistants and agents

All about the direction →

Want to see the product on your data?

We will show a demo, walk through your scenario and suggest a deployment format.

Request access →