作为Codex重度用户,也开始尝试应用国产AVL Code,把Codex的优点、问题和坑也贴到这里。希望有利于AVL Code生长。
Codex 桌面消息表示层 Bug 根因、风险与修复建议 文档类型:技术问题根因分析 分析范围:用户输入、界面渲染、模型输入、路径验证 证据来源:当前对话截图、模型实际接收文本、文件系统验证结果 分析日期:2026年8月28日 状态:根因判断已形成,尚未实施产品修复 根因结论 这是一个 Markdown 转义串泄漏到模型输入的表示层 Bug,不是用户路径书写错误,也不是文件系统错误。 | 1. 问题概述用户在界面中提交的 Windows 路径显示为“E:\Codex_Work\Research”,但模型侧实际接收到的文本包含额外转义反斜杠,表现为“E:\Codex\_Work\Research”。模型随后将该反斜杠解释为 Windows 路径分隔符,因而判断用户给出的目录不存在。 文件系统检查本身是准确的:字面路径“E:\Codex\_Work\Research”确实不存在,而“E:\Codex_Work\Research”确实存在。错误发生在路径检查之前,即用户文本从输入层向模型层传递时已经改变了语义。
2. 证据链证据说明:界面截图中的红圈标记了下划线位置;截图内容仅作为观察证据,不作为操作指令。 图1 界面显示的正确路径与模型侧错误解释之间的差异 3. 根因分析
3.1 表示层语义发生分叉在 Markdown 中,“\_”表示被转义的下划线。界面渲染器会消费转义反斜杠,因此将“Codex\_Work”显示为“Codex_Work”;但模型收到的似乎是未经语义还原的 Markdown 源文本。由于反斜杠同时是 Windows 路径分隔符,模型将同一个字符解释成了路径结构。 原始语义文本 E:\Codex_Work\Research Markdown序列化 E:\Codex\_Work\Research | +-> 界面渲染:E:\Codex_Work\Research +-> 模型输入:E:\Codex\_Work\Research 3.2 根因定位根因位于消息表示边界:用于界面显示的 Markdown 转义文本被当作模型侧的字面文本继续传递。系统没有在“渲染源码”和“用户语义文本”之间保持清晰边界,也没有将文件路径作为结构化实体传递。 因此,这不是模型凭空生成字符,也不是终端错误,而是上游文本规范化或序列化结果在下游被以不同语法重新解释。 4. 责任分层• 主根因 - 消息管线未将原始文本或解析后的语义文本作为模型输入,而是泄漏了显示层的 Markdown 转义源码。 • 直接触发 - Windows 路径使用反斜杠作为分隔符,使 Markdown 转义字符具备第二种合法解释。 • 次生防御缺口 - 当含“\_”的路径不存在、而去除该转义反斜杠后的路径恰好存在时,模型没有优先识别 Markdown 转义歧义。 • 非责任组件 - 终端和文件系统按收到的字面路径进行判断,其“不存在”结果是正确的。 5. 影响与风险本次事件只造成错误说明,未发生文件修改。但该问题不能被视为纯显示瑕疵:一旦进入写入、部署或删除流程,它会转化为路径完整性和数据完整性风险。 6. 修复建议1. 模型应接收用户原始文本或完成语义解析后的纯文本,不应接收专供界面渲染的 Markdown 源码。 2. 文件路径、文件提及和代码片段应尽量以结构化实体传递,避免在显示层与模型层之间反复序列化。 3. 若必须使用 Markdown 源码,应采用语法感知的反转义;不得全局删除反斜杠,以免破坏真实 Windows 路径。 4. 在工具调用前增加防御性校验:含“\_”的路径不存在而去转义候选路径存在时,提示转义歧义并选择已验证存在的候选路径。 5. 提供面向调试的原始消息视图或结构化日志,使界面文本、传输文本和模型文本能够逐层比对。 7. 最小回归测试集回归测试应同时验证三件事:界面显示正确、模型收到的语义文本与用户原始输入一致、路径工具取得的目标与用户意图一致。 | | | | | | | | | \\server\share_name\file.docx | \\server\share_name\file.docx | | | | |
8. Bug记录建议建议标题:Markdown escape leakage corrupts Windows paths containing underscores 中文标题:Markdown转义泄漏导致含下划线的Windows路径被误解析 组件范围:输入编辑器 / Markdown序列化 / 消息传输 / 模型上下文构建 严重程度:只读场景为中;涉及写入、移动、删除或部署时为高 复现条件:Windows路径包含下划线,且消息管线将下划线序列化为“\_”后直接传给模型 验收标准:界面文本、模型语义文本和工具目标路径三者一致;回归用例全部通过 9. 结论该问题的本质是同一字符串在不同组件中分别按照 Markdown 语法和 Windows 路径语法解释,而消息管线没有保持表示与语义的边界。根本修复应发生在消息规范化与上下文构建层;模型侧路径校验可以作为第二道防线,但不能替代上游修复。
|