Bug: underscore auto-escaped to backslash in message pipeline, corrupts Windows paths

当你在 LobeChat 桌面版的群聊(Group Chat)中向 AI 发送包含下划线的 Windows 路径时,消息管线会在下划线前自动插入反斜杠,导致 AI 把该反斜杠误读为目录分隔符,从而定位到错误路径。优先排查路径中的下划线是否被转义。

快速结论:当你在 LobeChat 桌面版的群聊(Group Chat)中向 AI 发送包含下划线的 Windows 路径时,消息管线会在下划线前自动插入反斜杠,导致 AI 把该反斜杠误读为目录分隔符,从而定位到错误路径。优先排查路径中的下划线是否被转义。

适用环境:LobeHub Desktop;群聊(Group Chat)模式;使用 local-system 工具(listFiles、runCommand);Windows 路径场景。Issue 中未提供 Python、CUDA、PyTorch、显卡或具体依赖版本信息。

最快修复方案:暂无确认的一步修复方案。Issue 中验证过的临时规避方法是:将路径中的下划线去掉(例如把 godot_mcp 重命名为 godotmcp)。

注意事项:该规避方法会改变实际文件夹名称,可能影响依赖原路径名的脚本或配置;Issue 以 Duplicate 关闭,指向 #12303,根因(Markdown 转义层处理原始文本)尚未在本 Issue 中给出修复验证。

问题场景

用户在 LobeHub Desktop 的群聊(Group Chat)中使用 local-system 工具(listFiles、runCommand)操作本地文件系统。当用户输入包含下划线的 Windows 路径(例如 D:\godot_mcp)时,消息管线在该下划线前自动添加反斜杠,AI 代理收到被转义后的路径,随后将其中的反斜杠当作 Windows 目录分隔符处理,把原本单个文件夹 godot_mcp 解析成父目录 godot 下的子目录 _mcp。用户因此浪费了 7 轮对话排查,最终通过重命名文件夹(去掉下划线)绕过问题。

报错原文

Bug: underscore auto-escaped to backslash in message pipeline, corrupts Windows paths

User inputs D:\godot_mcp.
Pipeline adds backslash before underscore.
AI receives D:\godot\_mcp.
AI interprets the added backslash as Windows directory separator.
Path resolves to folder godot with subfolder _mcp instead of a single folder named godot_mcp.

原因分析

可能原因:Markdown 渲染层为了防止下划线被解析为斜体(italic)语法,会对下划线进行转义,在下划线前插入反斜杠。Issue 怀疑该转义逻辑被应用到了原始文本上,导致路径在到达 AI 之前就被改写,从而破坏了 Windows 路径语义。该判断来自用户复现与推测,尚未在本 Issue 中由维护者确认根因。

环境排查

  • 确认使用的是 LobeHub Desktop 而非 Web 版。
  • 确认触发场景为群聊(Group Chat),且会话中启用了 local-system 工具(listFiles、runCommand)。
  • 确认操作系统中路径为 Windows 格式(含盘符与反斜杠)。
  • 确认受影响的路径中是否包含下划线字符。
  • Issue 未提供 Python、CUDA、PyTorch、显卡、模型或依赖版本信息,无需据此排查。

解决步骤

  1. 复现确认:在群聊中输入形如 D:\godot_mcp 的路径,观察 AI 代理实际收到的路径是否变成 D:\godot\_mcp(可在对话中要求 AI 回显它接收到的原始路径字符串)。
  2. 判断影响范围:检查该路径是否被 local-system 工具(listFiles、runCommand)使用,若使用则所有含下划线的 Windows 路径均可能被解析错误。
  3. 应用临时规避(Issue 中已验证):将文件夹重命名去掉下划线,例如把 godot_mcp 改为 godotmcp,避免触发下划线转义。
  4. 可优先尝试(未在本 Issue 中验证):改用不含下划线的等效路径,或将路径以下划线以外的写法表达(例如使用引号包裹、改用正斜杠),但需自行验证转义是否仍然发生。
  5. 跟进重复 Issue:本 Issue 已作为 #12303 的重复关闭,建议前往 #12303 查看是否有确认修复或后续版本说明。

验证方法

重命名路径后,在群聊中重新发送该路径,并让 AI 通过 local-system 工具(如 listFiles)列出目录内容。若返回结果指向正确文件夹、不再出现 godot 下的 _mcp 子目录,说明规避生效。若问题仍在,说明转义逻辑未被绕过,需回到 #12303 跟进官方修复。

参考来源

lobehub/lobe-chat #14933

lobehub/lobe-chat #12303(重复 Issue)

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 24380

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注