本地 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"
}
}
}
}
从社区得到的两条建议:
- 切换到 LMStudio,让其充当 OpenAI‑compatible 接口。
- 检查模型的 system prompt 与 function calling 支持,qwen2.5‑coder 可能默认返回结构化的 “todo list”。
目前的解决思路包括:
- 在
options中显式关闭函数调用(function_call: "none"),或在请求体里加入response_format: {type: "text"}。 - 使用 Ollama 的
--json参数启动模型,使其仅返回纯文本。 - 若仍不行,可改用 LMStudio 或 vLLM 之类的兼容层,确保返回格式符合 Opencode 对 “command” 类型的期待。
如果你也在本地跑 ,建议先用 ollama run qwen2.5-coder:7b 验证模型的原始输出,再逐步对接 Opencode。