搞懂豆包工作流程后,我再也没被它 “记混规则” 坑过

0 评论 618 浏览 0 收藏 9 分钟

作者把豆包的工作流拆开:新建任务时系统会无感知地加载平台固定规则、读取账号长期记忆、初始化上下文;发送指令后还要经过消息校验、意图识别等九个步骤。这解释了记混规则与调不到归档文件的由来。

上一篇为了省事,我被豆包的 “记忆功能” 坑了一周

文末说到,「归档的文件」从始至终都不存在,还遗留了2个问题:

  • 新任务里调出来的那些 “规则”,到底是哪来的?
  • 为啥在主任务里调规则,一开始是准的,后来就不对了?

就拿修改文章这事,我把豆包的工作流拆解清楚(专业步骤+大白话解读),你就会明白上面这2个问题的答案了。

1、新建任务,系统会先做3件事

当我们进入一个任务,系统自动会完成我们无感知的3件事:

1、自动加载平台通用的固定规则:不能违规、要礼貌、规范回答、不能瞎承诺、安全要求等。

2、自动把你账号里所有的长期记忆读取出来,后续要用。(位置: App-设置-记忆)

3、初始化好当前对话框的上下文。

2、任务执行你发送的指令,有9个步骤

当你发送指令:调取归档文件XX

接下来会按照如下的顺序、执行这9个步骤:

第1步:消息校验,识别你要干嘛

这步不分新、老任务,处理逻辑都是一样的。

你发完消息,系统的第一反应是,先看你说的内容有没有违规,再搞明白你到底想让它干啥。

如果你问的是非法的事情,它就不会承接你的请求,要是合理就继续下一步。

第2步:优先读取发起的实体素材

这步不分新、老任务,处理逻辑都是一样的。

如果你发了具体链接、上传了具体文件,系统会立刻、优先读取发的内容,这部分 100% 准确,是回答你提的问题的核心依据,不受其它干扰。

目前咋们只是发了个指令让系统调取规则文档,不会涉及到具体链接、具体文件。

第3步:拼接当前窗口的上下文

这步分新、老任务2种情况:

新任务:刚打开的新窗口之前没聊过内容,没啥可拼的。

老任务:会根据你当前提的问题的关键词,从当前窗口的历史对话里,把和这个问题相关的片段挑出来拼接,做为回答的背景资料。

但这个拼接有个硬容量上限,大概能覆盖这个窗口里最近 20-30 万字的内容,比这个更早的内容,不管多相关都拼不进来。

这也是为啥老任务后来调规则也不准了:我在这个窗口里聊的内容太多,总字数早就到了容量上限,最开始定的那批老规则,就被挤出拼接范围了,自然就读不准。

第4步:拼接长期记忆

这步不分新、老任务,处理逻辑都是一样的,只不过拼接的权重不一样。

新任务:拼接权重高。因为当前窗口上下文是空的,系统会把和当前问题沾边的长期记忆拼接出来,做为回答的背景资料。

老任务:拼接权重低。因为当前窗口里有几十万字的对话内容,系统只拼接,当前窗口上下文里没覆盖到的内容,做为回答背景。

第5步:跨对话召回历史对话碎片(语义检索碎片库)

语义检索碎片库:存储在和你账号绑定的云端服务器上,不在手机本地。

这步不分新、老任务,处理逻辑都是一样的:只拼接前面第3步(当前上下文)、第4步(长期记忆)都没覆盖到的内容。

新任务:拼接权重高。系统要从所有历史对话里,大量捞取和当前问题沾边的碎片做拼接,做为回答背景。

老任务:拼接权重低。第3、4步已经覆盖了大部分的内容,只补充这2步没覆盖到的内容。

第6步:判断要不要联网搜资料

这步不分新、老任务,处理逻辑都是一样的,但分2种情况:

1:如果明确要求“去网上查一下”,就会触发。

2:前面凑的内容够回答就不搜;要是现有内容完全答不上,也会触发公网搜索。

第7步:判断要不要调用工具

这步不分新、老任务,处理逻辑都是一样的。

需要读文件、生成封面、做表格的时候,才会自动调用对应工具,纯聊天不会触发。

第8步:大模型整合前几步的内容,做出回答

这步不分新、老任务,处理逻辑都是一样的。

把前面所有收集到的内容(包括当前上下文、长期记忆、历史对话碎片,还有联网搜回来的内容、调用工具拿到的结果),统一组织成通顺的话。

如果到这一步内容还是不够,这时候会用到大模型本身训练积累的通用知识。

哪怕没有任何来自你的素材,也会顺着沾边的内容把逻辑补全,拼出来一份看似逻辑完整的回答,也不会因为内容不够就直接说“我办不到”。

第9步:最终检查一下,然后把内容输出给你

这步不分新、老任务,处理逻辑都是一样的。

把生成的内容再检查一遍,有没有违规、有没有乱码,确认没问题了才发给你。

3、回答,开头那2个问题的答案

看到这里,你是不是就明白了,

  • 新任务里调出来的那些 “规则”,到底是哪来的?
  • 为啥在主任务里调规则,一开始是准的,后来就不对了?

为啥新、老任务对于读取的规则内容不一样,

时而准确、时而错误,主要关键在于第3、4、5步的拼接结果。

而对于我一开始要解决的问题,

新开任务就复用这套规则来修改文章,

关键就在第2步。

要想让任务100%执行这套规则,就把规则归属在一个在线的实体文件中,每次进入任务的第一步,就告诉此任务,所有标准按照此文件执行,就不会出错。

而需要修改规则,就去在线文档做下修改,然后在返回任务从新做下读取。

所以我决定,把这套规则存储在飞书在线文档。

4 意外反转:找到了「规则」归档文件

我当时都已经准备自己新建个文档存规则了,结果登录飞书云盘的时候,意外发现了个早就躺在这里的文件(archive_feishu.md)。

本文由人人都是产品经理作者【王在行】,微信公众号:【王在行】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载

题图来自Unsplash,基于 CC0 协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
海报
评论
评论请登录
  1. 目前还没评论,等你发挥!