Skip to content

功能规格说明:历史搜索提示 ​

创建日期:2026-02-02

用户场景与测试 (必填) ​

用户故事:搜索和重用之前的提示(优先级:P1) ​

作为用户,我希望能够快速找到并重用之前发送给 agent 的提示,这样就不必重新输入复杂的指令。

为什么是这个优先级:这是该功能的核心价值,能够加快交互速度并减少重复输入。

独立测试:可以通过按 Ctrl+R、输入搜索词并选择之前的提示来填充输入框来进行完整测试。

验收场景:

  1. 假设我在 ~/.wave/history.jsonl 中有提示历史记录,当我在 agent 的输入框中按 Ctrl+R 时,则搜索界面出现,显示我之前的提示。
  2. 假设搜索界面已打开,当我输入搜索查询时,则提示列表被过滤以匹配我的查询。
  3. 假设有过滤后的提示列表,当我使用方向键选择一个并按 Enter 时,则所选提示被放入主输入框,搜索界面关闭。
  4. 假设搜索界面已打开,当我按 Esc 时,则搜索界面关闭,主输入框不变。

用户故事:从 Bash 历史迁移(优先级:P2) ​

作为用户,我希望 agent 使用自己专用的历史文件,而不是依赖系统的 bash 历史,这样我的 agent 交互可以保持独立和整洁。

为什么是这个优先级:通过将 agent 提示与常规 shell 命令分离,提高了隐私性和组织性。

独立测试:可以通过验证新提示被保存到 JSONL 历史文件并且不出现在系统的 .bash_history 中来进行测试。

验收场景:

  1. 假设我向 agent 发送了一个新提示,当提示被处理时,则它被追加到 ~/.wave/history.jsonl。
  2. 假设我已发送了多个提示,当我检查系统的 bash 历史(例如 history 命令)时,则agent 提示不在其中。

边界情况 ​

  • 空历史:当 ~/.wave/history.jsonl 不存在或为空时会发生什么?(系统应显示"无历史记录"消息或简单地不打开搜索界面)。
  • 大历史文件:系统如何处理非常大的历史文件?(搜索应保持响应;可能需要限制显示结果的数量)。
  • 损坏的 JSONL:系统如何处理格式错误的 history.jsonl 文件?(应优雅地失败,可能通过忽略格式错误的行或显示错误消息)。
  • 重复提示:搜索界面是否应显示重复的提示?(理想情况下,应显示唯一的提示或提示的最近实例)。