20 个追求极致体验的 AI 聊天软件功能
前言
从 ChatGPT 到开源工具
2022 年,我初次接触 ChatGPT 3.5 网页端时,倍感惊艳。在那之后,我主要使用通义千问的网页版,虽然其表现中规中矩,但足以应对日常工作。直到今年年初,我开始深度使用 DeepSeek 的客户端,其多端同步功能带来了不小的便利。而随着 Gemini 2.0 Pro 的发布,我则完全转向了通过 API 调用并搭配开源桌面客户端的使用方式。
与 DeepSeek 深度对话
在年初使用 DeepSeek 期间,我探索出一种与 AI 进行深度对话的模式,用以探讨悬而未决的人生与情感话题。最打动我的一点是,其客户端提供了一个明确的隐私开关,承诺开启后平台将不会使用用户的聊天历史——我选择了信任它。让我印象深刻的是,我们之间最长的一段对话持续了超过 200 轮,累计字数逾 50 万,而整个过程十分流畅。
没有好用的 AI 工具
到了年中,我开始尝试可接入 Gemini API 的各类开源应用(如 Cherry Studio)。Gemini 2.0 Pro 的细腻和善于隐喻的表达方式是如此出色,以至于我宁愿为 API 付费,也不愿再回到 DeepSeek。然而,这些开源应用普遍存在设计简陋、隐私保护不足等缺陷,严重影响了我的深度聊天体验。这促使我写下了一篇博客——《AI 聊天应用的十条高级需求》。
尝试 Vibe Coding 开发方式
恰逢此时,得益于 Claude 3.7 Sonnet 加持的 Cursor 出现在我的视野里,我立即着手实践“Vibe Coding”——在两天内就基本实现了自己提出的十个需求。顺其自然地,我参考 Cursor 的命名,将这个新应用命名为 Pointer。
20 个功能点
如今,Pointer 已初具雏形,并成为我日常使用 LLM 的主要工具。在不断打磨的过程中,我将 Pointer 的核心功能点梳理并扩展为 20 个。这些功能点与之前博客中的设想或有重叠,但经过实践,我对每一个细节都有了更深的感悟。下面我将它们逐一记录分享。
- 文件夹
- 标签页
- 消息折叠
- 消息分支
- 消息导航
- 消息等待队列
- 动态切换模型
- 右键引用
- 右键新建对话
- 对话截图
- 复制表格
- 全局检索
- 会话检索
- 星标 or 置顶
- 收藏 or 笔记
- 导入导出
- 导入外部聊天记录
- 对 MCP 说不
- 对多模态说不
- 对联网搜索说不
1. 文件夹
当前主流 AI 聊天应用的会话列表,大多是按时间排序的线性结构,最新会话置于顶部。在设计 Pointer 时,我主要参考了 VS Code 的文件资源管理器,最终选择了树形文件夹的分类方式。这种结构的好处显而易见:你可以按不同主题划分会话,或在后续专门花时间整理归纳,这是一件非常 chill 惬意的事情。
- 核心操作:文件夹应支持一键清空、删除、导出等批量操作。
- 待办:多选操作是必要的,但这个功能对于 AI 辅助编程来说实现起来有些挑战,Pointer 暂未支持。

2. 标签页
标签页是极为常见的设计,类似浏览器。它允许你将常用会话临时固定,实现了变相的置顶功能。当你通过右键菜单“关闭其他”或“关闭所有”标签页时,那种“世界终于清净了”的静谧感,是线性列表无法给予的。
- 待办:应记录标签页的导航历史,方便快速切换,此功能 Pointer 暂未支持。

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

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

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

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

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

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

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

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

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


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

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

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

15. 收藏 vs 笔记
收藏(Favorites)和笔记(Notes)本质上是同一功能,区别在于命名和其传达的情感。我倾向于称之为“笔记”,因为它更符合记录和整理的本质。但“收藏”也有一个无法拒绝的理由:它可以搭配心形(❤️)图标,表达一种“心动”的感觉,这是“笔记”二字做不到的。
- 补充:你可能会问,为什么不用更经典的星星图标(⭐)呢?很遗憾,在 Pointer 的设计中,星星图标已经被“消息星标”(Message Star)功能所占用,用于标记对话中的某条消息。

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

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

18. 对 MCP 说不
MCP 并非一个安全的设计。我不希望为用户提供一个存在潜在安全风险的产品。
19. 对多模态说不
Pointer 的定位是一个纯粹的文本聊天应用,而不是一个集成了视频、音频处理的工作流生产力工具。保持专注,才能把核心体验做到极致。
20. 对联网搜索说不
这是为了坚守隐私第一的原则。一旦启用联网搜索,你和 AI 的对话内容,有可能泄露给搜索引擎。
- 有人可能会反驳,那 API 提供商本身不也有风险吗?是的,但我的设计理念是尽可能减少每一个潜在的泄露风险点。
- 或许又有人会说,至少提供一个开关,把选择权交给用户。但我认为,对于注重隐私的敏感用户而言,他们依然会担心程序 Bug 或意外操作导致搜索功能被调用。因此,为了彻底打消用户的顾虑,最稳妥的方案就是——根本不做这个功能。
附录
至此,相信你对 Pointer 的三个核心设计理念已有所了解:
-
极致私密 (Privacy First)
通过主动舍弃联网搜索等功能,从设计上根除隐私泄露的任何可能,为用户的思想探索打造一个绝对的“安全屋”。 -
深度高效 (Deep Efficiency)
借助文件夹、消息分支、等待队列等功能,专为超长、深度对话优化,确保用户心流不被打断,让思想能自由探索与沉淀。 -
纯粹安全 (Secure & Simple)
审慎选择技术,拒绝潜在风险,构建一个干净、可信赖的应用。它专注做好“纯文本聊天”这一件事,拒绝功能臃肿,保障核心体验。
GitHub 开源: https://github.com/experdot/pointer
浙公网安备 33010602011771号