会话删除

从会话历史中移除会话

session/delete 方法允许客户端从 Agent 的 session/list 结果中移除会话。这为用户提供了一种跨 ACP 客户端和 Agent 管理会话历史的标准方式。

在删除会话之前,客户端 必须 先完成初始化阶段并验证 Agent 支持此能力。

会话删除流程

检查支持

在尝试删除会话之前,客户端 必须 通过检查 initialize 响应中的 session.delete 字段来验证 Agent 是否支持此能力:

{
  "jsonrpc": "2.0",
  "id": 0,
  "result": {
    "protocolVersion": 2,
    "capabilities": {
      "session": {
        "delete": {}
      }
    }
  }
}

如果 session.delete 被省略或为 null,Agent 不支持删除会话,客户端 不得 尝试调用 session/delete。提供 {} 表示 Agent 支持此方法。

删除会话

客户端通过调用 session/delete 并传入要从会话历史中移除的会话 ID 来删除会话:

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "session/delete",
  "params": {
    "sessionId": "sess_abc123def456"
  }
}
参数类型必需描述
sessionIdSessionId要删除的会话的唯一标识符。

成功时,Agent 返回空结果:

{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {}
}

语义

  • 已删除的会话不再出现在未来的 session/list 结果中。
  • 删除已删除的会话或从未存在的会话 应该 静默成功。
  • Agent 可以实现软删除或硬删除。ACP 仅指定面向用户的会话列表行为。
  • 对已删除会话执行 session/resume 的行为由实现定义。
  • 删除活动会话的行为由实现定义。