Appearance
查询会话列表节点
查询会话列表节点用于读取当前应用、当前用户作用域内仍然有效的会话,输出会话名称和会话 ID,便于后续选择目标会话并继续执行修改、删除、历史或消息处理。

适用场景
- 在修改或删除会话前列出可操作的会话。
- 为选择器、循环或条件分支提供候选会话。
- 根据会话名称找到对应的
conversationId,再交给后续节点使用。 - 检查当前用户在关联应用中是否已有会话。
该节点只负责读取列表,不会创建、修改、删除会话,也不会返回会话中的消息内容。
使用前提与作用域
资源库工作流试运行或正式执行该节点时必须关联应用。节点使用运行上下文中的应用和当前用户作为查询范围:
- 不会返回其他应用中的会话。
- 不会返回其他用户的会话。
- 已删除的会话不会出现在结果中。
- 当前实现没有按智能体、连接器、名称或会话类型筛选的配置项。
添加与配置节点
- 在工作流画布中单击“添加节点”。
- 选择“会话管理节点”中的“查询会话列表”。
- 将开始节点连接到查询会话列表节点。
- 把
conversationList连接到循环、选择、代码或后续会话处理节点。 - 试运行前,在运行配置中关联目标应用。
当前节点没有需要手工配置的输入参数。应用与用户信息由运行上下文提供,不需要作为普通变量传入。
输出参数
| 参数 | 类型 | 说明 |
|---|---|---|
conversationList | Array<Object> | 当前作用域内的会话列表;没有可用会话时返回空数组 |
conversationList[].conversationName | String | 会话名称,适合展示给用户 |
conversationList[].conversationId | String | 会话唯一 ID,适合传给后续会话或消息节点 |
当前节点最终只输出 conversationList,不输出 total、hasMore、页码或下一页游标。因此,不能根据节点输出判断当前作用域内是否还有未返回的更多会话。
当前版本的执行逻辑
节点执行时按以下顺序处理:
- 校验工作流是否关联应用,并校验当前用户是否有权访问该应用。
- 从运行上下文取得应用标识和当前用户标识。
- 查询这两个标识共同作用域内、尚未删除的会话。
- 按会话创建时间倒序排列,即新创建的会话优先。
- 从偏移量
0开始,默认最多读取20条。 - 将每条记录收敛为
conversationName和conversationId,形成conversationList。
编辑器当前没有提供数量、偏移量、排序方式或筛选条件的输入控件,所以普通工作流使用的是上述默认行为。不要把该节点描述为“查询全部会话”。
关于“静态会话”和“动态会话”
旧文档和当前节点面板的简介中仍有“包含静态会话、动态会话”的文字,但当前输出结构没有会话类型字段,运行时也没有按静态或动态类型分类的筛选与标记。
因此,本文档以当前可验证的执行契约为准:节点返回当前应用和用户作用域内的有效会话,但不能通过结果判断某条会话属于静态会话还是动态会话。后续流程不应依赖这一分类。
推荐编排
选择一个会话继续处理
查询会话列表 → 循环或代码节点匹配名称 → 取得 conversationId → 查询历史 / 修改会话 / 删除会话
- 名称用于展示和初步匹配。
- 真正调用后续节点时优先传递
conversationId,避免重名或改名造成误操作。 - 没有匹配项时走明确的空结果分支,不要把空字符串传给后续节点。
判断是否已有会话
查询会话列表 → 判断列表长度 → 已有会话分支 / 创建会话分支
这种编排适合会话数量较少、目标通常位于最近 20 条中的场景。若业务必须检索超过 20 条的完整集合,当前节点不能完成可靠遍历,应使用具备分页能力的接口或等待产品补充分页配置。
试运行与验收
建议至少验证以下情况:
- 在目标应用中创建一个新会话,然后执行查询节点,确认列表前部出现该会话。
- 检查该项同时包含非空的
conversationName和conversationId。 - 删除该会话后再次查询,确认它不再出现在列表中。
- 切换应用或用户执行,确认不会沿用前一个作用域的结果。
- 使用没有会话的测试用户执行,确认输出为
conversationList=[],而不是节点报错。
不要使用生产用户的真实会话做删除验收;应使用专门创建的测试会话。
常见问题与处理
| 现象 | 原因 | 处理 |
|---|---|---|
| 提示需要关联应用 | 资源库工作流试运行时没有选择应用,或只关联了智能体 | 在试运行配置中关联目标应用后重试 |
| 返回空数组 | 当前应用和用户作用域内没有有效会话,或使用了错误的应用/用户上下文 | 核对运行身份和关联应用,必要时先创建测试会话 |
| 找不到较早的会话 | 当前节点默认只返回按创建时间倒序排列的前 20 条 | 不要把该节点当作全量查询;改用分页接口或调整业务方案 |
| 列表中没有已删除会话 | 查询会主动排除删除标记不为空的记录 | 如需审计删除记录,应使用审计或管理能力,而不是该节点 |
| 无法区分静态和动态会话 | 当前输出没有会话类型字段 | 不依赖该分类;以会话 ID 和业务侧显式数据作为判断依据 |
| 无法取得总数或下一页 | 执行器最终只保留 conversationList | 当前工作流节点无法判断是否还有更多结果 |
| 权限校验失败 | 当前用户无权访问关联应用 | 切换到有权限的应用,或由管理员授予必要权限 |
与旧文档的核对结论
| 旧文档内容 | 当前处理 |
|---|---|
| 节点没有输入参数 | 保留;应用和用户从运行上下文取得 |
输出 conversationList,每项包含名称和 ID | 保留,并使用当前字段名 conversationName、conversationId |
| 查询当前用户的所有会话 | 更正;当前默认只返回按创建时间倒序排列的前 20 条有效会话 |
| 返回静态会话和动态会话 | 不作为可依赖契约;当前输出没有类型字段,运行时也不标记该分类 |
| 资源库试运行需要关联应用 | 保留;当前校验明确要求应用关联 |
| 草稿数据与线上数据隔离 | 不作为节点契约沿用;环境隔离取决于实际部署和运行配置 |
发布前检查
- 已确认工作流关联的是正确应用。
- 已确认下游只使用
conversationName和conversationId两个字段。 - 已处理
conversationList=[]的空结果分支。 - 已知晓默认最多返回 20 条,未把结果误认为完整集合。
- 需要定位具体会话时,已优先传递唯一
conversationId。 - 未依赖结果中不存在的会话类型、总数或分页字段。