20 个追求极致体验的 AI 聊天软件功能

前言

缺乏趁手的 AI 工具

2025 年中,我开始尝试接入 Gemini API 的各类开源应用(如 Cherry Studio)。Gemini 2.5 Pro 细腻而富有隐喻的表达令我印象深刻,甚至愿意为 API 付费,不再使用 DeepSeek。但这些开源应用普遍设计粗糙、隐私保护薄弱,难以满足深度聊天的需求。于是我写下了《AI 聊天应用的十条高级需求》

初试 Vibe Coding

恰逢此时,搭载 Claude 3.7 Sonnet 的 Cursor 进入我的视野。我立即尝试"Vibe Coding",两天内便基本实现了自己提出的十个需求。参考 Cursor 的命名方式,我将这款应用命名为 Pointer

20 个功能点

如今 Pointer 已初具雏形,成为我日常使用 LLM 的主力工具。在持续迭代中,我将其核心功能梳理为 20 个要点。这些功能与博客中的设想有所重叠,但经过实践,我对每个细节都有了更深的体会。以下逐一分享。

  1. 文件夹
  2. 标签页
  3. 消息折叠
  4. 消息分支
  5. 消息导航
  6. 消息等待队列
  7. 动态切换模型
  8. 右键引用
  9. 右键新建对话
  10. 对话截图
  11. 复制表格
  12. 全局检索
  13. 会话检索
  14. 星标 or 置顶
  15. 收藏 or 笔记
  16. 导入导出
  17. 导入外部聊天记录
  18. 对 MCP 说不
  19. 对多模态说不
  20. 对联网搜索说不

1. 文件夹

当前主流 AI 聊天应用的会话列表,大多是按时间排序的线性结构,最新会话置于顶部。在设计 Pointer 时,我主要参考了 VS Code 的文件资源管理器,最终选择了树形文件夹的分类方式。这种结构的好处显而易见:你可以按不同主题划分会话,或在后续专门花时间整理归纳,这是一件非常 chill 惬意的事情。

  • 核心操作:文件夹应支持一键清空、删除、导出等批量操作。
  • 待办:多选操作是必要的,但这个功能对于 AI 辅助编程来说实现起来有些挑战,Pointer 暂未支持。

image

2. 标签页

标签页是极为常见的设计,类似浏览器。它允许你将常用会话临时固定,实现了变相的置顶功能。当你通过右键菜单“关闭其他”或“关闭所有”标签页时,那种“世界终于清净了”的静谧感,是线性列表无法给予的。

  • 待办:应记录标签页的导航历史,方便快速切换,此功能 Pointer 暂未支持。

image

3. 消息折叠

AI 的回答通常篇幅较长,当对话轮次增多,上下滚动会变得非常费力。因此,消息折叠功能必不可少。更进一步,最好能提供一个“仅收起 AI 消息”的选项,让用户可以快速浏览自己的提问脉络。

image

4. 消息分支

消息分支是一项极其有用的功能,它允许你基于某一次回答,探索不同的对话路径。然而,市面上多数开源应用的实现都差强人意,这也是驱动我开发 Pointer 的核心动力之一。

image

5. 消息导航

在长对话中,快速定位至关重要。应用必须提供一键滚动到顶部和底部的功能。此外,在消息之间进行“上一条/下一条”的快速跳转也很有必要。更高级的需求是,能够直接跳转到被我“星标”(star)的消息,就像在书中快速定位书签一样。

image

6. 消息等待队列

当你已经想好了下一步问什么,而 AI 的回复却十分迟缓时,怎么办?消息等待队列就是答案。它允许你连续发送多条消息,系统会自动将它们缓存并按序处理。这样,你就可以先关闭应用,去做别的事情,稍后再回来查看结果。

image

7. 动态切换模型

有时,你需要比较不同模型在处理同一问题上的表现差异,以判断哪个模型更符合你的 sense 感觉。这个功能需要与“消息分支”紧密配合:每切换一次模型进行回答,就自动创建一个新的对话分支,方便对比。

image

8. 右键引用

当你在对话中看到某个词或某句话,想让 AI 基于它进行解释或翻译时,只需选中文字,通过右键菜单点击“引用”,选中的内容就会被自动复制到输入框中,极大提升了追问的效率。

image

9. 右键新建对话

与“右键引用”类似,当你希望基于选中的词或句子开启一个全新的话题时,可以通过右键菜单选择“新建对话”。应用会自动将内容发送到一个全新的会话中,并且新会话会带有一个页面溯源的 UI 标记,让你清楚地知道这个新话题源自何处。

image

10. 对话截图

将对话导出为图片是分享的常用方式。一个好的图片导出功能,必须提供尺寸选择器,以适配不同的屏幕(如适合手机分享的窄长图)。AI 对话往往很长,导致截图也很长,在移动端需要手动缩放才能看清,这是体验上的痛点。

image

11. 复制表格

表格的复制功能,除了支持 Markdown 和 CSV 格式外,还应支持直接复制为图片。但考虑到表格图片在手机上的糟糕阅读体验,可以提供一个“降维”选项:将表格强制转换为垂直排列的表单记录格式,缓解移动端查看的难题。

image

image

12. 全局检索

我最初以为全局检索的难点在于性能,没想到首先卡在了交互设计上。当检索结果过多时,体验会很糟糕。解决方案是:将结果按会话进行分组,并默认折叠一些搜索结果,然后由用户逐一查看和展开折叠的结果。

image

13. 会话内检索

这是一个非常实用的基础功能,几乎所有基于浏览器的聊天应用都天然支持。因此,只需参考现有成熟方案来实现即可。

image

14. 星标 vs 置顶

“星标”是为消息打上标记,而“置顶”则是在空间布局上赋予其优先。在我看来,侧边栏置顶功能的必要性不强,因为“标签页”的固定功能在很大程度上可以替代它。

image

15. 收藏 vs 笔记

收藏(Favorites)和笔记(Notes)本质上是同一功能,区别在于命名和其传达的情感。我倾向于称之为“笔记”,因为它更符合记录和整理的本质。但“收藏”也有一个无法拒绝的理由:它可以搭配心形(❤️)图标,表达一种“心动”的感觉,这是“笔记”二字做不到的。

  • 补充:你可能会问,为什么不用更经典的星星图标(⭐)呢?很遗憾,在 Pointer 的设计中,星星图标已经被“消息星标”(Message Star)功能所占用,用于标记对话中的某条消息。

image

16. 导入与导出

导入导出功能必须支持选择性操作,即允许用户只导入或导出指定的会话,而不是强制全量处理。设置、会话、收藏也应该区分开来。

image

17. 导入外部聊天记录

为了方便用户迁移,应用最好能支持导入市面上所有主流 AI 聊天平台的历史记录。

image

18. 对 MCP 说不

MCP 并非一个安全的设计。我不希望为用户提供一个存在潜在安全风险的产品。

19. 对多模态说不

Pointer 的定位是一个纯粹的文本聊天应用,而不是一个集成了视频、音频处理的工作流生产力工具。保持专注,才能把核心体验做到极致。

20. 对联网搜索说不

这是为了坚守隐私第一的原则。一旦启用联网搜索,你和 AI 的对话内容,有可能泄露给搜索引擎。

  • 有人可能会反驳,那 API 提供商本身不也有风险吗?是的,但我的设计理念是尽可能减少每一个潜在的泄露风险点。
  • 或许又有人会说,至少提供一个开关,把选择权交给用户。但我认为,对于注重隐私的敏感用户而言,他们依然会担心程序 Bug 或意外操作导致搜索功能被调用。因此,为了彻底打消用户的顾虑,最稳妥的方案就是——根本不做这个功能。

附录

至此,相信你对 Pointer 的三个核心设计理念已有所了解:

  • 极致私密 (Privacy First)
    通过主动舍弃联网搜索等功能,从设计上根除隐私泄露的任何可能,为用户的思想探索打造一个绝对的“安全屋”。

  • 深度高效 (Deep Efficiency)
    借助文件夹、消息分支、等待队列等功能,专为超长、深度对话优化,确保用户心流不被打断,让思想能自由探索与沉淀。

  • 纯粹安全 (Secure & Simple)
    审慎选择技术,拒绝潜在风险,构建一个干净、可信赖的应用。它专注做好“纯文本聊天”这一件事,拒绝功能臃肿,保障核心体验。

GitHub 开源: https://github.com/experdot/pointer

posted @ 2025-10-29 08:05  ExperDot  阅读(822)  评论(0)    收藏  举报