首页/详情

本地 LLM qwen2.5‑coder 在 Opencode 中无法执行文件操作的原因与解决思路

Reddit r/LocalLLaMA2026/02/21 22:03机翻/自动摘要/自动分类
6 阅读

内容评分

技术含量
6/10
营销水分
2/10

摘要

作者在 Opencode 中尝试使用本地部署的 qwen2.5-coder:7b 代替官方 BigPickle,却发现模型返回与任务无关的 JSON,导致创建目录等简单指令失效。文章提供了完整的 opencode.json 配置示例,并分析可能是模型默认的函数调用或响应格式问题,给出关闭函数调用、强制文本返回或改用 LMStudio 等解决方案,帮助开发者在本地 LLM 环境下顺利对接 Opencode。

正文

我尝试在 Opencode 中使用 Ollama 作为后端模型。使用官方推荐的 BigPickle 模型时,一切正常;但换成本地部署的 qwen2.5-coder:7b 后,连最基础的创建目录指令都失效。示例:

  • BigPickle 能顺利返回 mkdir testdirectory 的执行结果。
  • qwen2.5-coder:7b 却返回一段与任务毫不相关的 JSON:
{
  "name": "todo list",
  "arguments": {
    "todos": [
      {
        "content": "Create a file named TEST.TXT",
        "priority": "low",
        "status": "pending"
      }
    ]
  }
}

我按照以下视频教程的步骤配置了 opencode.json

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "ollama": {
      "models": {
        "qwen2.5-coder:7b": {
          "name": "qwen2.5-coder:7b"
        }
      },
      "name": "Ollama (local)",
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "http://localhost:11434/v1"
      }
    }
  }
}

从社区得到的两条建议:

  1. 切换到 LMStudio,让其充当 OpenAI‑compatible 接口。
  2. 检查模型的 system promptfunction calling 支持,qwen2.5‑coder 可能默认返回结构化的 “todo list”。

目前的解决思路包括:

  • options 中显式关闭函数调用(function_call: "none"),或在请求体里加入 response_format: {type: "text"}
  • 使用 Ollama--json 参数启动模型,使其仅返回纯文本。
  • 若仍不行,可改用 LMStudiovLLM 之类的兼容层,确保返回格式符合 Opencode 对 “command” 类型的期待。

如果你也在本地跑 ,建议先用 ollama run qwen2.5-coder:7b 验证模型的原始输出,再逐步对接 Opencode。

标签