Schema-As-Code / 语义令牌表
Schema-As-Code 语义编码层 · ① 语义令牌表

语义令牌表 Semantic Token Table

把语义概念编码成离散枚举。不是"红色",是 status.critical;不是"限流",是 error_severity.retryable。
每个令牌是离散索引,编译管线查表后展开为连续约束。

1

语义可被离散编码

error_severity 的四级后果差异能被编码为四个互斥枚举值,而非自然语言描述

2

令牌绑定唯一视觉映射

每个令牌绑定且仅绑定一组视觉参数,不可被自由替换

3

令牌可被机器消费

同一组令牌能被编译为 Prompt 前缀、JSON Schema、CI 规则三种格式

status._ —— 这件事有多严重?

status.critical
致命:系统故障、数据丢失
视觉:红色脉冲 + 八边形
行为:必须二次确认
文案:必须说明后果
status.warning
警告:限流、降级、可恢复
视觉:黄色静态 + 三角
行为:必须显示恢复时间
文案:必须提供操作步骤
status.info
信息:提示、说明、部分可用
视觉:蓝色静态 + 信息图标
行为:可自动消失
文案:禁止附加操作说明
status.success
成功:保存完成、操作成功
视觉:绿色静态 + 对勾
行为:可自动消失
文案:禁止附加操作说明
status.neutral
中性:加载中、等待中
视觉:灰色动画 + 旋转
行为:无
文案:无

码本解码演示

离散索引 status.critical → 展开为连续约束

离散索引
status.critical
视觉方向
红色脉冲 + 八边形图标
行为约束
必须二次确认 + 必须提供恢复路径
文案约束
必须说明后果
机器防线 · 跨层禁止
observational / navigational / conversational 域下非法

同一令牌编译为三种消费格式

Prompt 前缀
在生成致命错误界面时:
- 必须使用红色脉冲视觉
- 必须包含八边形警告图标
- 必须提供恢复路径按钮
- 文案必须说明后果严重性
- 禁止在 observational 域使用
JSON Schema
{
  "color_token": "status.critical",
  "motion_token": "pulse.red.urgent",
  "icon_token": "alert.octagon",
  "required_actions": ["refresh", "export"],
  "forbidden_domains": ["observational"]
}
CI 规则
rules:
  critical-token-usage:
    token: "status.critical"
    forbidden_in: ["observational"]
    required_visual: "pulse.red.urgent"
    violation: "block"

对比演示:"同一个红色"在不同令牌下的不同含义

没有令牌时,机器只看到 #EF4444;有令牌时,机器知道这是 status.critical 还是 action.destructive

status.critical

系统级故障,对话上下文可能丢失

🚨 消息流中断

对话上下文可能已丢失,建议刷新页面重新开始。

刷新页面 导出历史
覆盖层:transactional
行为:必须二次确认 + 恢复路径
跨层:observational 域非法
action.destructive

不可逆操作,数据将永久删除

⚠️ 删除账户

此操作不可恢复。请输入账户名确认。

取消 确认删除
覆盖层:transactional
行为:必须二次确认 + 输入验证
样式:红色空心描边(非实心)

跨层禁止:status.critical 在 observational 域下是非法绑定

AI 生成限流提示时若选用 status.critical(红色脉冲),编译前置校验直接阻断。

[CI 阻断] error-severity-cross-layer
Token: status.critical
Used in: observational domain (limit_rate_alert)
Expected: status.warning (yellow + clock)
Action: BLOCK — PR cannot be merged

phase._ —— AI 处于什么阶段?用户在等什么?

phase.research
检索:搜索信息、查找来源
视觉:蓝色 + 放大镜图标
行为:显示来源计数
文案:"正在搜索…"
phase.analysis
综合:对比多源、识别分歧
视觉:黄色 + 大脑图标
行为:显示共识度
文案:"正在对比来源…"
phase.check
验证:核对链接、验证事实
视觉:绿色 + 盾牌图标
行为:显示验证状态
文案:"正在验证事实…"
phase.output
生成:生成答案、输出结果
视觉:紫色 + 文档图标
行为:显示引用索引
文案:"正在生成回答…"

码本解码演示

离散索引 phase.output → 展开为连续约束

离散索引
phase.output
视觉方向
紫色静态 + 文档图标 + 引用索引
行为约束
必须显示引用来源 + 必须提供溯源链接
文案约束
必须标注引用编号,禁止隐藏来源
机器防线 · 跨层禁止
phase.output 不可跳过 phase.check 直接输出

同一令牌编译为三种消费格式

Prompt 前缀
在生成最终回答时:
- 必须使用紫色文档视觉
- 必须包含引用编号 [1][2]
- 必须提供溯源链接
- 文案必须标注来源
- 禁止跳过验证阶段
JSON Schema
{
  "phase_token": "phase.output",
  "visual": "purple.doc.citation",
  "required": ["source_index", "trace_link"],
  "prerequisite": "phase.check",
  "forbidden_skip": true
}
CI 规则
rules:
  phase-sequence-check:
    token: "phase.output"
    requires: ["phase.research", "phase.check"]
    forbidden_skip: true
    violation: "block"

对比演示:"同一个进度条"在不同 phase 下的不同语义

没有令牌时,机器只看到"加载中";有令牌时,机器知道用户在等检索、验证还是生成

phase.research

正在检索外部信息,用户可中断

🔍 正在搜索…

已检索 3 个来源,预计 5 秒完成。

中断搜索
覆盖层:conversational
行为:允许中断 + 显示来源计数
跨层:不可跳过至 output
phase.output

正在生成最终答案,不可中断

📝 正在生成…

验证通过,正在整合 4 个来源生成回答。

查看来源
覆盖层:conversational
行为:禁止中断 + 必须显示引用
前置:必须经过 phase.check

跨层禁止:phase.output 在未完成 phase.check 时非法

AI 直接生成回答而未经过验证阶段,编译管线识别阶段缺失并阻断。

[CI 阻断] phase-sequence-violation
Token: phase.output
Missing prerequisite: phase.check
Expected: [research → analysis → check → output]
Action: BLOCK — PR cannot be merged

boundary._ —— 系统拒绝用户时,权利边界在哪里?

boundary.soft
软性拒绝:拒绝请求但保留会话
视觉:黄色提示条 + 保留输入框
行为:用户可继续对话
文案:"我无法回答这个问题"
boundary.hard
强制终止:终止会话清空上下文
视觉:红色退出面板 + 数据政策
行为:清空上下文并退出
文案:"会话已终止"
boundary.review
升级审核:提交人工审核
视觉:蓝色提示 + 预计审核时间
行为:锁定输入并提交审核
文案:"已提交人工审核"

码本解码演示

离散索引 boundary.hard → 展开为连续约束

离散索引
boundary.hard
视觉方向
红色退出面板 + 数据政策说明
行为约束
必须清空上下文 + 必须显示退出原因
文案约束
必须引用数据政策条款,禁止模糊终止
机器防线 · 跨层禁止
boundary.hard 不可在 conversational 域下保留输入框

同一令牌编译为三种消费格式

Prompt 前缀
在触发强制终止时:
- 必须使用红色退出面板
- 必须显示数据政策条款
- 必须清空会话上下文
- 文案必须引用具体政策
- 禁止保留输入框或继续对话
JSON Schema
{
  "boundary_token": "boundary.hard",
  "visual": "red.exit.panel",
  "required": ["policy_quote", "context_wipe"],
  "forbidden_retain": ["input_box", "history"],
  "retention_days": 0
}
CI 规则
rules:
  hard-boundary-check:
    token: "boundary.hard"
    requires: ["policy_quote", "context_wipe"]
    forbidden_retain: ["input_box"]
    violation: "block"

对比演示:"同一个拒绝"在不同 boundary 下的不同权利边界

没有令牌时,机器只看到"拒绝";有令牌时,机器知道用户是否还能继续对话

boundary.soft

拒绝回答但保留会话,用户可继续提问

🚫 无法回答

我无法提供该信息。您可以尝试换个方式提问。

继续对话
覆盖层:conversational
行为:保留输入框 + 保留上下文
跨层:不可清空上下文
boundary.hard

强制终止会话,清空所有上下文

⛔ 会话已终止

根据数据安全政策 §3.2,会话已强制终止,上下文已清空。

查看政策
覆盖层:transactional
行为:清空上下文 + 锁定输入
前置:必须引用政策条款

跨层禁止:boundary.hard 在 conversational 域下保留输入框是非法的

AI 触发硬边界后仍显示输入框,编译管线识别为跨层违规并阻断。

[CI 阻断] boundary-hard-retention-violation
Token: boundary.hard
Retained: input_box (conversational domain)
Expected: context_wipe + input_lock
Action: BLOCK — PR cannot be merged

action._ —— 用户点击后,后果是什么?

action.destructive
破坏性:删除、清空、不可逆
视觉:红色空心 + 危险图标
行为:必须二次确认 + 输入验证
文案:必须说明不可恢复
action.constructive
建设性:保存、提交、创建
视觉:蓝色实心 + 对勾图标
行为:成功反馈 + 状态变更
文案:"操作成功"
action.neutral
中性:取消、关闭、返回
视觉:灰色描边 + 返回图标
行为:无数据变更
文案:无后果提示

码本解码演示

离散索引 action.destructive → 展开为连续约束

离散索引
action.destructive
视觉方向
红色空心描边 + 危险图标
行为约束
必须二次确认 + 必须输入验证
文案约束
必须说明不可恢复,禁止模糊措辞
机器防线 · 跨层禁止
action.destructive 禁止在 observational / navigational 域使用

同一令牌编译为三种消费格式

Prompt 前缀
在生成破坏性操作按钮时:
- 必须使用红色空心描边
- 必须包含危险图标
- 必须触发二次确认弹窗
- 文案必须说明不可恢复
- 禁止在 observational 域使用
JSON Schema
{
  "action_token": "action.destructive",
  "visual": "outline.red.danger",
  "required": ["confirm_modal", "input_verify"],
  "forbidden_domains": ["observational", "navigational"],
  "style": "outline_not_solid"
}
CI 规则
rules:
  destructive-action-check:
    token: "action.destructive"
    forbidden_in: ["observational"]
    required: ["confirm_modal"]
    style_check: "outline_not_solid"
    violation: "block"

对比演示:"同一个按钮样式"在不同 action 下的不同后果

没有令牌时,机器只看到"红色按钮";有令牌时,机器知道这是 destructive 还是 constructive

action.destructive

删除账户,数据永久不可恢复

⚠️ 删除账户

此操作不可恢复。请输入"DELETE"确认。

取消 确认删除
覆盖层:transactional
行为:二次确认 + 输入验证
样式:红色空心描边(非实心)
action.constructive

保存设置,数据写入并反馈成功

💾 保存设置

您的设置将被保存到云端。

取消 保存
覆盖层:transactional
行为:直接执行 + 成功反馈
样式:蓝色实心填充

跨层禁止:action.destructive 在 observational 域下是非法绑定

AI 在观察型界面生成删除按钮,编译管线识别为跨层违规并阻断。

[CI 阻断] action-destructive-cross-layer
Token: action.destructive
Used in: observational domain (alert_card)
Expected: action.neutral (gray + no-op)
Action: BLOCK — PR cannot be merged

令牌定义了原子,字典定义了边界

下一步:查看语义字典 → 了解这些令牌在什么场景下合法/非法

进入语义字典 →