# 历史记录 (/zh/docs/workspaces/history)

Echolot 会保留工作区进行的每一次交换：发送的每个请求、收到的响应，以及发送者。你的发送、运行器的、流程的和智能体的，都记录在同一个地方。历史记录可以用来回到较早的响应、找到返回某个值的请求，或查看智能体做了什么。

## 打开“历史记录”页面 [#open-the-history-page]

- **视图 › 历史记录**（<kbd>⌘</kbd><kbd>Y</kbd>）。
- 页面标题栏中的**历史记录**。再次点按它可回到你来的页面。

页面按天列出交换，最新的在前。每一行显示状态（没有收到响应的发送显示**失败**）、方法、请求的名称、地址、发送者和时间。**未存储**标记一个从未存储过的请求的交换；**已删除**标记请求后来已被删除的交换。

<Shot id="workspaces-history-page" alt="“历史记录”页面：今天来自 Alpenglow 的交换，发送者有“你”、“运行器”和一个智能体，上方是搜索栏和“发送者”筛选" />

## 记录什么 [#what-is-recorded]

- 每一种请求的每一次发送，无论来自请求页面、[运行器](/docs/requests/runner)、流程、[快速发送](/docs/mac/quick-send)、[快捷指令](/docs/mac/shortcuts)、[助手](/docs/ai/assistant)还是[外部智能体](/docs/ai/agents)。
- 没有得到响应就失败的发送，连同它们的错误。
- WebSocket、Socket.IO 和 MQTT 会话，在关闭之后：连接以及每条消息的日志。

Echolot 为自己使用而发出的请求，例如获取 GraphQL Schema 或规范，不会记录。命令行工具不保留历史记录。

每一行都会显示交换的发送者：

| 显示 | 发送者 |
| --- | --- |
| **你** | 你，从 App 中发送。 |
| **运行器** | 运行器中的一次运行。 |
| **流程：** 名称 | 一个流程。 |
| **智能体** | 内置的助手。 |
| 客户端的名称 | 通过 Echolot 的 MCP 服务器的外部智能体，例如 Claude Code。 |

## 搜索和筛选 [#search-and-filter]

在**搜索名称、URL、标头和正文**中输入。两个字符搜索名称和地址；三个或更多字符还会搜索正文。匹配可以出现在文本的任何位置，而不仅是词的开头。

**发送者**用来缩小列表：**全部**、**你**、**运行**（运行器和流程）或**智能体**（助手和外部智能体）。旁边的数字说明有多少个交换或匹配项。

搜索的范围：

- 每个文本正文的前 256 KB：JSON、XML、HTML、文本、表单数据、事件流等。图像、压缩包和其他二进制正文不会被搜索。
- [加密](/docs/workspaces/storage-and-encryption)开启时完全不搜索正文文本：此时搜索只能找到名称、地址和标头。
- 绝不包含机密值：它们在历史记录列出和搜索的内容中已被遮盖，因此无法通过搜索来猜出机密。

## 查看一次交换 [#look-at-an-exchange]

点按一行即可选中它；<kbd>↑</kbd> 和 <kbd>↓</kbd> 在列表中移动。

- <kbd>空格键</kbd>显示快速查看：状态、发送时间、耗时、大小和类型、发送者、环境和请求，并带有用来显示它、拷贝其地址或比较它的按钮。
- <kbd>↩</kbd> 或双击会打开它。已存储请求的交换会在该请求中打开，并定位到那个响应。没有已存储请求的交换会在面板中打开，显示它的响应标头和正文。

按住 Control 键点按一行，可使用：

| 命令 | 作用 |
| --- | --- |
| **在请求中显示** | 在这个响应上打开请求。 |
| **显示交换** | 在面板中打开该交换。 |
| **与上一个响应比较** | 与该请求在此之前的响应比较。 |
| **添加到 OpenAPI 规范…** | 把响应记录到规范中。见[从流量生成规范](/docs/specs/specs-from-traffic)。 |
| **存储为模拟示例…** | 把响应存为其请求所遵循的规范中的一个命名示例。见[模拟](/docs/mocks)。 |
| **拷贝 URL** | 拷贝地址。 |
| **删除** | 从历史记录中移除这次交换。 |

## 请求自己的历史记录 [#a-requests-own-history]

在请求页面中，响应窗格工具条里的时钟按钮显示该请求有多少个响应。点按它可查看列表：状态、时间、发送者、耗时和大小。

- 点按某个响应，即可在响应窗格中显示它。它上方的栏会显示**过去的响应**、时间和发送者，并带有**与最新响应比较**和**显示最新**。
- 把指针停在某一行上并点按箭头，即可将它与当前显示的响应比较。
- **⋯ › 清除此请求的历史记录…** 会先询问，然后移除该请求过去的响应。请求本身保持不变。

<Shot id="workspaces-request-history" alt="从时钟按钮打开的 Catalog › List products 的响应历史记录列表：五个响应及其状态、时间、来源、耗时和大小" />

## 比较两个响应 [#compare-two-responses]

可以从请求的历史记录列表、**与最新响应比较**，或“历史记录”页面上的**与上一个响应比较**开始比较。面板在顶部并排显示两个响应，较旧的标记为 −，较新的标记为 +，并显示它们之间变化的行，每处更改前后各带三行上下文。

- **正文**比较两个正文。没有任何差异时它会说“两个正文逐字节完全相同。”，只有排版不同时会说“两个正文仅格式不同。”
- **状态和标头**比较状态行和标头。

底部的数字说明添加和移除了多少行。最多显示 20,000 行更改。

<Shot id="workspaces-history-compare" alt="Catalog › List products 的“比较响应”：顶部是较旧和较新的响应，正文差异中显示价格和库存数量的变化" />

## 历史记录保留多久 [#how-long-history-is-kept]

历史记录为每个请求保留最新的若干个响应。在**设置 › 储存空间 › 每个请求的历史记录**中选择保留多少个：10、25、50（默认）、100 或 200。较旧的条目先被移除。每个请求最新的响应会保留它的正文，因此重新启动之后仍能显示。

正文单独存储，有自己的大小限制（**响应正文最多保留**，默认为 5 GB）。超过这个限制后，最久未使用的正文会被移除，所以旧条目可能显示“此正文已不再存储。”见[储存和加密](/docs/workspaces/storage-and-encryption)。

## 清除历史记录 [#clear-history]

- 一次交换：它的上下文菜单中的**删除**。
- 一个请求的：它的历史记录列表中的**清除此请求的历史记录…**。
- 工作区的全部：“历史记录”页面上的 **⋯ › 清除历史记录…**。它会先询问：“要清除此工作区的所有历史记录吗？”请求保持不变；它们过去的响应会被清除。

清除历史记录绝不会触及请求或工作区文件。

## 历史记录保存在哪里 [#where-history-lives]

每个工作区都有自己的历史记录，保存在你 Mac 上 Echolot 的储存空间中，绝不在工作区文件夹里。它不会通过 Git 共享，同事的历史记录是他们自己的。智能体通过 Echolot 读取历史记录，其中的凭据标头和机密已被遮盖。

如果无法打开历史记录，页面会显示“历史记录不可用”及原因。发送仍然可用；在文件能够打开之前，不会记录任何内容。
