引用(Citations)
回答要可信,就得能指出来源。配置了文档或 Ontology 上下文的机器人会输出引用,点击可跳回原始材料。
https://www.palantir.com/docs/foundry/chatbot-studio/citations/
原始标题:AIP Chatbot Studio • Retrieval context • Citations • Palantir · 所属:AIP Chatbot Studio(做对话机器人)
先记住这几条
写在前面
配置了 document context 或 Ontology context 的 AIP Chatbots 会输出 citations(引用),选中后会链接到源材料。这些 citations 还会出现在每条消息底部的 Sources 下拉菜单中,让用户清楚了解每次回复中所使用和引用的具体上下文。

对于其他类型的上下文,例如 function-backed context 或 tools,默认不提供 citations。不过,用户可以提示聊天机器人将其包含在内。如果 LLM 以正确的 citation 格式回复,对话用户界面就会渲染出该 citation。请参阅下文 citation 格式以了解完整格式列表,并参阅自定义 citation 提示词了解如何在你的聊天机器人中使用这些格式的示例。
引用格式
AIP Chatbot 界面目前支持以下 citation 格式:
- Ontology object citations(Ontology 对象引用) 可以以下面两种格式之一返回。选中 citation 气泡将链接到该对象的 Object Explorer 视图。
``xml <citation><key>ri.phonograph2-objects.main.object....</key></citation> ``
其中 <key></key> 标签封装了对象的 RID。
``xml <citation><objectTypeId>...</objectTypeId><primaryKey>...</primaryKey></citation> ``
其中 <objectTypeId></objectTypeId> 标签封装了对象类型 ID(可在 Ontology Manager 中找到),而 <primaryKey></primaryKey> 标签封装了该对象主键的值。
- Document (PDF) citations(文档(PDF)引用) 应以下列格式返回:
``xml <citation><mediaSetKey>ri.mio.main.media-set...</mediaSetKey><mediaItemKey>ri.mio.main.media-item...</mediaItemKey></citation> ``
选中 citation 气泡将打开一个对话框,显示文档的第一页。如果你想在 citation 中指定文档的某一页,可以像下面这样提供一个 page 标签:
``xml <citation><mediaSetKey>ri.mio.main.media-set...</mediaSetKey><mediaItemKey>ri.mio.main.media-item...</mediaItemKey><page>12</page></citation> ``
随后文档对话框将显示文档的该页。
- External URL citations(外部 URL 引用) 应以下列格式返回:
``xml <citation><name>My Website</name><href>www.mywebsite.com</href></citation> ``
citation 气泡将显示所提供的名称,例如 My website,选中它将链接到所提供的 URL,例如 www.mywebsite.com。
你可以通过导航到 Ontology context 配置面板下的 Citations 标签页,设置一个带 Ontology context 的聊天机器人,以上述三种格式中的任意一种引用对象。
引用设置
citation 设置允许你全局启用或禁用 citations,并覆盖默认的点击行为。

对于 ontology 和 document citations,默认的点击行为是打开相应的文档或 ontology 对象。你可以针对每个对象类型,在细粒度层面覆盖默认的 ontology context 行为。可以通过以下方式实现:
- 打开外部 URL
- 打开 PDF 文档
- 更新变量
Citation variable updates
配置了 Ontology object citations 的聊天机器人也可以配置为在选中对象 citation 时更新应用变量。这使 AIP Chatbots 的使用者可以在对话面板之外显示有关被引用对象的附加信息。
一个常见的例子是 Workshop 中的 AIP Chatbot Widget,你可以在其中使用 application state 来配置选中时弹出的悬浮层。你可以在下文与 Workshop 悬浮层集成一节中找到如何设置它的完整演练。
对于使用 function-backed context 的聊天机器人,你可以提示聊天机器人使用某个自定义提示词来返回对象 citations。
如果你的函数处理多个对象类型,它返回的 citations 可能有些对应对象类型 A,有些对应对象类型 B,依此类推。要处理这类情况,你可以在 citation 设置中为你的函数创建多个 citation variables。当某个 citation 被选中时,与对象类型匹配的那个 citation variable 将被设置为一个包含所引用对象的对象集,而所有其他 citation variables 将被设置为空对象集。这种做法确保在任何时候都只有最相关的 citation variable 被填充。

Integrate with Workshop overlays
在 AIP Chatbot Studio 中配置好变量更新后,你可以将它们连接到 Workshop 中的 AIP Chatbot widget。有关 AIP Chatbot widget 的更多信息,请参阅 application state 相关章节。
- 在 Workshop 中,为你在聊天机器人中配置的每个 citation variable 创建一个空对象集变量。每当 AIP Chatbot widget 中的某个 citation 被选中时,这些变量就会被填充。
- 在 Workshop 模块中创建一个悬浮层。
- 将该悬浮层设置为 Variable-based visibility,并创建一个布尔变量,用于检查你在第一步中配置的 Workshop 变量是否为空。如果你有多个 citation variables,你可以创建多个悬浮层,或创建单个悬浮层,其可见性由多个布尔变量的并集决定。

在选中 citation 时出现的弹出悬浮层通常能为 AIP Chatbot widget 的用户提供最佳体验。不过,你也可以通过浏览 Workshop 文档来探索其他选项。

自定义引用提示词
为确保 citations 能在 AIP Chatbot 用户界面中渲染,citations 必须包含在底层 LLM 的回复中。为此,需要使用上述格式之一来提示 LLM。对于带 document context 和 Ontology context 的聊天机器人,此提示词会自动提供。但对于其他聊天机器人,则需要针对具体用例量身定制的自定义提示词。
你可以通过几种不同方式为聊天机器人提供自定义提示词。第一种是使用聊天机器人的 LLM Settings 提供指令。你可以在下面这个聊天机器人示例中看到这种做法,它提示 LLM 在每次使用对象查询工具查询 drivers 时都回复 citations。

下面是上图中用于从带 object query 工具的聊天机器人输出对象 citations 的提示词:
Whenever the user asks a question about support tickets, use the object query tool to answer it. After using the object query tool, respond to the user query with inline citations that link to the objects returned by the object query tool.
WHENEVER you mention a support ticket, output a citation in the format below:
"<citation><objectTypeId>titan-technologies-support-ticket</objectTypeId><primaryKey>...</primaryKey></citation>"
For example, if I wanted to cite the ticket titled Office Dress Code, I would get the primary key of the ticket, which is TICKET-015 (since the Ticket Id is TICKET-015), and then output the citation like so:
"The ticket about the office dress code says ... <citation><objectTypeId>titan-technologies-support-ticket</objectTypeId><primaryKey>TICKET-015</primaryKey></citation>.""另一种方式是使用 function-backed context,因为 context retrieval 函数的输出会被直接粘贴到 LLM 系统提示词中。在下面的示例中,context retrieval 函数生成了一段提示词,为 LLM 提供应包含在其回复中的相关对象,以及它应当用于提供 citations 的格式。

下面是上图中用于从带 function-backed context 的聊天机器人输出对象 citations 的提示词:
Incorporate a citation from the context source in your answer whenever the context content is used.
For example, if the message asks "What is X?"
A valid response would be "X is Y, according to <citation><name>Source 1</name><key>ri.phonograph2-objects.main.object.abc-123</key></citation>, ..."
Another example: if the message asks "Why is X?"
A valid response would be: "X is Y because ... For more details or further clarification, please refer to the following sources: <citation><name>Source 2</name><key>ri.phonograph2-objects.main.object.def-456</key></citation> <citation><name>Source 3</name><key>ri.phonograph2-objects.main.object.abc-123</key></citation>"
Remember, always include a citation in your answer by using the provided context sources.
Example context sources:
<citation><name>Source 1</name><key>ri.phonograph2-objects.main.object.0c94f9b2-e0c5-4e90-a054-96e570cd11dd</key></citation>
Consistency is key when teaching commands to your dog.
<citation><name>Source 1</name><key>ri.phonograph2-objects.main.object.0c94f9b2-e0c5-4e90-a054-96e570cd11dd</key></citation>
<citation><name>Source 2</name><key>ri.phonograph2-objects.main.object.8c6adc92-cfc6-4b76-b729-2744e369dac3</key></citation>
Socialization is important for a dog's development and behavior.
<citation><name>Source 2</name><key>ri.phonograph2-objects.main.object.8c6adc92-cfc6-4b76-b729-2744e369dac3</key></citation>
Example response with citation:
"Maintaining consistency is essential when training your dog to follow commands <citation><name>Source 1</name><key>ri.phonograph2-objects.main.object.0c94f9b2-e0c5-4e90-a054-96e570cd11dd</key></citation>. Socializing your dog is crucial for its behavioral development <citation><name>Source 2</name><key>ri.phonograph2-objects.main.object.8c6adc92-cfc6-4b76-b729-2744e369dac3</key></citation>."
[Context Sources Sorted by Relevancy]
<citation><key>ri.phonograph2-objects.main.object.60599f54-c745-412b-98a0-2c7f5f0fa9bf</key></citation>
.... The Titan Technologies dress code is business casual ....
<citation><key>ri.phonograph2-objects.main.object.60599f54-c745-412b-98a0-2c7f5f0fa9bf</key></citation>
<citation><key>ri.phonograph2-objects.main.object.35910c26-8a87-4eb5-8243-52afb88bba11</key></citation>
.... Titan Technologies Employee Handbook ....
<citation><key>ri.phonograph2-objects.main.object.35910c26-8a87-4eb5-8243-52afb88bba11</key></citation>
<citation><key>ri.phonograph2-objects.main.object.3f21b8a6-536b-4374-aaf5-cae641ca836c</key></citation>
.... At Titan Technologies, flexible work hours may be possible .....
<citation><key>ri.phonograph2-objects.main.object.3f21b8a6-536b-4374-aaf5-cae641ca836c</key></citation>
<citation><key>ri.phonograph2-objects.main.object.10b2d64a-4043-438d-894a-80c001ff26e2</key></citation>
.... The dress code for the office is business casual ....
<citation><key>ri.phonograph2-objects.main.object.10b2d64a-4043-438d-894a-80c001ff26e2</key></citation>
[/Context Sources Sorted by Relevancy]
REMINDER:
ALWAYS include citations in the correct format <citation><name>sourceName</name><key>sourceKey</key></citation> in all responses. ALWAYS include the source name and the source key in all citations.
Valid examples are <citation><name>Source 1</name><key>ri.phonograph2-objects.main.object.0c94f9b2-e0c5-4e90-a054-96e570cd11dd</key></citation>, <citation><name>Source 2</name><key>ri.phonograph2-objects.main.object.8c6adc92-cfc6-4b76-b729-2744e369dac3</key></citation>.延伸阅读 · 相关页面
按主题横向跳转,不必顺着目录一篇篇读。
本组其他页面 · AIP Chatbot Studio(做对话机器人)
同一主题下的相邻内容。
- AIP Chatbot Studio 总览想做一个懂你业务、能引用出处、能调工具的对话机器人?AIP Chatbot Studio(原名 AIP Agent St
- Chatbot Studio 核心概念这页把搭建聊天机器人要用到的关键概念一次讲全:应用状态、检索上下文、工具、引用等。
- Chatbot Studio 快速入门这一篇带你从零搭一个基础聊天机器人:认识界面、配置信息与工具,然后部署到生产并监控。
- 应用状态(Application state)聊天机器人要记住会话里的信息,才能做多轮推理。应用状态就是它的"工作记忆"。
- 检索上下文类型(Context types)机器人回答得好不好,八成取决于喂给它的上下文。检索上下文针对每一条新消息确定性地运行,把相关内容塞进模型。
- 工具(Tools)工具是外部功能或 API,让 LLM 能执行操作或获取自身不具备的信息。有了工具,机器人从"能说"变成"能做"。
- 把命令用作工具平台里的命令(command)可以直接挂成机器人的工具 —— 用户一句自然语言,就能触发应用里的具体操作。
- 把聊天机器人发布为函数发布为函数(Function)后,你的聊天机器人就能在平台里任何可执行函数的地方被调用 —— 复用性大幅提升。
- 会话日志每次聊天机器人的执行都会被结构化成事件记录下来,可导出到流式数据集,用于监控与分析。
- 用 Marketplace 分发聊天机器人把聊天机器人打包成产品,分发给别的团队/环境安装使用 —— 这是从"自己用"到"组织内复用"的一步。
- 通过 Foundry API 使用聊天机器人要在 Foundry 平台之上自建应用?这一篇讲用 Palantir API 调起会话、发消息、拿回复。
常见问题速答 · FAQ
关于「引用(Citations)」,读者最常问的几个问题。