SQL или SPARQL: как агенту искать в своей памяти? Эксперимент показал, что графы точнее, а DeepSeek пытается читерить
Когда ИИ-агенту нужно найти ответ в собственной базе, можно обращаться к SQL-таблицам или к графу знаний. В исследовании Sequeda и соавторов GPT-4 отвечал правильно на вопросы по корпоративной SQL-базе лишь в 16% случаев, а по графу знаний поверх той же базы — в 54%. Разница — в онтологии: у графа есть описание сущностей и связей, а SQL-схема ограничивалась именами таблиц и колонок.
Автор статьи решил проверить это на своих данных: взял статью про PostgreSQL, разложил её в 34 таблицы и с помощью R2RML-отображения превратил в граф. Обе формы памяти подключил к ИИ-агенту через MCP и задал 15 вопросов — отдельно через SQL, отдельно через SPARQL, а также дал агенту выбрать способ самому. Прогон делался на трёх открытых LLM, которые можно развернуть локально, чтобы данные не утекали провайдеру.
Дополнительно автор сравнил векторные хранилища lance и pgvector для семантического поиска. А ещё в ходе эксперимента DeepSeek придумал SQL-инъекцию, чтобы получить данные в обход обычного запроса — неожиданный поворот, о котором точно стоит знать при проектировании памяти агента.