IРеестр вопросов
Ответы без оговорок.
Всё, что команды спрашивают перед тем, как передать SQAI агенту: что система никогда не сделает, что покидает машину, что доказывает воспроизведение, сколько это стоит. Краткие ответы, реальные цифры и страницы с полной картиной.
IIЧто это, насколько быстро, где работает
Продукт
Q01Что такое SQAI?
Structured Query AI — управляемый инструмент для AI-агентов с доступом только на чтение к структурированным данным. Вопрос превращается в типизированный, проверенный политикой план; план выполняется на детерминированном движке; ответ возвращается с хешами, позволяющими его воспроизвести.
Единая поверхность охватывает файлы и живые базы данных, а также 4 778 вычислительных возможностей только для чтения в 445 модулях — от медиан до ценообразования опционов.
stats.median · finance.npv · option_pricing.black_scholes_call
Q02Это быстро?
Холодного старта на каждый запрос нет. Плоскость запросов работает внутри процесса — субмиллисекундно на типичных файлах.
Вычислительный слой инициализируется один раз: самый первый вызов загружает и инициализирует подписанный рантайм примерно за 110 секунд. После этого демон остаётся прогретым и резидентным, а прогретый вычислительный вызов занимает 0,83–0,93 мс.
finance.npv = 0.83–0.93 ms (warm) · first provision ≈ 110 s
Q03Какие платформы поддерживаются?
Подписанный рантайм поставляется для macOS на Apple Silicon и x64 Linux. На Windows управляемый вычислительный вызов возвращает структурированную именованную ошибку, а не аварийно завершается.
Плоскость запросов работает везде. Так же работают self-hosted и hosted режимы, поскольку вычисления передаются на удалённый движок. Node 20 или новее; Python 3.10 или новее.
darwin-arm64 · linux-x64 · node ≥ 20 · python ≥ 3.10
Q04Можно ли поставить рантайм меньшего размера?
Да. По умолчанию SQAI устанавливает зафиксированный бандл, покрывающий всю доступную поверхность. Укажите только нужные модули — и сборочный сервис скомпилирует подписанный, sha256-зафиксированный бандл для этого подмножества, кешированный по хешу фильтра.
Отфильтрованные демоны получают собственный сокет и порт и никогда не конфликтуют с полным.
SQAI_RUNTIME_MODULES → POST /v1/runtime/build · sha256-pinned
Q05Что-то сломалось. Как отладить?
Инструменты агента никогда не бросают исключений. Ошибки возвращаются как структурированный вывод со статусом и кодом, называющим причину отказа: отказ политики, неизвестная возможность, отсутствующий seed.
Для всего, что находится под инструментами, одна команда проверяет установку, рантайм и межъязыковое соответствие за один проход.
output.status === "error" · sqai doctor --parity --json
IIIТолько чтение — конструктивно, а не флагом
Безопасность
Q06Действительно ли только чтение?
Да — конструктивно, а не по разрешению. Модель формирует типизированное намерение, а не SQL; SQAI проверяет его по контракту возможностей с хеш-фиксацией, применяет вашу политику и только затем выполняет.
Из 4 778 возможностей доступны 4 574: только те, что предназначены только для чтения и детерминированы, либо детерминированы при наличии seed. 204 возможности, не прошедшие проверку, — включая все операции записи, — отсутствуют в поставляемой поверхности. Никакая настройка не достигнет того, что никогда не было поставлено.
read_only && (deterministic || deterministic_when_seeded)
Q07Как дать агенту доступ к данным только на чтение?
Зарегистрируйте источники в коде и передайте модели набор инструментов — ровно три. Один перечисляет доступное, другой предварительно просматривает план без выполнения, третий выполняет запрос к поверхности только для чтения.
Роль базы данных только для чтения — это флаг, который кто-то может снять. Поверхность, скомпилированная без возможностей записи, — нет.
sqai.tools() → listSources · explainQuery · queryData
Q08Как заблокировать DELETE или DROP в SQL, сгенерированном LLM?
Не фильтруйте SQL. Прекратите его генерировать.
Строковые фильтры и флаги только для чтения защищают язык, который всегда может выразить запись — а SQL, внедрённый через prompt, поступает в вывод модели, минуя ваш входной санитайзер. Модель SQAI пишет типизированный план в грамматике без форм записи: DELETE не отклоняется — его невозможно написать.
kind: "query" | "computation" · version: "1"
Q09Может ли модель расширить мою политику?
Нет. Политика фиксируется в коде при создании клиента и проверяется внутри процесса перед каждым выполнением. Схемы инструментов не содержат никакого поля списка разрешений, поэтому prompt не имеет к чему обратиться.
Явный список разрешений может только сужать. Указание возможности за пределами допустимой поверхности всё равно завершится ошибкой — поставляемая поверхность является потолком.
policy_denied_source · policy_denied_field · policy_denied_function
Q10Есть ли аварийный выход?
Да — для людей, но никогда для моделей. Незащищённый рантайм находится за отдельным импортом, обходящим контракт, политику и проверки seed, и никогда не выставляется в набор инструментов агента.
Инженер может осознанно отказаться от защиты. Агент не достигнет этого никаким вводом.
import { getUnsafeRuntime } from "@thyn-ai/sqai/unsafe"
IVЧто уходит, что подключается, что обучается
Данные
Q11Какие данные покидают мою машину?
В локальном режиме по умолчанию — никакие. Уровень запросов выполняется внутри процесса, а вычислительная среда — это подписанный демон на вашей машине. Единственный исходящий вызов — первоначальная загрузка пакета среды выполнения: код движка, не ваши данные.
Укажите переменную окружения на собственный или размещённый движок — и планы будут отправляться туда с зашифрованными учётными данными, без копирования данных.
local: in-process · self_hosted: SQAI_ENGINE_URL · api: SQAI_API_KEY
Q12Какие источники данных можно запрашивать?
Внутри процесса без ключа: CSV, TSV, JSON, строки в памяти и SQLite — а также Excel и Parquet в Python. Через движок: PostgreSQL, MySQL, Oracle с встроенным драйвером Thin-mode, SQL Server, Snowflake, BigQuery, ClickHouse, Redshift, объектные хранилища, Redis, Neo4j, Elasticsearch, REST API и Git-репозитории.
Каждый источник представлен одной и той же типизированной структурой, поэтому код не отличит CSV от Snowflake. Источники неизменяемы после регистрации.
SqaiSource { fields, typed_fields, row_count, schema_revision }
Q13Обучается ли SQAI на моей схеме или данных?
Никогда. SQAI — не модель и ничему не обучается: никакого цикла обучения не существует. В локальном режиме ваши данные вообще не покидают машину.
Единственная модель в цепочке — та, что вы подключаете сами, и она видит не более 25 строк на результат. Всё, что превышает этот предел, усекается — явно, без скрытых обрезок — а полное значение хранится под непрозрачным идентификатором результата, который истекает через 15 минут.
maxRowsToModel 25 · maxCellsToModel 250 · maxBytesToModel 32,000
VТот же вопрос — те же байты
Детерминизм
Q14Как достигается детерминизм — и идентичность в TypeScript и Python?
Детерминизм в рамках объявленного контекста выполнения: 64-битные числа с плавающей точкой, один поток, фиксированная среда выполнения. Каждый результат фиксирует этот контекст, не претендуя на большее.
Канонический сериализатор соответствует единому стандарту в обоих SDK, поэтому одно и то же вычисление возвращает одно и то же число и побайтово идентичные хеши в TypeScript и Python.
finance.npv(0.1, [-1000, 300, 420, 560, 680]) = 505.020148896933computation_hash b74f67d0… · TS ≡ PY
Q15Как не дать LLM выдумывать числа?
Не позволяя ей выполнять арифметику. Попросите модель посчитать итог по 200 строкам — получите правдоподобное число без какого-либо сигнала об ошибке.
С SQAI модель лишь выбирает вычисление; движок его выполняет. В нашем A/B-тесте точности та же модель перешла с 0 из 16 к 16 из 16 на количественных вопросах — в тот момент, когда вычисления взял на себя движок.
accuracy A/B: 0/16 → 16/16
Q16Можно ли воспроизвести ответ агента?
Да — именно для этого и нужны хеши. Каждый результат содержит хеш плана, хеш вызова (известный до выполнения), хеш вычисления (известный после) и конверт детерминизма с версией среды выполнения, платформой, точностью и зерном.
Повторите вызов в том же контексте спустя месяцы — хеш совпадёт побайтово. Если базовая схема изменилась, вы получите именованное несоответствие версий схемы, а не молчаливо другие числа.
run1 b74f67d0d7a594aa7ac91f6291612452aa8ccdf603351ebc8d801a6fddd91bc8run2 b74f67d0d7a594aa7ac91f6291612452aa8ccdf603351ebc8d801a6fddd91bc8identical: true
VIЧто бесплатно, что ограничено
Цены
Q17Нужен ли API-ключ или аккаунт?
Нет. Локальный режим не требует настройки: ни ключа, ни аккаунта, ни карты. Среда выполнения инициализируется сама при первом вычислительном вызове.
Вход в систему необязателен и использует код устройства; он выдаёт офлайн-лицензию, передающую подписанный токен — не ваши данные. Ключи нужны только для подключения к другому движку.
sqai login → RFC 8628 device code · WDJB-MJHT
Q18SQAI бесплатный или платный?
Локальная разработка и управляемые вычисления бесплатны — в SDK нет никаких проверок лицензии.
Платные тарифы ограничивают количество устройств, мест и коммерческие права — но не вычислительные возможности. Developer: бесплатно, одно устройство, некоммерческое использование. Pro: $25 в месяц, три устройства, коммерческое использование, асинхронные задачи, вебхуки, журнал аудита. Team: $99 в месяц, десять устройств, добавляет управление доступом на основе ролей и места.
Developer $0 · Pro $25/mo · Team $99/mo
VIIЕщё один вопрос
Спросите напрямую.
Если ответа выше нет — вопрос заслуживает живого ответа от человека.