会话删除
从会话历史中移除会话
session/delete 方法允许客户端从 Agent 的 session/list 结果中移除会话。这为用户提供了一种在 ACP 客户端和 Agent 之间管理会话历史的标准方式。
在删除会话之前,客户端必须先完成初始化阶段并验证 Agent 支持此能力。
检查支持
在尝试删除会话之前,客户端必须通过检查 initialize 响应中的 sessionCapabilities.delete 字段来验证 Agent 是否支持此能力:
{
"jsonrpc": "2.0",
"id": 0,
"result": {
"protocolVersion": 1,
"agentCapabilities": {
"sessionCapabilities": {
"delete": {}
}
}
}
}
如果 sessionCapabilities.delete 被省略或为 null,则 Agent 不支持删除会话,客户端不得尝试调用 session/delete。提供 {} 表示 Agent 支持该方法。
删除会话
客户端通过调用 session/delete 并传入要从会话历史中移除的会话 ID 来删除会话:
{
"jsonrpc": "2.0",
"id": 3,
"method": "session/delete",
"params": {
"sessionId": "sess_abc123def456"
}
}
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
sessionId | SessionId | 是 | 要删除的会话的唯一标识符。 |
成功时,Agent 返回空结果:
{
"jsonrpc": "2.0",
"id": 3,
"result": {}
}
语义
已删除的会话不再出现在未来的 session/list 结果中。
删除已删除的会话或从未存在的会话应当静默成功。
Agent 可以实现软删除或硬删除。ACP 仅指定面向用户的会话列表行为。
对已删除会话执行 session/load 的行为由实现定义。
删除活跃会话的行为由实现定义。