为什么我说Cherry Studio的含工具上下文设计存在严重缺陷

paopao 2026-05-23 16:22 1

起因


昨天我在评论区看到有人询问想用大模型来做一些工作,求一个客户端推荐,下面有人推荐了CherryStudio,并且特别强调它的工具功能非常完善,这让我没忍住开了口,因为这与我长期使用cherry后得出的结论完全相反,所以我做出了反驳,用词比较激进。


激进的原因也很简单:早在很久之前,我就已经针对这个问题提过 issue,并且做了相当详细的复现和展示,但没有得到任何回复。


真正让我决定写这篇文章的,是另一位网友接下来的回复。


对方的回复非常长,全面且看上去谨慎细致严谨,甚至引用了一些源码的描述来证明cherry的工具机制是没有问题的,但读下来我几乎可以肯定这是一段借助ai解读源码后的回复,问题在于,他的ai没有帮他指正一个最关键的错误——工具调用的数据被存下来不代表它会被放进下一轮对话上下文中。让我感到懊恼的并不只是被反驳本身,更多的在于:

1、对方没有做任何真实的测试,没有尝试去复现我提到的现象

2、对方仅靠ai解读源码就判定我在胡说

3、对方依靠ai进行了一段看似非常合理的解读,这种格式更容易让观众认为他是对的,进而被误导


我不由得想到现在互联网环境里,用词合理谨慎已经不能代表它接近事实真相,ai让任何人都有能力在自己不了解的领域产出一段看似专业详实的文字。我也有理由相信这样一种可能——因为图中的网友不是非常确定我指代的问题,那么很可能他一开始的目的就是反驳我,只是利用ai来帮他找到证据并增强自信,在这种目的下,ai确实顺着他的意思帮他找到了“证据”,它真正蒙蔽了用户的双眼(当然不排除ai能力本身不够或者用户的提问有问题,但事实结果就是这样)


这也是我决定把这件事整理成一篇文章的原因:与其在评论区浪费口舌,不如直接把结果摆出来,也顺便帮助其他用户更了解自己所使用的产品。


回到正题:Cherry Studio 真的“工具功能完善”吗?


先说我的整体态度,避免被误解,我不否认cherry在很多地方做得非常出色,它的ui友好配置简单且功能强大,对绝大多数用户而言是一个非常棒的产品,它的完成度在同类产品里是领先的,如果你是日常使用,那它是一个非常好的选择。但是上面提到的这个设计缺陷——工具返回的数据没有正确进入后续上下文对我来说是致命的,它直接导致我无法信任任何在cherry中进行的强资料依赖型工作,进而对它的使用频率也越来越低——我甚至开始自己vibe客户端。所谓强资料依赖型工作,是指那些必须依赖前一步工具返回的真实数据,才能进行下一步推理整合的任务,在这类场景下,只要工具的返回结果没有进入上下文,后续所有看起来在引用资料的回答都可能只是在依据上一轮回答中的残留摘要继续推断而不是基于原始工具结果继续推理。这是任何后续校对都极难发现的隐患,因为模型会装得很像一切都在正常运行


实际测试


下面是我在 Cherry 中对这个问题的复现过程:


测试环境:Cherry Studio v1.9.6


测试方式非常简单,如图,这是我与模型的完整对话。


这张图是第一个请求,可以看到模型进行了工具调用


这张图是第二个请求,可以看到首轮的工具调用及结果已经不存在于cherry发送的上下文


为什么这是一个严重的缺陷


最后,我想再认真解释一下,为什么我把这件事称作严重缺陷,因为有的人可能会说这是为了节省token或者只要模型总结了就不会影响结果之类的:

1、它破坏了工具调用的连续性,工具调用的意义不只是当轮查一下资料并回答,而是把外部事实纳入对话状态,让模型在后续多轮推理中继续使用这些事实。cherry当前的问题在于工具结果确实会在当轮调用中返回给模型,但在下一轮对话构造模型上下文时历史 tool block 并没有被重新转换为模型可见的 tool result 。也就是说用户在界面上看到的是工具结果已保留在对话历史中,但模型下一轮实际看到的通常只是助手上一轮的自然语言回答。这会导致工具调用从可靠事实来源退化为“当轮辅助生成”。只要上一轮回答没有完整准确地复述工具结果,后续推理就会基于残缺摘要继续展开。对于搜索、数据库查询、学习研究、文件分析、MCP自动化等强依赖工具结果的场景,这个问题可能会被进一步放大


2、它的危险性在于ui展示和模型上下文不一致。如果一个工具调用失败,用户至少能看到报错。但cherry的问题不是显式失败,而是隐性的。无论是ui还是数据库历史似乎都被完整地保存了工具结果,但实际情况是模型后续请求并不会读取这些历史tool block。于是用户看到的是上下文里明明有工具结果,模型拿到的却是没有原始工具结果的普通聊天历史。这类隐性问题非常难察觉,因为大多数情况下模型仍然会流畅自信地继续回答。


3、如一开始图中那位,有人可能会把这个问题和上下文分支,删除/编辑消息之类的混在一起,但这不是我说的问题——在用户没有主动裁剪工具结果的情况下,cherry后续构造模型请求时也没有把历史工具结果作为工具上下文回传


我也常常怀疑自己,为什么这么多的用户,似乎从来没人指出过这个问题?难道它真的很正常吗?如果这是明确设计,我可以理解这种取舍,但它至少应该在产品层面被清楚说明,或者提供可配置选项,因为用户在ui中看到工具结果完整保留时天然会认为这些内容仍属于对话上下文

回到最开始那条评论。我并不想阻止任何人使用Cherry Studio,它对新手来说是一个非常值得推荐的工具,但当有人在评论区把它推荐给一位明确说想用模型做工作的用户时,我必须把这一面也讲出来。这篇文章也并不只是为了批评Cherry Studio,毕竟它是开源的,我们并没有资格要求太多。据我了解,Cherry Studio正在开发2.0版本并且听说会有较大变化,本来我是想看看2.0会不会直接将这个问题修复,但文章一开始的事件让我决定先把当前版本的问题记录下来。如果这篇文章能让更多用户意识到ui历史和模型上下文不是一回事,或者能推动项目在后续版本中修复这个问题,那将是它最大的价值。




补充说明(2026-05-24):

我看到有佬怀疑我提到自己vibe客户端是不是引流,因为是boost我不知道怎么回复所以在这里澄清一下,我觉得这个可能属于我的个人习惯,我喜欢在叙事时把脑子里想到的细节都写下来,因为我觉得任何细节都有其价值,就看观众如何看待它。如果要问我为什么宁愿vibe一个新的而不是去提pr,其实我对不少自己经常使用的项目都提过pr,但cherry的代码量和这个设计本身修改所需要牵扯到的代码让我放弃了这一选择

最新回复 (19)
  • xiaofour 05-23 16:50
    1楼

    这货不是像ie在windows的地位吗?

  • DSUK 05-23 16:52
    2楼

    架构重的要死,也没想过优化,也就交互适人握持了

  • dtemiemie 05-23 16:52
    3楼

    唔!我之前使用cherry的时候工具调用也经常摸不着头脑,让我有点烦躁(

    佬友现在使用什么客户端嘞


    ooo看到了好像佬在自己vibe客户端(忽然引用用不了了

  • jolyne 05-23 16:53
    4楼

    手机端也是死了,不知道在干嘛,虽然开源但是还没lobehub一直在改进做得好

  • steve_pro 05-23 16:54
    5楼

    cherry studio现在支持的MCP版本还挺老的, 不能sampling 采样

  • siliconcat 05-23 16:54
    6楼

    我用Cherry Studio 一般只用来测试中转站的API是不是活着,还有看一下模型列表

  • xiaofour 05-23 16:55
    7楼

    我自己vibe了一个测试小工具,把url+key扔进去,选择cc/cx,然会就会获取模型,然后就可以发一句hello,进行测试,

  • xiaofour 05-23 16:56
    8楼

    现在这些功能ccs基本有了,它就永久删除了。。

  • siliconcat 05-23 16:58
    9楼

    偶尔也用来测试一下对话,还有测试一下生图模型

  • ninaya 05-23 16:59
    10楼

    这个软件确实越来越臃肿难用了,什么都想往里塞,什么都做不好 ,也就只能拿来当纯对话工具使用

  • xiaofour 05-23 16:59
    11楼

    生图模型最近也vibe进小工具了。

  • Sam Altman 05-23 17:00
    12楼

    纯对话我推荐 kelivo,更轻量更快

  • paopao 楼主 05-23 17:01
    13楼

    虽然是纯对话,但我不得不说kelivo也存在一模一样的问题,我也提过issue,作者回复了后续观察,但目前应该是没有进行调整的


    经测试kelivo已经不存在这个问题

  • Sam Altman 05-23 17:04
    14楼

    目前这几个传统的 chat 客户端,比如 cherry、lobehub 都疯狂的堆料,比如一大堆的 agent 啥玩意,看着很炫,但是我感觉很奇怪,就是我为啥不直接用 cc、codex cli本体 or 直接用官方桌面端呢?

  • Sam Altman 05-23 17:05
    15楼

    这我还真没注意过 ^-^因为一般模型会直接把一部分工具调用内容输出在对话里,然后下一轮就直接当上下文发过去了,所以这问题不明显

  • 哈雷彗星 05-23 17:05
    16楼

    我就想问你俩叽里咕噜的七八个来回为什么不是基于源代码来讨论而是讲现象讲感受如何如何垃圾

  • paopao 楼主 05-23 17:07
    18楼

    为什么不能基于现象呢?现象就是真实的情况,基于源码又有多少人会去看呢?cherry的代码量大伙都知道,它的代码里明确写了工具结果保存的相关废案,但我觉得提这些没什么意义

  • fengchris 05-23 17:08
    19楼

    还好我只是用来聊天

    干活还是用cc codex类的

  • 用户已注销 05-23 17:19
    21楼

    客观来讲,cherry在AI chat时代确实陪伴了大家很多重要时刻


    但是在进入agent时代之后,尤其是个人agent使用铺开之后,cherry已经不太便捷了,


    有点像手机时代的早期的大哥大,他努力做小,努力做更多功能,但是他还是太臃肿了,没有大刀阔斧的做减法,或者脱胎换骨


    体验上会有一些不太尽如人意的地方,现在大多数人已经开始使用各种agent了


    cherry是AI初期很不错的产品之一


    什么时代用什么时代适合的产品,选择对的适合自己使用场景的应用,不要苛求任何一个应用可以大而全大而美


    应该不是他们不想做好,可能只是船大难调头吧




    以上只是在个人观点


    我最近就是感觉用了很多通用agent,总是或多或少有点功能上不太舒服,后面就跟论坛里的佬友一起搞二开,再后来就新开了一个全新的agent

* 帖子来源Linux.do
返回