Issue:read_file 工具对 .vue 文件返回错误,但 modify_file 可以正常工作
Bug 反馈已修复用用户7100702026-06-164301
问题描述
read_file 工具无法读取 .vue 文件,返回错误提示 "read_file 仅支持文本文件和图片",但 modify_file 工具可以正常修改 .vue 文件。这导致工作流程断裂:无法先读取文件内容了解上下文,就无法精确修改。
复现步骤
测试 1:读取 .vue 文件 ❌
read_file("front/src/App.vue")
→ 返回:{"success":false,"error":"无法读取: front/src/App.vue\nread_file 仅支持文本文件和图片。"}
测试 2:修改 .vue 文件 ✅
modify_file("front/src/App.vue", operation="insert_after_line", afterLine=1, content="<!-- 测试注释 -->")
→ 返回:{"success":true,"data":"文件已修改: front/src/App.vue (insert_after_line)"}
→ 验证:bash head -n 10 确认修改成功写入
测试 3:对比其他文件类型
| 文件类型 | 示例文件 | read_file | modify_file |
|---|---|---|---|
.txt |
D:\Desktop\新建 文本文档.txt |
✅ 正常 | ✅ 正常 |
.java |
/.../test/tst1.java |
✅ 正常 | ✅ 正常 |
.js |
front/babel.config.js |
✅ 正常 | 未测试 |
.ts |
public/cdn/axios/index.d.ts |
✅ 正常 | 未测试 |
.vue |
front/src/App.vue |
❌ 错误 | ✅ 正常 |
错误分析
read_file 工具内部对 .vue 文件的 MIME 类型或扩展名判断存在问题,错误地将其识别为非文本文件,但:
.vue文件本质上是纯文本文件(XML/HTML + JavaScript + CSS)modify_file工具可以正常处理,说明系统底层文件 I/O 没有问题- 其他文本格式(.java, .js, .ts)都能正常读取
实际影响
- 无法使用标准工作流程:正常流程是
read_file→ 分析内容 →modify_file精确修改,现在被迫盲改 - 必须使用 bash 绕过:用
cat/head/tail命令读取,但命令输出的内容没有行号,无法使用modify_file的replace_lines等精确定位功能 - sed 存在转义问题:在 Windows Git Bash 下使用
sed修改时,转义字符处理容易出错
环境信息
- 工作空间:
D:\ - 工作空间类型:external
- 权限模式:full_access
- 平台:Windows
- Shell:Git Bash
预期行为
.vue 文件是标准的文本文件,read_file 应该像处理 .js、.ts、.java 一样正常读取。
建议修复方案
- 检查
read_file工具的文件类型白名单,确保包含.vue扩展名 - 或改用基于文件内容的文本检测(如检查是否包含可打印字符),而非依赖扩展名白名单
- 统一
read_file和modify_file的文件类型判断逻辑
可能受影响的其他文件类型
评论与讨论
0/2000
还没有评论,分享你的体验吧。