挨踢牛魔王 26-04-04 17:31
微博认证:科技博主

前面讲了claude code运行的一些细节,比如对于编辑的处理:
http://t.cn/AXIuP7p8
就是这些细节,让claude code的体验超过同类的编码智能体。

这次再讲一个,工具的并行执行。
一般来说,编码智能体是给大模型发消息,让大模型决定用哪些工具。
等大模型回复完了,再开始一个一个执行工具。
但是我们知道,大模型生成消息,需要的时间比较长,而工具执行的速度比较快。
假设大模型生成一条消息,是400毫秒,执行3个工具,每个都是100毫秒。

你这么做的话,用户需要等待的时间是:
大模型生成消息:400毫秒。
工具1执行: 100毫秒。
工具2执行: 100毫秒。
工具3执行: 100毫秒。
那么,这样就要等待700毫秒。

claude code不是这么做的,它是采用的流式传输,收到第一个工具消息,整个消息还没有传输完,就已经开始执行了。
假设,100毫秒收到一个工具消息,它在收到第一个工具消息时,就已经开始执行了,然后是第二个,第三个。
就是说,大模型生成消息和工具的执行是并行的。

那么时间就变成,100毫秒收到第一个工具消息,已经开始执行。
第二个100毫秒,收到第二个工具消息,第一个工具已经执行完了。
第三个100毫秒,收到第三个工具消息,前面两个工具已经执行完了。
第四个100毫秒,大模型在生成收尾信息,第三个工具已经执行完了。
总共时间是400毫秒,在大模型生成消息的过程中,三个工具都执行完了。

在实际的过程中,工具的执行速度非常快,往往大模型还没生成完,工具执行基本结束了,只剩一些收尾。
对于“读”这类的工具,完全可以并行,对于“写”这类的工具,做一些互斥和执行顺序的安排就可以了。

人们对于大模型的生成速度是有预期的,就是说400毫秒,别人觉得是应该等的,而且可以看到大模型在输出。
那么,实际使用体感,就是感觉大模型生成完,操作已经完成了。
这个体感就非常好。

你看,原理都懂,但是这些细节,别人做的就比较好,用户体验就非常好。

发布于 江苏