$cd ../use-cases/
👾 开发者v1.4+8 分钟配置
$ cat sql-natural-language.md
SQL 自然语言查询界面
/** 弥合人类好奇心与结构化数据之间的鸿沟。OpenClaw 将自然语言转换为生产级 SQL,具备原生的模式感知能力和安全防护栏。 */
schema_sentinel.log
架构感知与安全至上
大多数"文本转 SQL"工具只是基于问题文字猜测列名——它们会幻想表结构,生成静默失败或返回错误数据的查询。OpenClaw 采用根本不同的方式:在生成第一个 SQL 字符之前,先对数据库进行完整的 DDL 自省,将所有表定义、列类型、外键关系和索引结构加载到模式感知的上下文窗口中。生成的 SQL 不仅能运行——而且在架构层面是正确的。 对于生产数据库,安全不可妥协。OpenClaw 在数据库角色层面强制只读访问——即使 LLM 生成了 UPDATE 或 DELETE 语句,连接层也会拒绝执行。配置中标记的敏感字段(邮箱、身份证号、手机号)在结果展示前自动脱敏。每条生成的查询都通过本地 SQL linter 和基于 LLM 的意图验证步骤,检查查询语义是否与用户实际的提问相符,防止"上个月的收入"变成年初至今的汇总。
query_pipeline.md
⚙️ 查询流水线
1
元数据发现
OpenClaw 使用只读凭证连接数据库,自省所有 Schema 元数据——表名、列类型、索引、外键和检查约束——不读取任何行级数据。Schema 快照被缓存,并在检测到 DDL 变更时自动刷新。
2
语义映射
使用 RAG 增强的 Schema 上下文将用户意图映射到具体的表和列。对于歧义术语(如"收入"、"用户"、"上个季度"),基于实际的 Schema 命名约定和您可按项目配置的领域别名字典进行消歧。
3
SQL 合成与校验
生成带有方言特定优化的 ANSI 标准 SQL(PostgreSQL、MySQL 或 BigQuery)。两轮校验:先通过本地 linter 检查语法正确性,再通过 LLM 重读验证语义准确性,确保查询在执行前既语法正确又语义合理。
4
多模态可视化
结果集自动以最合适的格式渲染:表格数据显示为可交互排序的表格,时间序列数据显示为折线图,分类聚合显示为柱状图。原始 CSV 下载始终可用,方便在外部工具中进一步分析。
database_pool.json
⚙️ 数据库连接配置
{
"provider": "postgresql",
"connection": "postgres://readonly:***@prod-db:5432/analytics",
"security": {
"enforce_read_only": true,
"pii_masking": ["email", "phone"]
}
}
💡# 💡 高级技巧:使用 'postgres-read-only' 角色确保 AI 永远无法修改您的生产数据。
example_queries.sql
💬 生产级示例
QUERY:
"计算第三季度 Pro 用户的流失率"
OUTPUT:
WITH churn AS (SELECT user_id FROM subs WHERE status='expired'...) SELECT count(*) / (SELECT count(*) FROM users)...
QUERY:
"查找 202 房间重叠的预约"
OUTPUT:
SELECT t1.id, t2.id FROM appts t1 JOIN appts t2 ON t1.room=t2.room AND t1.start < t2.end...
❓ FAQ
Q1. 会意外修改生产数据库吗?
不会。OpenClaw 在两个层面强制只读:数据库角色(postgres-read-only)和执行层——后者对生成的 SQL 进行模式匹配,拦截任何 DML 或 DDL 语句并在执行前拒绝。即使是被入侵的 LLM 输出也无法写入、删除或修改您的 Schema。
Q2. 支持哪些数据库?
PostgreSQL、MySQL 8+ 和 Google BigQuery 开箱即用,具备完整的方言支持。社区连接器另有 MSSQL、SQLite、Oracle 和 Snowflake。Schema 自省引擎会自动适配各数据库的 information_schema 格式。
Q3. 能处理 JOIN 和 CTE 等复杂查询吗?
能。因为 OpenClaw 读取您实际的 DDL,它理解外键关系并生成正确的多表 JOIN、CTE、窗口函数(RANK、LAG、LEAD)和相关子查询。用户反馈显示,对于简单工具无法回答的复杂问题,OpenClaw 能生成准确的复杂查询。
Q4. 数据发送到云端吗?
Schema 元数据(表名、列名、类型)和生成的 SQL 查询会被处理。您表中的实际记录——行级数据——永远不会离开您的服务器。使用 Ollama 本地 LLM 时,即使 Schema 元数据也保留在本地,零外部网络请求。
Q5. PII 脱敏如何工作?
您在配置文件中通过精确名称或 glob 模式定义敏感列(email、phone、ssn、ip_address)。查询结果在展示前自动将匹配字段值替换为脱敏等效值——'***@***.com'、'***-**-1234'。脱敏在 API 层执行,而非数据库层,因此原始数据永远不会被传输。
Q6. 非技术团队成员能使用吗?
这正是主要使用场景。产品经理、增长分析师和客户成功团队可以用自然语言提问,获得真实数据答案,无需编写 SQL 或等待数据工程师支持。OpenClaw 的 Telegram 和 Web UI 界面无需数据库客户端即可从任何设备访问。
Q7. 它如何处理模糊问题?
当用户的问题可能对应多种有效解释时——例如"显示销售额"可以是今天、本月或按产品分类——OpenClaw 在生成 SQL 之前先返回一个澄清问题。这个消歧步骤防止自信地给出错误答案,可按项目配置。