![[Bug]: use_sql Markdown separator adds extra column when Source is enabled](https://www.chat-gpts.plus/wp-content/uploads/2026/06/16312-ffb5e02c.jpg)
[Bug]: use_sql Markdown separator adds extra column when Source is enabled
快速结论:该问题发生在 RAGFlow 使用 use_sql 构建 Markdown 表格并开启 Source 列时。优先排查 api/db/services/dialog_service.py 文件中第 1307 行的分隔符构建逻辑,确认是否存在 docid_idx 被重复检查的复制粘贴错误。
问题场景
用户在 RAGFlow 中启用了 Source 列(即文档 ID 和文档名称列),并通过 use_sql 功能生成 Markdown 格式的表格时,发现分隔符行(separator line)多出一个空列,导致 GFM(GitHub Flavored Markdown)表格渲染异常。
报错原文
Markdown table separator has extra column when Source is enabled
The separator line uses docid_idx and docid_idx instead of docid_idx and doc_name_idx, producing malformed GFM tables.
原因分析
这是一个已确认的复制粘贴错误。在 api/db/services/dialog_service.py 第 1307 行,分隔符构建代码中的条件判断重复检查了 docid_idx 两次(即 docid_idx and docid_idx),而不是正确检查 docid_idx and doc_name_idx。此外,该行代码在条件成立时仅添加一个 |------| 段,而添加 Source 列(文档 ID 和文档名称)时应该添加两个 |------| 段,与表头的构建逻辑保持一致。
环境排查
- 检查 RAGFlow 版本:确认是否使用了受影响的分支(例如
1fc02606ea9df6645169f495db207172d0d2cab8或相近版本)。 - 确认
api/db/services/dialog_service.py文件是否存在,以及第 1305-1323 行的代码逻辑。 - 确认是否在
use_sql功能中启用了 Source 列。
解决步骤
- 定位到
api/db/services/dialog_service.py文件的第 1307 行。 - 找到分隔符构建代码:
line = "|" + "|".join(["------" for _ in range(len(column_idx))]) + ("|------|" if docid_idx and docid_idx else "") - 修复为正确的逻辑:
line = "|" + "|".join(["------" for _ in range(len(column_idx))]) + ("|------|------|" if docid_idx and doc_name_idx else "")主要修改包括:
- 将条件判断中的重复
docid_idx改为docid_idx and doc_name_idx。 - 将条件满足时添加的单个
|------|改为两个|------|------|,以匹配 Source 列的两列。
- 将条件判断中的重复
- 保存文件并重启 RAGFlow 服务。
验证方法
重新执行 use_sql 查询并启用 Source 列,检查生成的 Markdown 表格分隔符行是否与表头列数一致,且 GFM 表格渲染无额外空列。


![[Bug] callAgent 跨 Agent 调度在云端返回 "Sub-agent did not complete (error)",Router Agent 无法实际调度子 Agent](https://www.chat-gpts.plus/wp-content/uploads/2026/06/16257-8ec1b72b-768x403.jpg)
