Ollama Tool Shim
Ollama tool shim 可以为那些原生不支持 tool calling 的模型补上工具调用能力,例如某些 DeepSeek 模型。
Experimental Feature
Ollama tool shim 仍是实验特性,后续行为和配置方式可能继续变化。
它的工作方式是:
- 主模型先输出它想执行的工具调用意图,格式为 JSON
- 一个解释模型使用 Ollama 的结构化输出能力,把主模型消息转换成合法 JSON
- goose 再把这段 JSON 转换成真正的工具调用并执行
如何启用 Ollama Tool Shim
-
确保你已经安装并运行 Ollama
-
默认的解释模型是
mistral-nemo,如果你要直接使用它,需要先拉取:ollama pull mistral-nemo -
如果你想改用别的解释模型,先拉取该模型,再通过
GOOSE_TOOLSHIM_OLLAMA_MODEL指定。例如使用llama3.2:ollama pull llama3.2
export GOOSE_TOOLSHIM_OLLAMA_MODEL=llama3.2 -
为了获得更好的效果,建议以更大的上下文窗口启动 Ollama:
OLLAMA_CONTEXT_LENGTH=32768 ollama serve -
启用 tool shim:
export GOOSE_TOOLSHIM=1
最后,用带有 tool shim 配置的新会话启动 goose:
GOOSE_TOOLSHIM=1 GOOSE_TOOLSHIM_OLLAMA_MODEL=llama3.2 cargo run --bin goose session