
File editing broken with Claude Code/Ollama – sends invalid parameters line_start/line_end
快速结论:当使用 Claude Code 配合 Ollama 运行时,文件编辑操作可能因传递了 Ollama 不支持的参数 line_start 和 line_end 而失败,报错为 InputValidationError for unexpected parameters。优先排查上下文窗口(context window)配置,以及 Ollama 是否支持 cache_control 特性。
问题场景
用户在 macOS 上运行 Ollama 0.15.6,搭配 Claude Code 工具,使用模型 gpt-oss:20b,通过 /v1/chat/completions API 进行文件编辑操作时触发。此外,也有用户报告在 Mac + Qwen 3.6 模型组合下使用 Claude Code 出现类似文件编辑失败问题。
报错原文
Error: InputValidationError: Edit failed due to the following issues:
The required parameter `old_string` is missing
An unexpected parameter `line_start` was provided
An unexpected parameter `line_end` was provided
后续亦可能出现 cat 命令相关错误:
⏺ Bash(sed -n '29p' /Volumes/Code/app/Models/Energy/Whitelist.php | cat -A)
⎿ Error: Exit code 1
cat: illegal option -- A
usage: cat [-belnstuv] [file ...]
原因分析
可能原因:
- 上下文窗口配置不足或不当:用户报告将上下文窗口从 64K 提升至 128K+ 后仍出现问题。Ollama 目前不支持
cache_control,导致 Claude Code 每次交互都会携带大量冗余上下文(约 14K),最终影响文件编辑参数的正确传递。 - 模型工具调用生成错误参数:Claude Code 在请求 Ollama API 时,生成了
line_start和line_end这两个未预期的参数,Ollama 的/v1/chat/completions接口没有对这些参数做容错处理,直接抛出InputValidationError。 - 模型训练数据差异:对于 Qwen 3.6 等模型,生成的 shell 命令(如
cat -A)可能基于训练数据中的不同版本,导致在目标系统上执行失败。
环境排查
- 确认 Ollama 版本(用户报告使用 0.15.6)
- 确认 Claude Code 版本
- 确认模型名称(如
gpt-oss:20b、qwen3.6) - 确认上下文窗口(context window)配置(用户尝试 64K、128K+)
- 确认 Ollama 是否启用
cache_control支持(当前版本不原生支持) - 检查本地使用的
cat、sed命令版本,确认与模型生成的命令参数兼容
解决步骤
- 调整上下文窗口:在 Ollama 启动参数或模型配置中,尝试增大上下文窗口(例如设置为 128K 或更高),观察问题是否缓解。注意:即使增加窗口,由于缺乏
cache_control支持,冗余上下文仍可能持续累积。可优先尝试。 - 等待 Ollama 支持 cache_control:根据 Issue 讨论,Ollama 团队已将
cache_control支持列入待办列表,用户可关注官方更新。在支持完成前,这是根本性解决方案的前置条件。 - 排查模型生成的命令参数:如果遇到
cat -A等命令报错,可检查本地 macOS 的cat版本(macOS 默认cat不支持-A选项),考虑通过网关或工具链约束模型生成兼容当前系统的命令。 - 检查 Ollama API 输入验证:查看 Ollama 完整日志,确认是否有其他未预期参数被传递。可参考 Ollama 服务端日志收集指南 获取日志。
验证方法
重新使用 Claude Code 执行文件编辑操作(如 Update(...)),检查是否不再出现 InputValidationError 报错,且没有 cat: illegal option 等命令执行错误。同时观察模型能否正确完成文件内容替换或编辑。



