应用状态(Application state)
聊天机器人要记住会话里的信息,才能做多轮推理。应用状态就是它的"工作记忆"。
https://www.palantir.com/docs/foundry/chatbot-studio/application-state/
原始标题:AIP Chatbot Studio • Application state • Palantir · 所属:AIP Chatbot Studio(做对话机器人)
先记住这几条
写在前面
AIP Chatbot 的 application state 此前称为参数。
你可以在 AIP Chatbot 上配置多个字符串或对象集应用变量,以配置 application state。当带有应用变量的 AIP Chatbot 被嵌入到 Workshop 中的 AIP Chatbot widget 时,变量列表将会显示出来。随后,你可以将每个应用变量映射到对应类型的 Workshop variable,以便在其他 widget 中展示输出。
在 Chatbot Studio 中配置应用状态
在设置 AIP Chatbot 的 application state 时,请配置以下内容:
- 标识应用变量: 确定 LLM 应与哪些对象集或字符串变量交互。这些变量可以是 LLM 写入结果的新变量,也可能已存在于你的工作流中,例如表示用户当前选择内容的变量。
- 为变量命名并描述: 为每个变量编写一段说明其作用的描述。该描述将被注入聊天机器人的提示词中,为 LLM 提供关于何时使用给定变量的上下文。
- 设置值可见性: 你可以通过设置值可见性来选择聊天机器人是否可以看到变量的值。我们建议仅在必要时才允许 LLM 读取值,以减少混淆。例如,如果你使用一个对象集变量作为 Ontology context 的输入,则该变量无需对 LLM 可见;对象集值的相关内容会在每一轮循环中出现在系统提示词里。但是,如果你有一个字符串变量包含系统提示词中的动态部分,则该变量必须设置为可见,以便 LLM 能够读取该变量的内容。
- 将变量添加为输入: 你可以选择将变量配置为 Ontology retrieval context 的输入,从而为语义搜索提供确定性输入,或将完整对象集提供给 LLM。此外,function-backed context 可以接收多个输入变量,以便在运行函数时包含有状态的信息。 Object query 工具还可以按对象类型接收一个初始对象集变量,为 LLM 应用额外的筛选或聚合提供起点。

application state 也可以在用户自定义的 System prompt 中通过键盘上的斜杠命令 / 来引用。

application state 可以使用 Debug application state 部分进行测试。你可以手动覆盖每个变量的值,并且当聊天机器人更新变量值时,调试部分会提供可视化反馈。

用聊天机器人更新应用变量
你配置的应用变量可以通过聊天机器人 tools 或添加到 application state 配置中的 retrieval context 进行修改。变量既可以根据工具或上下文的输出进行确定性更新,也可以通过 Update application variable 工具进行非确定性更新。
Automatic variable updates
变量可以配置为使用 Object query 工具、function-backed context 或 Ontology context 输出的值进行确定性更新。在每次执行上下文或工具后,Chatbot Studio 会记录最新的输出,并在 LLM 完成流式输出时,将映射的应用变量更新为该输出值。我们建议采用确定性更新而非非确定性更新,以避免 LLM 混淆。在某些情况下,你可能希望完全对 LLM 隐藏变量的值。

Deterministic tool inputs
Action 和 Function 工具可以配置为使用来自应用变量的输入,而不是通过 LLM 动态生成输入。此功能允许你将预先确定的值直接传递给工具,从而提高一致性并减少 token 用量。
此功能仅支持字符串和对象集输入类型。所传递的值会被固定为推理循环开始时变量的初始值,这意味着同一次查询中先前工具调用产生的更新不会反映在作为确定性输入传递的值中。

Update variables with an LLM
如果你希望由 LLM 配置一个新变量来更新,或根据当前用户查询有条件地应用更新,请添加 Update application variable 工具。该工具支持一个可供 LLM 更新的变量列表。

Variables as citations
你还可以配置一个对象集变量,使其在用户选择 citation 时更新。所配置的对象集变量将更新为一个包含被引用对象的静态对象集。

在 Workshop 中配置
如果 AIP Chatbot 已配置了 application state,你可以在 Workshop 中配置该聊天机器人的应用变量。更多信息,请参阅 AIP Chatbot widget 文档。

延伸阅读 · 相关页面
按主题横向跳转,不必顺着目录一篇篇读。
本组其他页面 · AIP Chatbot Studio(做对话机器人)
同一主题下的相邻内容。
- AIP Chatbot Studio 总览想做一个懂你业务、能引用出处、能调工具的对话机器人?AIP Chatbot Studio(原名 AIP Agent St
- Chatbot Studio 核心概念这页把搭建聊天机器人要用到的关键概念一次讲全:应用状态、检索上下文、工具、引用等。
- Chatbot Studio 快速入门这一篇带你从零搭一个基础聊天机器人:认识界面、配置信息与工具,然后部署到生产并监控。
- 检索上下文类型(Context types)机器人回答得好不好,八成取决于喂给它的上下文。检索上下文针对每一条新消息确定性地运行,把相关内容塞进模型。
- 引用(Citations)回答要可信,就得能指出来源。配置了文档或 Ontology 上下文的机器人会输出引用,点击可跳回原始材料。
- 工具(Tools)工具是外部功能或 API,让 LLM 能执行操作或获取自身不具备的信息。有了工具,机器人从"能说"变成"能做"。
- 把命令用作工具平台里的命令(command)可以直接挂成机器人的工具 —— 用户一句自然语言,就能触发应用里的具体操作。
- 把聊天机器人发布为函数发布为函数(Function)后,你的聊天机器人就能在平台里任何可执行函数的地方被调用 —— 复用性大幅提升。
- 会话日志每次聊天机器人的执行都会被结构化成事件记录下来,可导出到流式数据集,用于监控与分析。
- 用 Marketplace 分发聊天机器人把聊天机器人打包成产品,分发给别的团队/环境安装使用 —— 这是从"自己用"到"组织内复用"的一步。
- 通过 Foundry API 使用聊天机器人要在 Foundry 平台之上自建应用?这一篇讲用 Palantir API 调起会话、发消息、拿回复。
常见问题速答 · FAQ
关于「应用状态(Application state)」,读者最常问的几个问题。