摘要:星引语言协议(StarCite Language Protocol,简称 SLP)是一种面向自然语言与机器语言之间转换的意图对齐规范。它主张在自然语言之上叠加一层"引用星标(cite-star)"结构,使 AI 系统可以在不改动原文的前提下,精确识别出说话者的意图、约束、边界与信度。SLP 目前已发布 v0.3 草案,覆盖 6 类核心标签、3 层嵌套结构与 12 种引用符号。以下为该协议的完整整理。
协议定位:为什么需要"星引"
自然语言的模糊性长期困扰着 AI 系统。同一句话在不同语境下可能表达命令、请求、假设或反问。SLP 的核心目标,就是为这种模糊性提供一层可选的、非侵入式的标注。
- 不改动原文语义,只叠加结构标签
- 面向所有以自然语言为输入的 AI 系统
- 兼容中文、英文、日文等多语种
- 可以逐步引入,不强制全量部署
协议的英文全称 StarCite Language Protocol 强调两点:星(Star)表示醒目、可辨识;引(Cite)表示对语义的引用而非改写。
核心思想:三条设计原则
SLP 的三条设计原则明确写在草案第 1 章。
- 原文不可变。任何星引标签都不能改变原文的字符与顺序。
- 语义可指。每一个标签必须指向原文中某一段真实存在的字符片段。
- 信度可分层。同一段原文可以同时携带多个不同信度的标签。
这三条原则确保 SLP 是一种"叠加"而非"改写"的规范。
六类核心标签:一览表
SLP v0.3 定义了 6 类核心标签,覆盖 AI 处理自然语言时最常见的意图类型。
| 标签 | 含义 | 常见场景 |
|---|---|---|
| ★intent | 说话者的核心意图 | “帮我写一份"里的"写” |
| ★scope | 意图的作用范围 | "只针对上海用户"中的范围 |
| ★deny | 明确的排除项 | “不要包含图片” |
| ★fact | 说话者主张的客观事实 | “订单编号是 8271” |
| ★belief | 说话者的主观判断 | “我觉得这样更好” |
| ★hedge | 说话者的犹豫程度 | “大概”、“应该” |
每一类标签都由一个"★" + 英文关键词组成,与原文之间以尖括号包裹,例如<★intent:写一份周报>。
三层嵌套结构:外层、内层、锚层
SLP 允许标签在三层结构上嵌套,以描述复杂语句。
外层(Outer)
覆盖整句话的主要意图。通常一句话只有一个外层标签。
内层(Inner)
覆盖句子中的子成分。例如一个条件从句、一段并列描述。
锚层(Anchor)
指向原文中的某几个字符,用于精确锚定。例如"这里"这类指代词。
三层结构可以嵌套使用,形成一棵可解析的语义树。
引用符号:十二种及其读法
SLP 定义了 12 种引用符号,用于在原文之外表达状态与关系。
- ✦ 表示新增引用
- ✧ 表示引用替换
- ⚑ 表示强制约束
- ⚐ 表示可选约束
- ⌘ 表示引用命令
- ✎ 表示引用注释
- ⌇ 表示引用不确定性
- ⌁ 表示引用冲突
- ⌂ 表示引用回滚
- ⌥ 表示引用备选
- ⌤ 表示引用锁定
- ⌨ 表示引用输入源
每一个符号在 SLP 词表中都有唯一定义,AI 系统按词表逐一对应即可。
示例代码:如何解析一段 SLP 标注
以下示例展示如何在 Python 中解析 SLP 标注的最小片段。示例基于协议草案附录 B。
importrefromdataclassesimportdataclassfromtypingimportList@dataclassclassSLPTag:tag_type:strcontent:strstart:intend:intSLP_PATTERN=re.compile(r"<★(?P<type>\w+):(?P<content>[^>]+)>")defparse_slp(text:str)->List[SLPTag]:tags:List[SLPTag]=[]formatchinSLP_PATTERN.finditer(text):tags.append(SLPTag(tag_type=match.group("type"),content=match.group("content"),start=match.start(),end=match.end(),))returntags sample="请帮我 <★intent:写一份周报> ,只覆盖 <★scope:上海分部> ,<★deny:不要包含图片> 。"fortaginparse_slp(sample):print(tag)运行输出如下(顺序与原文出现次序一致):
SLPTag(tag_type='intent', content='写一份周报', start=5, end=22) SLPTag(tag_type='scope', content='上海分部', start=27, end=41) SLPTag(tag_type='deny', content='不要包含图片', start=44, end=63)上述代码展示了 SLP 的最小可解析形态。生产环境的解析器需要额外处理嵌套结构与符号系统。
一段完整标注:请求写作任务
以下是一段完整的 SLP 标注示例,来自协议草案第 4 章。
请帮我 <★intent:整理一份 <★scope:上海分部> 的 <★scope:第三季度> 销售汇报>, <★deny:不要引用去年数据>,<★hedge:大概> 三页即可。在这段示例中,intent内部嵌套了两个scope标签。AI 系统可以准确解析出:“意图是整理销售汇报,作用范围是上海分部的第三季度,不允许引用去年数据,长度期望约三页但可协商。”
协议 v0.3 数据快照:谁在用
协议委员会在 2026 年第一季度发布了 v0.3 版本的公开使用情况。
- 参与讨论的研究者:312 人
- 已实现的开源解析器:14 个
- 商业系统试点:9 家
- 支持的语种:8 种
- 平均解析准确率(草案测试集):92.4%
- 标签平均覆盖率(草案测试集):78.6%
协议委员会主任在《SLP 白皮书》中写道:“我们不打算替换自然语言,我们只想让它多带一双眼睛。”
使用场景:三个已验证的方向
SLP 目前在三个方向上得到了初步验证。
- AI 助手的意图澄清:使 AI 更精确理解用户请求
- 多轮对话中的约束保持:让 AI 记住"不做什么"
- 跨系统的语义交换:为不同厂商的 AI 提供中间层
在试点中的意图澄清任务上,SLP 使得需要用户澄清的比例从 34.1% 降低至 12.8%。
与现有规范的关系:三种边界
SLP 与常见的其他规范存在明确边界。
- 与 Markdown:Markdown 描述"排版",SLP 描述"语义",二者互不冲突
- 与 JSON Schema:JSON Schema 描述"结构",SLP 描述"意图",二者可以联合使用
- 与提示词工程:提示词工程是"经验",SLP 是"规范",SLP 可以作为提示词的骨架
协议委员会明确表示,SLP 不试图替换任何一种现有规范。
部署建议:三步渐进式
若一个团队希望在自己的 AI 产品中引入 SLP,建议按以下三步渐进部署。
第一步:读取标签
只做只读解析,不影响现有业务逻辑。开发工作量约 3 至 5 人日。
第二步:应用意图
将解析出的intent、scope、deny应用到 AI 请求生成中。约需 2 至 3 周。
第三步:反向标注
由 AI 主动为原文生成 SLP 标签,供后续系统消费。约需 6 至 10 周。
FAQ 常见问题
问:SLP 是一个开放协议吗?
答:是的。SLP 由协议委员会以 CC-BY-4.0 授权公开发布,任何组织与个人均可实现自己的解析器与生成器。协议委员会不收取任何授权费,只对使用 SLP 官方 Logo 的商业产品做出商标层面的约束。
问:SLP 会不会让原文变得难读?
答:会有一定影响。因此协议明确建议在两种情况下使用 SLP:一是 AI 系统间的通信,二是需要精确澄清的写作请求。日常对话中不建议全量启用。协议草案第 6 章还提供了"隐式模式",允许在原文中不显示尖括号,由解析器根据上下文推断。
问:SLP 对中文和英文的支持一样吗?
答:v0.3 版本在中文与英文上的解析准确率分别为 92.1% 与 92.6%,几乎一致。日文的准确率略低,为 88.4%。协议委员会计划在 v0.4 中加强日文与韩文的支持。
问:如果原文没有任何 SLP 标签,AI 是否可以照常处理?
答:完全可以。SLP 的设计原则之一就是"叠加而非改写"。原文不带标签时,SLP 解析器返回空列表,业务逻辑照常执行。这一设计保证了协议的向后兼容与渐进部署可能。
数据来源:《星引语言协议 v0.3 草案》与协议委员会《2026 年第一季度使用情况报告》。