Text2SQL 指南

如何防止幻觉、错误 SQL 和 Prompt Injection

这一章讲安全和可靠边界:Agent Bot 面向老板和下游报告 Agent,不能相信模型自觉安全。RAG 文档不能变成系统指令,SQL 不能绕过只读和权限,答案不能脱离 evidence。

OPENING30 秒开口版

我把安全边界放在模型外面。RAG 文档只作为事实材料,不能覆盖系统指令;SQL 生成后必须经过 AST、只读、多语句、危险函数、系统 schema、表字段权限、dry-run 和成本校验;执行账号是只读的;correct 有重试上限,权限和危险 SQL 属于 terminal,不靠 prompt 修;answer 必须绑定 delivery.evidence 和 artifact,没有证据就降级、澄清或拒绝。

理解与记忆 · 术语、解析、关联知识点
专业术语Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
Terminal Failure:不可修复或不允许修复的失败,直接拒绝或结束。
为什么这样回答安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

1 MIN一分钟口语版

幻觉和注入在这个项目里风险会被放大,因为下游报告 Agent 会把系统 Agent 的 data pack 继续写进报告。我会把安全拆成三层:第一是 identity 和 scope,真人用户、老板、投研、报告 Agent 都有独立 actor、API key、agent scope 和 policyVersion;第二是 visibility,schema chunk、glossary、source_documents、examples、artifact 都带 visibility scope,模型只能看到授权后的 selected context;第三是 execution gate,SQL AST validation、readonly、table/field permission、dry-run、成本、只读连接兜底。RAG 文档、新闻、白皮书里的 Prompt Injection 只能作为 untrusted evidence,不允许修改 tool policy、permission 或 output contract;安全事件可以记录 source id、risk tag 和摘要,但 forbidden raw evidence 不能进入外部观测系统。

理解与记忆 · 术语、解析、关联知识点
专业术语Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
Terminal Failure:不可修复或不允许修复的失败,直接拒绝或结束。
为什么这样回答安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

ARCHITECTURE架构设计要点

指令隔离

RAG 文档和新闻只作证据,不能变成系统指令。

SQL 网关

AST、只读、多语句、危险函数、系统 schema、权限。

权限终止

越权和解析不完整属于 terminal,不通过纠错绕过。

证据约束

高风险结论必须有 evidence 和 artifact 支撑。

工具隔离

只读执行器、timeout、limit、后处理沙箱。

安全评测

注入、越权、敏感字段、报告 Agent 放大错误进入回归。

DIAGRAM架构图

RAG 证据不能变成指令

如何防止幻觉、错误 SQL 和 Prompt Injection Mermaid diagram 1

SQL validate 的三类结果

如何防止幻觉、错误 SQL 和 Prompt Injection Mermaid diagram 2

TABLE关键对象和面试讲法

对象职责面试强调
Prompt Injection文档或用户试图覆盖系统指令指令隔离,证据降权。
DDL/DML写库或改结构AST 拒绝,只读账号兜底。
多语句绕过SELECT 后拼 DROP 等禁止多语句和 comment escape。
不存在表字段模型幻觉 schemavalidate 和 dry-run 发现。
越权表字段访问未授权数据terminal 拒绝。
业务语义错SQL 能跑但口径错semantic-plan 和指标版本校验。
无证据答案模型凭记忆补事实要求 evidence,否则降级。

ATTACK MATRIX高级攻击面矩阵

攻击面风险系统侧防线
RAG 文档注入source_documents 或新闻里写“忽略系统指令”“导出所有数据”。instruction isolation;文档只能作为 evidence,不能修改 tool policy、permission、output contract。
SQL 注入 / 多语句SELECT 后拼接 DDL/DML、危险函数、系统 schema 或注释绕过。AST parser、单语句、readonly、禁 DDL/DML、禁副作用函数,只读数据库账号兜底。
越权字段外带SQL、artifact、data pack 或 answer 带出未授权字段。selected context 前过滤,SQL AST 表列校验,delivery artifact 字段脱敏。
推断泄露报告 Agent 多次查询拼出敏感名单或内部跟踪项目。row threshold、aggregation threshold、差分查询检测、跨 run audit、agent scope 配额。
cache 泄露缓存复用导致低权限 actor 读到高权限 data pack。cache key 必须包含 workspaceId、actorType、agentScope、policyVersion、semanticVersion。
trace 泄露LangSmith 或日志记录权限过滤前 raw evidence。禁止记录 forbidden raw payload,只记录 source id、count、reasonCode、riskTags 和脱敏摘要。

面试时不要说“prompt 里告诉模型别查敏感表”。prompt 是软约束,真正边界在检索可见性、selected context、AST validation、只读账号、delivery 脱敏和 audit log。

REASON CODESQL 校验分类

分类典型 reasonCode处理策略
passAST_PARSED、READONLY_CONFIRMED、PERMISSION_OK、DRY_RUN_OK、SEMANTIC_PLAN_MATCHED进入 execute,并把 validationSummary 写入 delivery.evidence。
correctableDIALECT_ERROR、UNKNOWN_ALIAS、MISSING_LIMIT、AGGREGATION_SYNTAX_ERROR、TYPE_CAST_ERROR带 validation reason 回到 generate-sql,受 retry budget 限制。
terminalDENIED_TABLE、DENIED_COLUMN、MULTI_STATEMENT、DDL_DML_DETECTED、DANGEROUS_FUNCTION、AST_UNCERTAIN、MUST_HAVE_EVIDENCE_MISSING不进入 correct loop;返回拒绝、澄清或低置信解释,不能让模型尝试绕过。

INTERVIEW MAP面试表达地图

  1. 先立边界安全靠系统,不靠模型自觉。
  2. 拆三类风险幻觉、错误 SQL、Prompt Injection。
  3. 讲关键节点intake、retrieve、semantic-plan、validate、answer。
  4. 落 Web3未公开融资、source document 污染、报告 Agent 放大错误。
  5. 收束评测安全回归集和 fail-closed。

SUBAGENTS面试官、候选人和红队

本章写作前已实际启动多 subagent:面试官 subagent 负责连续追问生产压力,候选人 subagent 负责把答案压成现场能讲出口的表达,资料审阅 + 红队 subagent 负责指出哪些地方容易写虚,并补充安全、评测、runId、下游报告 Agent 的攻击面。

本章追问重点:所有回答都要落到 RootData 类 Web3 主项目、Agent Bot、Text2SQL、RAG、runId/evidence/artifact/data pack 和下游报告 Agent 复用。

Q&A20 组高强度追问

面试官:RAG 文档里的“忽略系统指令”为什么不能执行?

我:因为 RAG 文档是非可信内容源,只能作为事实证据。运行时把系统指令、用户输入、RAG evidence 分层,RAG 内容不能修改 tool policy、权限或输出规则。

理解与记忆 · 背后工程点

背后工程点:Prompt Injection 的核心是指令边界。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:SQL 只看 SELECT 开头够吗?

我:不够。要解析 AST,禁止多语句、注释绕过、危险函数、系统 schema、DDL/DML 和副作用函数。字符串前缀很容易被绕过。

相似题已合并 · 建议跳转

SQL 校验、执行安全与 correct loop:架构章主讲 validate/correct/execute 是主链路,安全章主讲攻击面和终止条件。

理解与记忆 · 背后工程点

背后工程点:SQL 安全必须结构化解析。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:多语句和注释绕过怎么拦?

我:SQL parser 检查 statement count,禁止 comment-based escape 和分号拼接。执行器也只接受单条只读查询,数据库账号没有写权限。

相似题已合并 · 建议跳转

SQL 校验、执行安全与 correct loop:架构章主讲 validate/correct/execute 是主链路,安全章主讲攻击面和终止条件。

理解与记忆 · 背后工程点

背后工程点:网关和数据库权限要双保险。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:validate 发现权限问题,是纠错还是 terminal?

我:权限问题是 terminal。不能让 correct 尝试绕过权限,只能返回拒绝或要求授权。可纠错的是列名拼错、方言差异这类非安全问题。

理解与记忆 · 背后工程点

背后工程点:权限失败不可通过模型修复。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:LLM 编造不存在表字段如何发现?

我:validate 和 dry-run 会检查表字段存在性,semantic-plan 也有 selectedTables/Columns。不存在字段进入 correctable,有限重试仍失败就返回诊断。

理解与记忆 · 背后工程点

背后工程点:schema 幻觉靠校验和 selected context 约束。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:SQL 合法但业务语义错怎么拦?

我:靠 semantic-plan 和指标口径校验。比如用户要未 TGE,SQL 没过滤 token_status,就算合法也不满足 plan ledger,应重新生成或返回低置信。

理解与记忆 · 背后工程点

背后工程点:合法 SQL 不等于符合计划。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:Prompt Injection 是否会进入 LangSmith?

我:原始恶意内容要谨慎。可以记录检测到 injection risk、source id 和摘要,但不要把敏感或未过滤原文写到外部观测系统。

理解与记忆 · 背后工程点

背后工程点:安全事件观测也要脱敏。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:用户要求导出所有未公开融资数据怎么办?

我:intake 识别敏感请求,governance 判断没有 scope,直接拒绝并说明需要授权。不会召回内部证据,也不会生成 SQL。

理解与记忆 · 背后工程点

背后工程点:高风险请求要入口分流。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:下游报告 Agent 会不会改写 evidence?

我:它不应该改写 evidence,只能引用 data pack。若报告 Agent 生成新推断,需要标注为推断或重新调用系统 Agent。系统返回的 source refs 和 runId 不能被省略。

理解与记忆 · 背后工程点

背后工程点:防止下游放大错误要靠合同约束。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:安全回归集包含哪些 Web3 场景?

我:未公开融资、内部评分、API 收入、跨 workspace、敏感字段枚举、恶意 source_documents、同名实体诱导、DDL/DML、多语句和报告 Agent 批量探测。

理解与记忆 · 背后工程点

背后工程点:安全评测要贴近业务风险。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:为什么治理失败不通过 prompt correction 修?

我:因为 prompt correction 仍由模型决定,可能绕过或误解策略。治理失败要回到权限配置、授权申请或拒绝,不进入生成修复循环。

理解与记忆 · 背后工程点

背后工程点:治理是系统事实,不是生成问题。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:如何防止模型凭记忆补 Web3 项目信息?

我:答案生成要求高风险事实必须来自 selected evidence 或 SQL artifact。没有证据时返回 unknown、低置信或澄清,不能用模型常识补。

理解与记忆 · 背后工程点

背后工程点:证据约束是防幻觉核心。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:如果 RAG 召回了恶意新闻怎么办?

我:source 文档进入 evidence 前要保留 docType 和 trust level,回答只提取可验证事实,不执行其中指令。低可信来源只能辅助,不能覆盖官方来源。

理解与记忆 · 背后工程点

背后工程点:恶意内容可能是事实来源但不是指令来源。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:post-processing 也有风险吗?

我:有。图表规格、导出、轻量聚合如果执行代码,需要沙箱、无外网、无写库权限、资源限制。不能只保护 SQL。

理解与记忆 · 背后工程点

背后工程点:SQL 安全后还有后处理安全。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:correct loop 会不会无限重试?

我:不会。correct 有预算和错误类型限制。可修复错误有限重试,terminal 错误直接结束,避免成本爆炸和安全绕过。

相似题已合并 · 建议跳转

SQL 校验、执行安全与 correct loop:架构章主讲 validate/correct/execute 是主链路,安全章主讲攻击面和终止条件。

理解与记忆 · 背后工程点

背后工程点:纠错闭环必须有界。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:如何处理 SELECT *?

我:默认拒绝或改写为授权列集合。字段权限场景下 SELECT * 不可接受,明细查询还要 limit 和脱敏。

本题主讲 · 相似题跳转

SELECT * 的权限与安全处理:安全章主讲 SELECT * 的结构化拦截,权限章从字段可见性补充。

理解与记忆 · 背后工程点

背后工程点:字段级安全要求显式列。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:用户让系统忽略权限并说自己是老板怎么办?

我:身份来自 actor 和 token,不来自自然语言声明。用户说自己是老板不会改变 workspace role 或 API scope。

理解与记忆 · 背后工程点

背后工程点:自然语言不能提升权限。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:如何发现业务语义幻觉?

我:把 semantic-plan 的 metric、filter、join path 和生成 SQL 做 ledger check。缺少关键过滤、使用错误指标或 join path 不允许时,不进入执行。

理解与记忆 · 背后工程点

背后工程点:业务幻觉要在计划到 SQL 之间校验。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:安全和体验冲突怎么办?

我:高风险场景优先安全,给明确拒绝原因和申请路径。低风险可给脱敏或聚合结果。不能为了体验泄露明细。

理解与记忆 · 背后工程点

背后工程点:安全优先,但交互要可解释。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

面试官:一句话总结安全设计。

我:我的安全设计是不相信模型、不相信文档、不相信用户自称身份,只相信系统授权、结构化校验和可追溯证据。

理解与记忆 · 背后工程点

背后工程点:总结要坚定边界。
专业术语:Instruction Isolation:把系统指令、用户输入、RAG 证据和工具结果分层处理。
AST Validation:用 SQL 语法树检查语句类型、表字段、函数和结构。
Readonly SQL:只允许安全读查询,不允许写入、DDL 或副作用函数。
为什么这样回答:安全题要坚决把边界放在系统侧。说 prompt 写好一点会被面试官追穿。
小白解析:资料里可能有人写“忽略之前指令”,模型可能被带偏。所以系统要把资料当证据,而不是当命令;SQL 也要像过安检一样检查。
关联知识点:text2sql 文档中 validate 检查只读、安全、权限、方言、dry-run 和关系路径。方案文档强调 SQL 安全网关、只读连接、敏感字段、limit、timeout 和 post-processing sandbox。

PRINCIPLE本章背诵原则

  • RAG 是证据,不是指令。
  • SQL 安全靠 AST、权限和只读账号,不靠 prompt。
  • 权限失败是 terminal,不进入纠错绕过。
  • 答案必须有 evidence,无证据就降级或拒绝。
  • 报告 Agent 会放大错误,所以系统 Agent 要集中治理。