IРеестр вопросов

Ответы без оговорок.

Всё, что команды спрашивают перед тем, как передать SQAI агенту: что система никогда не сделает, что покидает машину, что доказывает воспроизведение, сколько это стоит. Краткие ответы, реальные цифры и страницы с полной картиной.

IIЧто это, насколько быстро, где работает

Продукт

Q01–Q05
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–Q10
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"

Почему агентам не стоит писать SQL

IVЧто уходит, что подключается, что обучается

Данные

Q11–Q13
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–Q16
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–Q18
Q17

Нужен ли API-ключ или аккаунт?

Нет. Локальный режим не требует настройки: ни ключа, ни аккаунта, ни карты. Среда выполнения инициализируется сама при первом вычислительном вызове.

Вход в систему необязателен и использует код устройства; он выдаёт офлайн-лицензию, передающую подписанный токен — не ваши данные. Ключи нужны только для подключения к другому движку.

sqai login → RFC 8628 device code · WDJB-MJHT

Q18

SQAI бесплатный или платный?

Локальная разработка и управляемые вычисления бесплатны — в SDK нет никаких проверок лицензии.

Платные тарифы ограничивают количество устройств, мест и коммерческие права — но не вычислительные возможности. Developer: бесплатно, одно устройство, некоммерческое использование. Pro: $25 в месяц, три устройства, коммерческое использование, асинхронные задачи, вебхуки, журнал аудита. Team: $99 в месяц, десять устройств, добавляет управление доступом на основе ролей и места.

Developer $0 · Pro $25/mo · Team $99/mo

VIIЕщё один вопрос

Спросите напрямую.

Если ответа выше нет — вопрос заслуживает живого ответа от человека.

Написать командеЧитать документацию