- 作者:@josevalim
- 支持者:@benbrandt
电梯演讲
您提议进行什么更改?向 ACP 协议添加一个
session/list 端点,允许客户端从代理查询和枚举现有会话,启用会话管理功能,如会话历史记录、会话切换和会话清理。
现状
今天的事情是如何运作的,这导致了什么问题?我们为什么要改变?目前,ACP 协议通过
session/new 和 session/load 端点提供会话管理。但是,客户端无法:
- 列出它们可能想要恢复的现有会话
- 清理旧或过期的会话
- 显示会话历史记录供用户选择
- 客户端必须维护自己的会话注册表来跟踪会话
- 无法在客户端之间共享会话历史记录
- 客户端必须自己处理会话过期的逻辑
我们提议对此做什么
您提议如何改善情况?添加一个
session/list 端点,允许客户端查询和枚举现有会话。
美好的未来
一旦这个功能存在,事情将如何发展?我们将能够实现会话历史记录、会话切换和会话清理等会话管理功能。
实施细节和计划
告诉我更多关于您的实施。您的详细实施计划是什么?我们提议添加一个新的 “session/list” 方法。代理必须通过在其功能中返回
session: { list : {} } 来声明此选项可用。
然后客户端能够请求会话列表:
常见问题
在编写本文档的过程中或随后的讨论中出现了哪些问题?
我们应该在列表中返回所有会话,还是支持分页?
最初,我们提议返回所有会话。如果代理需要支持大量会话,可以在未来的 RFD 中添加分页。我们应该返回所有会话字段,还是只返回一部分?
最初,我们提议只返回会话 ID、标题和日期字段。如果需要更多字段,可以在未来的 RFD 中添加。客户端如何知道会话是否仍然有效?
这可以通过未来的 RFD 添加。一种方法是在session/list 响应中包含一个 valid 字段,或者添加一个单独的 session/validate 端点。
我们是否应该支持按日期或标题过滤?
这可以通过未来的 RFD 添加。最初,我们提议返回所有会话,让客户端进行过滤。修订历史
- 2025-11-17:初始版本