我给Coze工作流和知识库调试提个建议

近期看到Coze开源刷屏,Star已经10K+了,不由想起之前一直困扰的问题,笔者在Coze上配置的"杭州中考小助手",按分数查询可以报考的学校,检索结果总是为空,在掘金上也发过该问题求助的帖子《为啥扣子工作流中知识检索节点不起作用?》,也一直没找到解决方法。

最近找"柚子大哥"做了个验证,终于搞清楚主要还是因为在Coze知识库中没有检索到相应结果,本文展开剖析,供有需要同学参考借鉴,顺便给Coze提个小小的建议,咱也试试看能不能蹭一把最近"Coze开源"的热点哈。

知识库中检索结果为空的排查过程

首先回顾一下问题现象,我的这个"杭州中考小助手"智能体中,主要是引用了一个工作流如下图: 在这个工作流中当判断用户意图如果是"要根据分数查询可报考学校"时,就走到"知识库检索_1"节点,在这个节点中配置了4个知识库,分别对应了4种不同类型的学校录取分数线表格,然后用大模型节点,对检索结果做一个格式整理再输出。


现在问题是调试过程中发现,针对用户输入的分数,Coze知识库检索节点会基于NL2SQL方式,将其转换为相应的SQL:

转换结果SQL看着逻辑也是正确的,但最终检索节点结果就是为空。

因为用户意图如果是另外一个分支"按学校名查询录取分数线"时,每次都很准确地查到结果了,所以就一直没想到是我的知识库本身有问题,总以为是Coze的"知识库检索"节点配置有问题,或者是它的执行机制有问题。

所以试着把"知识库检索节点"的几个选项挨个调整了一遍,发现不起作用,换成"大模型节点"再搭配"技能"中选择知识库,然后写提示词要求大模型查询知识库,结果调试发现也查不到结果。

尝试了多次无果,只能搁置,一放就是2个月过去了,最近找"柚子大哥"做了个验证,结果发现是我知识库本身有问题,比如其中有个"民办高中录取分数线"的知识库表格中,其"最后一位录取考生的投档信息"字段的内容是这样一串文本字符串,并不仅仅是一个具体分数值:

所以导致Coze生成的这段SQL,虽然NL2SQL之后的字段名、条件判断逻辑、union组合逻辑等都匹配得很准,但其实执行肯定是出错了,所以没有查询出结果。

sql 复制代码
SELECT '高中学校名' FROM '2024年杭州中考普通高中录取分数线' WHERE '分数线'<=600 
UNION 
SELECT '招生学校' FROM '2024年杭州中考中本一体化录取分数线' WHERE '分数线'<= 600 
UNION 
SELECT '学校名称' FROM '2024年杭州中考民办高中录取分数线' WHERE '最后一位录取考生的投档信息'<= 600 
UNION 
SELECT '学校名称' FROM '2024年杭州中考职高+技校+中专投档线' WHERE '最后一位录取考生的投档信息'<=600

建议Coze知识库增加检索/召回的测试能力

这么一个简单问题困扰了这么久,现在回想起来当时调试最大的痛苦,就是不知道为啥没有查询出结果,NL2SQL也生成对了,但就是看不到执行结果,也没有任何报错信息,就返回一个空的结果集,生成的SQL也没有地方可以去测试执行,只能各种改动验证。

建议Coze工作流调试时,最好能输出知识库检索节点的出错信息,同时Coze知识库中增加相应的召回/检索测试,方便我们定位排查问题,Dify和RAGFlow的知识库中都有类似机制:

-end-

相关推荐
武子康34 分钟前
把 SGLang 接进 Agent,查一次订单要走几步
人工智能·llm·agent
demo007x1 小时前
让大模型活在你的鼠标旁:我用 Tauri 2 + Rust 打造了一款“反直觉”的 AI 全局划词效率神器
macos·程序员·llm
孙启超1 小时前
【AI开发之Rust】第 3 课:字符串与复合类型 —— 数据怎么放
开发语言·人工智能·后端·rust·llm·transformer
不好听6132 小时前
从朴素到智能:RAG 为什么需要 Agent 化——Agentic RAG 系列之一
llm
掰头战士2 小时前
三道保险丝,最后只能放弃治疗? 一文聊聊我的agent是怎么做死循环检测的
typescript·llm·agent
不好听6132 小时前
Advanced RAG:把检索流水线打磨到极致——Agentic RAG 系列之二
llm
掰头战士3 小时前
AgentLoop: 从 while(true) 到生产级循环
typescript·llm·agent
Albart5753 小时前
大模型无限循环输出、重复生成文本:参数层面规避幻觉输出实战
大模型·llm·vllm·大模型推理·幻觉·重复输出
玉宇夕落3 小时前
llm模块二 结构化输出 LangChain 结构化输出完全指南:从 JSON 解析到 withStructuredOutput
langchain·llm
桃西西呀6 小时前
体检报告上一堆箭头看不懂?背后的逻辑就是随机森林:一群树投票,比一棵树靠谱
人工智能·机器学习·llm