--- name: citation-system description: | 当系统提示需要设计引用格式、信息溯源机制、来源标注系统时调用。适用于文档问答、搜索增强生成(RAG)、代码引用、浏览器辅助等需要让用户追溯信息来源的场景。不适用于纯创作类输出(如故事、诗歌),不适用于无需溯源的常识问答,也不适用于注入防御(虽然两者都涉及内容可信度)。 tags: [引用, 归属, 溯源, RAG, 文档问答] related_skills: [injection-defense, mobile-adaptation] --- # 引用与归属系统设计 ## R — 原文 (Reading) > 各厂商采用多样化的内联引用格式:Claude Web 使用 Markdown 锚点链接(`[text]()`),GPT-4o 文件搜索采用 `【msg_idx:search_idx†source】`,NotebookLM 实现逐句引用加段落索引 `[i]`,Warp 使用 XML 结构 ``,Meta AI 实现实体标签 `【entity_hint-...】`。核心模式:内联标记、引用保留规则、来源可审计响应。 ## I — 方法论骨架 (Interpretation) 1. **内联标记格式**:在生成文本中直接嵌入来源标记,用户无需滚动至文末即可定位引用源。 2. **格式一致性**:整个系统提示中严格使用一种引用格式,不混用多种标记语法。 3. **引用保留规则**:在改写、总结、翻译等二次处理中,原始引用标记必须完整保留,不得丢失或篡改。 4. **来源可审计性**:每个事实性声明都必须有可追溯的引用,外部信息(非系统知识库)必须显式标注。 5. **实体引用系统**:除文档引用外,可扩展支持人物、地点、组织等实体的标记与链接。 6. **日期消歧**:对相对时间表达("昨天"、"上周")进行绝对日期解析,消除歧义。 ## A1 — 案例分析 (Past Application) ### 案例: GPT-4o 文件搜索的强制引用机制 - **问题**: 用户上传多份文档后提问,模型可能编造不存在于文档中的内容,或混淆内容来源。 - **设计模式的使用**: GPT-4o 要求所有基于文档的回答必须包含 `【msg_idx:search_idx†source】` 格式引用。引用不是可选装饰,而是强制性输出组成部分。未找到引用时不得声称信息来源于文档。 - **结论**: 将引用从"建议行为"升级为"强制约束",显著降低了文档问答中的幻觉率。 ### 案例: Warp 的 XML 结构化引用 - **问题**: 终端命令辅助场景中,用户需要精确知道命令参数的文档来源,但传统脚注格式在终端中可读性差。 - **设计模式的使用**: Warp 采用 XML 结构 `` 元素,将引用与工具名隔离——引用指向文档本身而非工具调用过程,避免暴露内部实现。 - **结论**: 引用系统的设计应适配输出媒介特性,且引用目标应指向信息源而非系统内部过程。 ## A2 — 触发场景 (Future Trigger) ★ ### 用户在什么情境下需要? 1. 构建文档问答系统,需要让用户验证每个答案的来源 2. 设计搜索增强生成(RAG)系统提示,需要强制引用检索结果 3. 开发代码辅助工具,需要将建议关联到代码库中的具体位置 4. 实现多源信息整合系统,需要区分不同来源的贡献 ### 语言信号 - "需要标注信息来源" - "用户应该能追溯每个结论的出处" - "如何防止模型编造引用" - "引用格式应该怎么设计" - "需要保留原始引用标记" ### 与相邻 skill 的区分 - 与 **injection-defense** 区别:注入防御关注内容是否可信/可执行,引用系统关注内容来自哪里、如何标注 - 与 **mobile-adaptation** 区别:移动适配关注引用在狭小屏幕上的展示优化,引用系统关注引用的格式与保留规则 ## E — 可执行步骤 (Execution) 1. **步骤 1:定义引用标记语法** - 完成标准:选择一种内联标记格式(方括号标注如 `【source†Lline】`、Markdown 锚点、或 XML 元素),明确定义每个字段含义(消息索引、搜索索引、行号范围),并编写格式示例。 2. **步骤 2:编写强制引用规则** - 完成标准:在系统提示中声明"所有基于外部来源的事实性声明必须附带引用",定义无引用时的回退行为(明确声明无法确认来源),禁止编造不存在的引用。 3. **步骤 3:设计引用保留策略** - 完成标准:规定在改写、总结、翻译等二次处理场景中,原始引用标记的保留方式——直接保留原文标记、或重新映射到新上下文位置,确保引用链不中断。 4. **步骤 4:实现外部信息标记** - 完成标准:定义"外部信息"(非系统知识库中的信息)的显式标记方式,如 NotebookLM 要求外部信息必须标注"此信息不在提供的来源中"。 5. **步骤 5:添加引用完整性校验** - 完成标准:在系统提示中设置自检规则——输出前验证所有引用标记格式正确、所有事实性声明均有引用、引用中的索引和行号在有效范围内。 ## B — 边界 (Boundary) ★ ### 不要在以下情况使用 - 纯创作类输出(故事、诗歌、创意写作),不需要事实溯源 - 常识性问答,信息属于公共知识无需标注来源 - 实时对话场景中引用会严重打断交流节奏的轻量交互 - 系统内部日志或调试信息,面向开发者而非终端用户 ### 常见失败模式 - **编造引用**:模型生成格式正确但指向不存在位置的引用标记,需要格式校验与来源存在性双重约束 - **引用堆积**:为每个句子都添加引用导致输出碎片化、可读性下降,应仅对事实性声明引用 - **引用丢失**:在多轮对话的总结、改写中原始引用被清除,需要明确的保留规则 - **格式混用**:同一系统中出现多种引用格式(如脚注与内联标记并存),增加解析复杂度