I问题清单

白纸黑字,有问必答。

团队在将 SQAI 交给 Agent 之前所有的疑问——它永远不能做什么、什么数据会离开机器、重放能证明什么、费用几何。简明作答,数据真实,并附有完整说明页面。

II是什么、有多快、在哪里运行

产品

Q01–Q05
Q01

SQAI 是什么?

Structured Query AI——面向 AI Agent 的受治理、只读结构化数据工具。问题被转化为有类型、经策略检查的计划;计划在确定性引擎上执行;答案连同可重放的哈希值一并返回。

单一接口同时覆盖文件与实时数据库,以及 445 个模块中的 4,778 个只读计算能力——从中位数到期权定价,一应俱全。

stats.median · finance.npv · option_pricing.black_scholes_call

Q02

它快吗?

查询层无需每次冷启动,在进程内运行——处理典型文件时延迟低于毫秒级。

计算层仅初始化一次:首次调用时下载并初始化已签名的运行时,约需 110 秒。此后守护进程保持热态常驻,热态计算调用耗时为 0.83–0.93 ms。

finance.npv = 0.83–0.93 ms (warm) · first provision ≈ 110 s

Q03

支持哪些平台?

已签名的运行时支持 Apple Silicon macOS 和 x64 Linux。在 Windows 上,托管计算调用会返回结构化的具名错误,而不会崩溃。

查询层可在任意平台运行,自托管与托管模式亦然,因为计算会被提交至远程引擎。需要 Node 20 或更高版本;Python 3.10 或更高版本。

darwin-arm64 · linux-x64 · node ≥ 20 · python ≥ 3.10

Q04

能否使用更小的运行时?

可以。默认情况下,SQAI 安装覆盖全部公开接口的固定版本包。只需指定所需模块,构建服务即会为该子集编译一个已签名、sha256 固定的包,并按过滤器哈希缓存。

过滤后的守护进程拥有独立的 socket 和端口,与完整版本互不冲突。

SQAI_RUNTIME_MODULES → POST /v1/runtime/build · sha256-pinned

Q05

出现故障时如何调试?

Agent 工具永远不会抛出异常。错误以结构化输出的形式返回,包含状态码和命名拒绝原因——策略拒绝、未知能力、缺少种子。

对于工具层以下的一切,一条命令即可在单次执行中检查安装状态、运行时状态及跨语言一致性。

output.status === "error" · sqai doctor --parity --json

III只读由架构保证,而非由标志位控制

安全性

Q06–Q10
Q06

它真的是只读的吗?

是的——由架构保证,而非由权限控制。模型提交的是有类型的意图,而非 SQL;SQAI 将其与哈希固定的能力契约进行校验,应用你的策略,然后才执行。

在 4,778 个能力中,4,574 个对外公开:仅包含只读且确定性的,或带种子时确定性的能力。未通过检验的 204 个——包括所有写操作——均不在打包接口中。任何设置都无法触达从未发布的内容。

read_only && (deterministic || deterministic_when_seeded)

Q07

如何为 Agent 提供对数据的只读访问?

在代码中注册数据源,并将工具集——恰好三个工具——交给模型。一个列出现有内容,一个在不执行的情况下预览计划,一个针对只读接口执行。

数据库只读角色是一个可被取消的标志位,而不包含写能力的编译接口则不然。

sqai.tools() → listSources · explainQuery · queryData

Q08

如何在 LLM 生成的 SQL 中屏蔽 DELETE 或 DROP?

不需要过滤 SQL,而是从源头阻止生成它。

字符串过滤和只读标志守护的是一门始终能表达写操作的语言——而经提示注入的 SQL 出现在模型输出中,已绕过你的输入过滤器。SQAI 的模型以一种语法上不存在写形式的类型化计划作答:DELETE 不是被拒绝的,而是根本无法写出的。

kind: "query" | "computation" · version: "1"

Q09

模型能扩大我的策略范围吗?

不能。策略在创建客户端时固定于代码中,并在每次执行前在进程内检查。工具 schema 不携带任何形式的允许列表字段,因此提示词无从触达。

显式允许列表只能缩小范围。指定公开接口之外的能力仍会失败——打包接口是上限。

policy_denied_source · policy_denied_field · policy_denied_function

Q10

有逃生通道吗?

有——仅供人类使用,模型无法触达。未受保护的运行时位于独立的导入路径之后,绕过契约、策略和种子检查,且从不暴露给 Agent 工具集。

工程师可以主动选择退出,Agent 则无论输入什么都无法触达它。

import { getUnsafeRuntime } from "@thyn-ai/sqai/unsafe"

为何 Agent 不应编写 SQL

IV离开什么,连接什么,训练什么

数据

Q11–Q13
Q11

哪些数据会离开我的机器?

在默认本地模式下,没有任何数据离开。查询平面在进程内解析,计算运行时是您机器上的一个已签名守护进程。唯一的出站请求是首次使用时下载运行时包——下载的是引擎代码,而非您的数据行。

将环境变量指向自托管或托管引擎后,执行计划将发送至该引擎,凭据经过加密,数据不会被复制。

local: in-process · self_hosted: SQAI_ENGINE_URL · api: SQAI_API_KEY

Q12

我可以查询哪些数据源?

无需密钥的进程内模式支持:CSV、TSV、JSON、内存数据行及 SQLite——Python 中还支持 Excel 和 Parquet。通过引擎支持:PostgreSQL、MySQL、Oracle(含内置 Thin 模式驱动)、SQL Server、Snowflake、BigQuery、ClickHouse、Redshift、对象存储、Redis、Neo4j、Elasticsearch、REST API 及 Git 仓库。

每个数据源呈现相同的类型化结构,下游代码无法区分 CSV 与 Snowflake。数据源一经注册即不可变更。

SqaiSource { fields, typed_fields, row_count, schema_revision }

Q13

SQAI 会用我的 schema 或数据进行训练吗?

绝不。SQAI 不是模型,不进行任何训练——没有可供输入的学习循环。在本地模式下,您的数据行根本不会离开机器。

循环中唯一的模型是您自己引入的,它每次最多看到 25 行结果。超出部分会被截断——明确声明,从不静默——完整值保存在一个不透明的结果 ID 下,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 测试中,同一模型在定量问题上的得分,在引擎接管计算的瞬间从 16 题中答对 0 题跃升至全部答对。

accuracy A/B: 0/16 → 16/16

Q16

能否回放智能体的回答?

可以——这正是哈希值的用途。每个结果携带一个计划哈希、一个执行前已知的调用哈希、一个执行后已知的计算哈希,以及一个记录运行时版本、平台、精度和种子的确定性信封。

在相同范围内重新运行调用,即使数月之后,哈希值也会逐字节匹配。若底层 schema 发生变更,您将收到一个具名的 schema 版本不匹配错误,而非静默地返回不同的数字。

run1 b74f67d0d7a594aa7ac91f6291612452aa8ccdf603351ebc8d801a6fddd91bc8run2 b74f67d0d7a594aa7ac91f6291612452aa8ccdf603351ebc8d801a6fddd91bc8identical: true

确定性,完整解析

VI什么免费,什么受限

定价

Q17–Q18
Q17

我需要 API 密钥或账户吗?

不需要。本地模式零配置——无需密钥、账户或信用卡。运行时在首次计算调用时自动初始化。

登录为可选项,使用设备码方式;它签发一个离线许可证,传输的是已签名令牌,而非您的数据。密钥仅用于指向不同的引擎。

sqai login → RFC 8628 device code · WDJB-MJHT

Q18

SQAI 是免费还是付费的?

本地开发和托管计算均免费——SDK 中没有任何许可证检查。

付费套餐限制的是设备数、席位和商业权利,而非计算功能。Developer:免费,单设备,非商业用途。Pro:每月 $25,三台设备,商业用途,异步任务、Webhook、审计日志。Team:每月 $99,十台设备,新增基于 RBAC 的访问控制和席位管理。

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

VII还有问题

直接问我们。

若上方未能解答,您值得获得一个真实的回复——来自真人。

联系团队阅读文档