mirror of
https://github.com/ollama/ollama.git
synced 2026-05-06 16:11:34 -05:00
Closed
opened 2026-04-22 11:12:00 -05:00 by GiteaMirror
·
27 comments
No Branch/Tag Specified
main
dhiltgen/ci
parth-launch-plan-gating
hoyyeva/anthropic-reference-images-path
parth-anthropic-reference-images-path
brucemacd/download-before-remove
hoyyeva/editor-config-repair
parth-mlx-decode-checkpoints
parth-launch-codex-app
hoyyeva/fix-codex-model-metadata-warning
hoyyeva/qwen
parth/hide-claude-desktop-till-release
hoyyeva/opencode-image-modality
parth-add-claude-code-autoinstall
release_v0.22.0
pdevine/manifest-list
codex/fix-codex-model-metadata-warning
pdevine/addressable-manifest
brucemacd/launch-fetch-reccomended
jmorganca/llama-compat
launch-copilot-cli
hoyyeva/opencode-thinking
release_v0.20.7
parth-auto-save-backup
parth-test
jmorganca/gemma4-audio-replacements
fix-manifest-digest-on-pull
hoyyeva/vscode-improve
brucemacd/install-server-wait
parth/update-claude-docs
brucemac/start-ap-install
pdevine/mlx-update
pdevine/qwen35_vision
drifkin/api-show-fallback
mintlify/image-generation-1773352582
hoyyeva/server-context-length-local-config
jmorganca/faster-reptition-penalties
jmorganca/convert-nemotron
parth-pi-thinking
pdevine/sampling-penalties
jmorganca/fix-create-quantization-memory
dongchen/resumable_transfer_fix
pdevine/sampling-cache-error
jessegross/mlx-usage
hoyyeva/openclaw-config
hoyyeva/app-html
pdevine/qwen3next
brucemacd/sign-sh-install
brucemacd/tui-update
brucemacd/usage-api
jmorganca/launch-empty
fix-app-dist-embed
mxyng/mlx-compile
mxyng/mlx-quant
mxyng/mlx-glm4.7
mxyng/mlx
brucemacd/simplify-model-picker
jmorganca/qwen3-concurrent
fix-glm-4.7-flash-mla-config
drifkin/qwen3-coder-opening-tag
brucemacd/usage-cli
fix-cuda12-fattn-shmem
ollama-imagegen-docs
parth/fix-multiline-inputs
brucemacd/config-docs
mxyng/model-files
mxyng/simple-execute
fix-imagegen-ollama-models
mxyng/async-upload
jmorganca/lazy-no-dtype-changes
imagegen-auto-detect-create
parth/decrease-concurrent-download-hf
fix-mlx-quantize-init
jmorganca/x-cleanup
usage
imagegen-readme
jmorganca/glm-image
mlx-gpu-cd
jmorganca/imagegen-modelfile
parth/agent-skills
parth/agent-allowlist
parth/signed-in-offline
parth/agents
parth/fix-context-chopping
improve-cloud-flow
parth/add-models-websearch
parth/prompt-renderer-mcp
jmorganca/native-settings
jmorganca/download-stream-hash
jmorganca/client2-rebased
brucemacd/oai-chat-req-multipart
jessegross/multi_chunk_reserve
grace/additional-omit-empty
grace/mistral-3-large
mxyng/tokenizer2
mxyng/tokenizer
jessegross/flash
hoyyeva/windows-nacked-app
mxyng/cleanup-attention
grace/deepseek-parser
hoyyeva/remember-unsent-prompt
parth/add-lfs-pointer-error-conversion
parth/olmo2-test2
hoyyeva/ollama-launchagent-plist
nicole/olmo-model
parth/olmo-test
mxyng/remove-embedded
parth/render-template
jmorganca/intellect-3
parth/remove-prealloc-linter
jmorganca/cmd-eval
nicole/nomic-embed-text-fix
mxyng/lint-2
hoyyeva/add-gemini-3-pro-preview
hoyyeva/load-model-list
mxyng/expand-path
mxyng/environ-2
hoyyeva/deeplink-json-encoding
parth/improve-tool-calling-tests
hoyyeva/conversation
hoyyeva/assistant-edit-response
hoyyeva/thinking
origin/brucemacd/invalid-char-i-err
parth/improve-tool-calling
jmorganca/required-omitempty
grace/qwen3-vl-tests
mxyng/iter-client
parth/docs-readme
nicole/embed-test
pdevine/integration-benchstat
parth/remove-generate-cmd
parth/add-toolcall-id
mxyng/server-tests
jmorganca/glm-4.6
jmorganca/gin-h-compat
drifkin/stable-tool-args
pdevine/qwen3-more-thinking
parth/add-websearch-client
nicole/websearch_local
jmorganca/qwen3-coder-updates
grace/deepseek-v3-migration-tests
mxyng/fix-create
jmorganca/cloud-errors
pdevine/parser-tidy
revert-12233-parth/simplify-entrypoints-runner
parth/enable-so-gpt-oss
brucemacd/qwen3vl
jmorganca/readme-simplify
parth/gpt-oss-structured-outputs
revert-12039-jmorganca/tools-braces
mxyng/embeddings
mxyng/gguf
mxyng/benchmark
mxyng/types-null
parth/move-parsing
mxyng/gemma2
jmorganca/docs
mxyng/16-bit
mxyng/create-stdin
pdevine/authorizedkeys
mxyng/quant
parth/opt-in-error-context-window
brucemacd/cache-models
brucemacd/runner-completion
jmorganca/llama-update-6
brucemacd/benchmark-list
brucemacd/partial-read-caps
parth/deepseek-r1-tools
mxyng/omit-array
parth/tool-prefix-temp
brucemacd/runner-test
jmorganca/qwen25vl
brucemacd/model-forward-test-ext
parth/python-function-parsing
jmorganca/cuda-compression-none
drifkin/num-parallel
drifkin/chat-truncation-fix
jmorganca/sync
parth/python-tools-calling
drifkin/array-head-count
brucemacd/create-no-loop
parth/server-enable-content-stream-with-tools
qwen25omni
mxyng/v3
brucemacd/ropeconfig
jmorganca/silence-tokenizer
parth/sample-so-test
parth/sampling-structured-outputs
brucemacd/doc-go-engine
parth/constrained-sampling-json
jmorganca/mistral-wip
brucemacd/mistral-small-convert
parth/sample-unmarshal-json-for-params
brucemacd/jomorganca/mistral
pdevine/bfloat16
jmorganca/mistral
brucemacd/mistral
pdevine/logging
parth/sample-correctness-fix
parth/sample-fix-sorting
jmorgan/sample-fix-sorting-extras
jmorganca/temp-0-images
brucemacd/parallel-embed-models
brucemacd/shim-grammar
jmorganca/fix-gguf-error
bmizerany/nameswork
jmorganca/faster-releases
bmizerany/validatenames
brucemacd/err-no-vocab
brucemacd/rope-config
brucemacd/err-hint
brucemacd/qwen2_5
brucemacd/logprobs
brucemacd/new_runner_graph_bench
progress-flicker
brucemacd/forward-test
brucemacd/go_qwen2
pdevine/gemma2
jmorganca/add-missing-symlink-eval
mxyng/next-debug
parth/set-context-size-openai
brucemacd/next-bpe-bench
brucemacd/next-bpe-test
brucemacd/new_runner_e2e
brucemacd/new_runner_qwen2
pdevine/convert-cohere2
brucemacd/convert-cli
parth/log-probs
mxyng/next-mlx
mxyng/cmd-history
parth/templating
parth/tokenize-detokenize
brucemacd/check-key-register
bmizerany/grammar
jmorganca/vendor-081b29bd
mxyng/func-checks
jmorganca/fix-null-format
parth/fix-default-to-warn-json
jmorganca/qwen2vl
jmorganca/no-concat
parth/cmd-cleanup-SO
brucemacd/check-key-register-structured-err
parth/openai-stream-usage
parth/fix-referencing-so
stream-tools-stop
jmorganca/degin-1
brucemacd/install-path-clean
brucemacd/push-name-validation
brucemacd/browser-key-register
jmorganca/openai-fix-first-message
jmorganca/fix-proxy
jessegross/sample
parth/disallow-streaming-tools
dhiltgen/remove_submodule
jmorganca/ga
jmorganca/mllama
pdevine/newlines
pdevine/geems-2b
jmorganca/llama-bump
mxyng/modelname-7
mxyng/gin-slog
mxyng/modelname-6
jyan/convert-prog
jyan/quant5
paligemma-support
pdevine/import-docs
jmorganca/openai-context
jyan/paligemma
jyan/p2
jyan/palitest
bmizerany/embedspeedup
jmorganca/llama-vit
brucemacd/allow-ollama
royh/ep-methods
royh/whisper
mxyng/api-models
mxyng/fix-memory
jyan/q4_4/8
jyan/ollama-v
royh/stream-tools
roy-embed-parallel
bmizerany/hrm
revert-5963-revert-5924-mxyng/llama3.1-rope
royh/embed-viz
jyan/local2
jyan/auth
jyan/local
jyan/parse-temp
jmorganca/template-mistral
jyan/reord-g
royh-openai-suffixdocs
royh-imgembed
royh-embed-parallel
jyan/quant4
royh-precision
jyan/progress
pdevine/fix-template
jyan/quant3
pdevine/ggla
mxyng/update-registry-domain
jmorganca/ggml-static
mxyng/create-context
jyan/v0.146
mxyng/layers-from-files
build_dist
bmizerany/noseek
royh-ls
royh-name
timeout
mxyng/server-timestamp
bmizerany/nosillyggufslurps
royh-params
jmorganca/llama-cpp-7c26775
royh-openai-delete
royh-show-rigid
jmorganca/enable-fa
jmorganca/no-error-template
jyan/format
royh-testdelete
bmizerany/fastverify
language_support
pdevine/ps-glitches
brucemacd/tokenize
bruce/iq-quants
bmizerany/filepathwithcoloninhost
mxyng/split-bin
bmizerany/client-registry
jmorganca/if-none-match
native
jmorganca/native
jmorganca/batch-embeddings
jmorganca/initcmake
jmorganca/mm
pdevine/showggmlinfo
modenameenforcealphanum
bmizerany/modenameenforcealphanum
jmorganca/done-reason
jmorganca/llama-cpp-8960fe8
ollama.com
bmizerany/filepathnobuild
bmizerany/types/model/defaultfix
rmdisplaylong
nogogen
bmizerany/x
modelfile-readme
bmizerany/replacecolon
jmorganca/limit
jmorganca/execstack
jmorganca/replace-assets
mxyng/tune-concurrency
jmorganca/testing
whitespace-detection
jmorganca/options
upgrade-all
scratch
cuda-search
mattw/airenamer
mattw/allmodelsonhuggingface
mattw/quantcontext
mattw/whatneedstorun
brucemacd/llama-mem-calc
mattw/faq-context
mattw/communitylinks
mattw/noprune
mattw/python-functioncalling
rename
mxyng/install
pulse
remove-first
editor
mattw/selfqueryingretrieval
cgo
mattw/howtoquant
api
matt/streamingapi
format-config
mxyng/extra-args
shell
update-nous-hermes
cp-model
upload-progress
fix-unknown-model
fix-model-names
delete-fix
insecure-registry
ls
deletemodels
progressbar
readme-updates
license-layers
skip-list
list-models
modelpath
matt/examplemodelfiles
distribution
go-opts
v0.23.1
v0.23.1-rc0
v0.23.0
v0.23.0-rc0
v0.22.1
v0.22.1-rc1
v0.22.1-rc0
v0.22.0
v0.22.0-rc1
v0.21.3-rc0
v0.21.2-rc1
v0.21.2
v0.21.2-rc0
v0.21.1
v0.21.1-rc1
v0.21.1-rc0
v0.21.0
v0.21.0-rc1
v0.21.0-rc0
v0.20.8-rc0
v0.20.7
v0.20.7-rc1
v0.20.7-rc0
v0.20.6
v0.20.6-rc1
v0.20.6-rc0
v0.20.5
v0.20.5-rc2
v0.20.5-rc1
v0.20.5-rc0
v0.20.4
v0.20.4-rc2
v0.20.4-rc1
v0.20.4-rc0
v0.20.3
v0.20.3-rc0
v0.20.2
v0.20.1
v0.20.1-rc2
v0.20.1-rc1
v0.20.1-rc0
v0.20.0
v0.20.0-rc1
v0.20.0-rc0
v0.19.0
v0.19.0-rc2
v0.19.0-rc1
v0.19.0-rc0
v0.18.4-rc1
v0.18.4-rc0
v0.18.3
v0.18.3-rc2
v0.18.3-rc1
v0.18.3-rc0
v0.18.2
v0.18.2-rc1
v0.18.2-rc0
v0.18.1
v0.18.1-rc1
v0.18.1-rc0
v0.18.0
v0.18.0-rc2
v0.18.0-rc1
v0.18.0-rc0
v0.17.8-rc4
v0.17.8-rc3
v0.17.8-rc2
v0.17.8-rc1
v0.17.8-rc0
v0.17.7
v0.17.7-rc2
v0.17.7-rc1
v0.17.7-rc0
v0.17.6
v0.17.5
v0.17.4
v0.17.3
v0.17.2
v0.17.1
v0.17.1-rc2
v0.17.1-rc1
v0.17.1-rc0
v0.17.0
v0.17.0-rc2
v0.17.0-rc1
v0.17.0-rc0
v0.16.3
v0.16.3-rc2
v0.16.3-rc1
v0.16.3-rc0
v0.16.2
v0.16.2-rc0
v0.16.1
v0.16.0
v0.16.0-rc2
v0.16.0-rc0
v0.16.0-rc1
v0.15.6
v0.15.5
v0.15.5-rc5
v0.15.5-rc4
v0.15.5-rc3
v0.15.5-rc2
v0.15.5-rc1
v0.15.5-rc0
v0.15.4
v0.15.3
v0.15.2
v0.15.1
v0.15.1-rc1
v0.15.1-rc0
v0.15.0-rc6
v0.15.0
v0.15.0-rc5
v0.15.0-rc4
v0.15.0-rc3
v0.15.0-rc2
v0.15.0-rc1
v0.15.0-rc0
v0.14.3
v0.14.3-rc3
v0.14.3-rc2
v0.14.3-rc1
v0.14.3-rc0
v0.14.2
v0.14.2-rc1
v0.14.2-rc0
v0.14.1
v0.14.0-rc11
v0.14.0
v0.14.0-rc10
v0.14.0-rc9
v0.14.0-rc8
v0.14.0-rc7
v0.14.0-rc6
v0.14.0-rc5
v0.14.0-rc4
v0.14.0-rc3
v0.14.0-rc2
v0.14.0-rc1
v0.14.0-rc0
v0.13.5
v0.13.5-rc1
v0.13.5-rc0
v0.13.4-rc2
v0.13.4
v0.13.4-rc1
v0.13.4-rc0
v0.13.3
v0.13.3-rc1
v0.13.3-rc0
v0.13.2
v0.13.2-rc2
v0.13.2-rc1
v0.13.2-rc0
v0.13.1
v0.13.1-rc2
v0.13.1-rc1
v0.13.1-rc0
v0.13.0
v0.13.0-rc0
v0.12.11
v0.12.11-rc1
v0.12.11-rc0
v0.12.10
v0.12.10-rc1
v0.12.10-rc0
v0.12.9-rc0
v0.12.9
v0.12.8
v0.12.8-rc0
v0.12.7
v0.12.7-rc1
v0.12.7-rc0
v0.12.7-citest0
v0.12.6
v0.12.6-rc1
v0.12.6-rc0
v0.12.5
v0.12.5-rc0
v0.12.4
v0.12.4-rc7
v0.12.4-rc6
v0.12.4-rc5
v0.12.4-rc4
v0.12.4-rc3
v0.12.4-rc2
v0.12.4-rc1
v0.12.4-rc0
v0.12.3
v0.12.2
v0.12.2-rc0
v0.12.1
v0.12.1-rc1
v0.12.1-rc2
v0.12.1-rc0
v0.12.0
v0.12.0-rc1
v0.12.0-rc0
v0.11.11
v0.11.11-rc3
v0.11.11-rc2
v0.11.11-rc1
v0.11.11-rc0
v0.11.10
v0.11.9
v0.11.9-rc0
v0.11.8
v0.11.8-rc0
v0.11.7-rc1
v0.11.7-rc0
v0.11.7
v0.11.6
v0.11.6-rc0
v0.11.5-rc4
v0.11.5-rc3
v0.11.5
v0.11.5-rc5
v0.11.5-rc2
v0.11.5-rc1
v0.11.5-rc0
v0.11.4
v0.11.4-rc0
v0.11.3
v0.11.3-rc0
v0.11.2
v0.11.1
v0.11.0-rc0
v0.11.0-rc1
v0.11.0-rc2
v0.11.0
v0.10.2-int1
v0.10.1
v0.10.0
v0.10.0-rc4
v0.10.0-rc3
v0.10.0-rc2
v0.10.0-rc1
v0.10.0-rc0
v0.9.7-rc1
v0.9.7-rc0
v0.9.6
v0.9.6-rc0
v0.9.6-ci0
v0.9.5
v0.9.4-rc5
v0.9.4-rc6
v0.9.4
v0.9.4-rc3
v0.9.4-rc4
v0.9.4-rc1
v0.9.4-rc2
v0.9.4-rc0
v0.9.3
v0.9.3-rc5
v0.9.4-citest0
v0.9.3-rc4
v0.9.3-rc3
v0.9.3-rc2
v0.9.3-rc1
v0.9.3-rc0
v0.9.2
v0.9.1
v0.9.1-rc1
v0.9.1-rc0
v0.9.1-ci1
v0.9.1-ci0
v0.9.0
v0.9.0-rc0
v0.8.0
v0.8.0-rc0
v0.7.1-rc2
v0.7.1
v0.7.1-rc1
v0.7.1-rc0
v0.7.0
v0.7.0-rc1
v0.7.0-rc0
v0.6.9-rc0
v0.6.8
v0.6.8-rc0
v0.6.7
v0.6.7-rc2
v0.6.7-rc1
v0.6.7-rc0
v0.6.6
v0.6.6-rc2
v0.6.6-rc1
v0.6.6-rc0
v0.6.5-rc1
v0.6.5
v0.6.5-rc0
v0.6.4-rc0
v0.6.4
v0.6.3-rc1
v0.6.3
v0.6.3-rc0
v0.6.2
v0.6.2-rc0
v0.6.1
v0.6.1-rc0
v0.6.0-rc0
v0.6.0
v0.5.14-rc0
v0.5.13
v0.5.13-rc6
v0.5.13-rc5
v0.5.13-rc4
v0.5.13-rc3
v0.5.13-rc2
v0.5.13-rc1
v0.5.13-rc0
v0.5.12
v0.5.12-rc1
v0.5.12-rc0
v0.5.11
v0.5.10
v0.5.9
v0.5.9-rc0
v0.5.8-rc13
v0.5.8
v0.5.8-rc12
v0.5.8-rc11
v0.5.8-rc10
v0.5.8-rc9
v0.5.8-rc8
v0.5.8-rc7
v0.5.8-rc6
v0.5.8-rc5
v0.5.8-rc4
v0.5.8-rc3
v0.5.8-rc2
v0.5.8-rc1
v0.5.8-rc0
v0.5.7
v0.5.6
v0.5.5
v0.5.5-rc0
v0.5.4
v0.5.3
v0.5.3-rc0
v0.5.2
v0.5.2-rc3
v0.5.2-rc2
v0.5.2-rc1
v0.5.2-rc0
v0.5.1
v0.5.0
v0.5.0-rc1
v0.4.8-rc0
v0.4.7
v0.4.6
v0.4.5
v0.4.4
v0.4.3
v0.4.3-rc0
v0.4.2
v0.4.2-rc1
v0.4.2-rc0
v0.4.1
v0.4.1-rc0
v0.4.0
v0.4.0-rc8
v0.4.0-rc7
v0.4.0-rc6
v0.4.0-rc5
v0.4.0-rc4
v0.4.0-rc3
v0.4.0-rc2
v0.4.0-rc1
v0.4.0-rc0
v0.4.0-ci3
v0.3.14
v0.3.14-rc0
v0.3.13
v0.3.12
v0.3.12-rc5
v0.3.12-rc4
v0.3.12-rc3
v0.3.12-rc2
v0.3.12-rc1
v0.3.11
v0.3.11-rc4
v0.3.11-rc3
v0.3.11-rc2
v0.3.11-rc1
v0.3.10
v0.3.10-rc1
v0.3.9
v0.3.8
v0.3.7
v0.3.7-rc6
v0.3.7-rc5
v0.3.7-rc4
v0.3.7-rc3
v0.3.7-rc2
v0.3.7-rc1
v0.3.6
v0.3.5
v0.3.4
v0.3.3
v0.3.2
v0.3.1
v0.3.0
v0.2.8
v0.2.8-rc2
v0.2.8-rc1
v0.2.7
v0.2.6
v0.2.5
v0.2.4
v0.2.3
v0.2.2
v0.2.2-rc2
v0.2.2-rc1
v0.2.1
v0.2.0
v0.1.49-rc14
v0.1.49-rc13
v0.1.49-rc12
v0.1.49-rc11
v0.1.49-rc10
v0.1.49-rc9
v0.1.49-rc8
v0.1.49-rc7
v0.1.49-rc6
v0.1.49-rc4
v0.1.49-rc5
v0.1.49-rc3
v0.1.49-rc2
v0.1.49-rc1
v0.1.48
v0.1.47
v0.1.46
v0.1.45-rc5
v0.1.45
v0.1.45-rc4
v0.1.45-rc3
v0.1.45-rc2
v0.1.45-rc1
v0.1.44
v0.1.43
v0.1.42
v0.1.41
v0.1.40
v0.1.40-rc1
v0.1.39
v0.1.39-rc2
v0.1.39-rc1
v0.1.38
v0.1.37
v0.1.36
v0.1.35
v0.1.35-rc1
v0.1.34
v0.1.34-rc1
v0.1.33
v0.1.33-rc7
v0.1.33-rc6
v0.1.33-rc5
v0.1.33-rc4
v0.1.33-rc3
v0.1.33-rc2
v0.1.33-rc1
v0.1.32
v0.1.32-rc2
v0.1.32-rc1
v0.1.31
v0.1.30
v0.1.29
v0.1.28
v0.1.27
v0.1.26
v0.1.25
v0.1.24
v0.1.23
v0.1.22
v0.1.21
v0.1.20
v0.1.19
v0.1.18
v0.1.17
v0.1.16
v0.1.15
v0.1.14
v0.1.13
v0.1.12
v0.1.11
v0.1.10
v0.1.9
v0.1.8
v0.1.7
v0.1.6
v0.1.5
v0.1.4
v0.1.3
v0.1.2
v0.1.1
v0.1.0
v0.0.21
v0.0.20
v0.0.19
v0.0.18
v0.0.17
v0.0.16
v0.0.15
v0.0.14
v0.0.13
v0.0.12
v0.0.11
v0.0.10
v0.0.9
v0.0.8
v0.0.7
v0.0.6
v0.0.5
v0.0.4
v0.0.3
v0.0.2
v0.0.1
Labels
Clear labels
amd
api
app
bug
build
cli
cloud
compatibility
context-length
create
docker
documentation
embeddings
feature request
feedback wanted
good first issue
gpt-oss
gpu
harmony
help wanted
image
install
intel
js
launch
linux
macos
memory
mlx
model
needs more info
networking
nvidia
ollama.com
performance
pull-request
python
question
registry
rendering
thinking
tools
top
vulkan
windows
wsl
Mirrored from GitHub Pull Request
No Label
bug
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/ollama#31063
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @tripolskypetr on GitHub (Jan 2, 2025).
Original GitHub issue: https://github.com/ollama/ollama/issues/8287
Originally assigned to: @ParthSareen on GitHub.
What is the issue?
The problem
I am trying to implement the agent swarm for ollama from scratch. I made the triage agent: the intent navigator. It should call the
navigate_to_refund_agent_toolornavigate_to_sales_agent_tooldepends on user's choose. Both tools got empty arguments likeWhen I send the following curl request it return the nasty XML output.
Time-to-time the output is
Also, sometimes the JSON in
<toolcall>tag is invalidTo solve the problem
This is definitely going to break the AI prompts, I need to fetch exactly the defined model version even if it was uploaded 10 years ago
The XML output is a real common for all models with tools in the list. This is a fake. Give me the truly information about the state of the framework: without tools it unusable and pointless waste of time
OS
Linux
GPU
Nvidia
CPU
Intel
Ollama version
0.5.4
@tripolskypetr commented on GitHub (Jan 2, 2025):
The normal approach for Ollama
@rick-github commented on GitHub (Jan 2, 2025):
LLMs are probabilistic generators, expecting 100% accuracy with untuned prompts and tiny models is setting the ground for failure and frustration.
@tripolskypetr commented on GitHub (Jan 3, 2025):
@rick-github Ok, I got it, without monkey-patching the system prompt, the
nemotron-minimodel is unusable. Are you planning to make the tools setup process automatic?But this does not solve the fake tools label problem. For example the
qwen2:0.5bmodel does not support tools...@rick-github commented on GitHub (Jan 3, 2025):
Prompt "engineering". Models require prompting. Getting good results requires putting effort into writing good prompts.
So choose a model that does. Or modify the prompt template to support tools, it's not hard.
But there's a reason why it's not given tool capability off the bat - it's poor at it. Which is why time is better spent in choosing an appropriate model and writing good prompts.
@tripolskypetr commented on GitHub (Jan 3, 2025):
@rick-github
I got a discussion in the discord channel. To solve that issue, you need to update all system prompt for each model to match the tool execution protocol. Or make a documentation of the xml schema received from the model to execute the function
It should be
1. Build into system prompt out of the box
or
2. Well-documented so I can write the prompt on my own
right now both of options are not resolved
@tripolskypetr commented on GitHub (Jan 3, 2025):
@rick-github
In the case of
nemotron-mini, the ollama system prompt is invalid. How do I rewrite it?For example, the
mistralsystem prompt is correct so the model execute the tools ok@rick-github commented on GitHub (Jan 3, 2025):
It usually is, that's what the template is for. But as you've noted, sometimes it's not correct, and the model is updated like the original nemotron-mini in #6870. Other times, users feel that's it's not implemented correctly, and offer their own take, eg for glm4 in #6505.
There are many examples of prompts in the library and in example. If you want to know more about go templating, see here.
You can dump the modelfile, adjust the template, and create a model:
If you use
/api/generate, you can pass a template via thetemplatefield in the API call. This can be used for quick verification without having to re-create a model every time you want to try out a new iteration. The other way to do quick testing of a template is to create a simple go program that does the template instantiation and evaluation.If you want to hew closer to the template from the
nemotron-minimodel source, you can look at it here.@tripolskypetr commented on GitHub (Jan 3, 2025):
@rick-github
It usually is means there are a lot of models with are untested for tools execution. All of them got a fake
toolslabelThere is no a single sentence in documentation which exactly XML i need to format to make the model execute a tool. All I know right now is the magic
<tool_call></tool_call>XML tag, but I don't have any details about this XML schema at all@rick-github commented on GitHub (Jan 3, 2025):
In your red circles, you have
toolsand0.5b. These are attributes that some of the models in theqwen2family have. There are other attributes listed there, like7band72b. Not surprisingly, not all models in theqwen2family have 72 billion parameters.That is model dependent. I've already pointed you to where you can find the model specific chat template. You take that template, convert it into a go template, and create a TEMPLATE in the Modelfile. Some models will have
<tool_call></tool_call>constructs, others won't, eg granite3. In fact, the python script above that I used to test models uses the wrong form of tool construction for nemotron-mini. As it happens, the model training was such that it was mostly able to interpret the instruction even though it wasn't correct.@rick-github commented on GitHub (Jan 4, 2025):
@tripolskypetr commented on GitHub (Jan 4, 2025):
@rick-github
Ok, I got it. The function call XML schema is different model to model
I need to exactly know which schema is need to be returned by the model to make Ollama detect the tool call. This schema is defined in the Ollama code but not documented
Is the next model output will be correct to make Ollama return the
tool_callsobject as a result ofapi/chatrequest?Are you sure about
<toolcall>tag. If so, why am I seeing it in themessage.contenttext output? Maybe I need to use<tool_call>tag?@rick-github commented on GitHub (Jan 5, 2025):
You have to relax your grip on the idea of an "exact schema". LLMs are not schema processing engines, they interpret language.
The chat template of a model (nemotron-mini, mistral, qwen2.5) provides guidance on how the model is to interpret input and generate output. The client deciphers the output and takes necessary actions. In ollama, the chat template is converted to a go template in order to facilitate this step. The
.ToolCallsproperty (as you pointed out for mistral, above) is used as the guide for extracting the tool call - content from the model that matches a JSON element in.ToolCallsis interpreted as a tool call. The XML tags and other structures are syntactic sugar - using then will likely improve the models adherence to instructions if the model was trained with them, but they are secondary to the ability of the model to generate output in accordance with the.ToolCallsstructure. This is whynemotron-miniwas able to generate tool calls in the python script even though I used the incorrect XML tags - the important part was matching.ToolCalls.Let's take a look at the chat template for
nemotron-mini:We see here that the model authors enabled the enumeration of the tools, but didn't add context for generating tool call output. This got converted to a go template:
We see that ollama will try to match model output of the form
{"name": "{{ .Function.Name }}", "arguments": {{ .Function.Arguments }}}as a tool call. It's important to note that the match must be exact. If we go back to my first response with the modified prompt, we see the following failure:The response is well formed but missing the
argumentsfield, and so is not detected as a tool call.The ability of
nemotron-minito respond with tool calls can be improved by enhancing the prompt. By telling the model the sort of output we are expecting (https://github.com/ollama/ollama/issues/8287#issuecomment-2570442336) we get much better compliance.So, in summary:
.ToolCallsJSON templates to the prompt using the structure you want.@tripolskypetr commented on GitHub (Jan 5, 2025):
@rick-github @mxyng
The problem is parseToolCalls function
only really works if the input contains tool calls in some JSON format. I can't find where thatJSON formatis specified.This is not about models at all. This issue is related to the ollama
parseToolCallsfunction does not accept thenemotron-minitool calling format@rick-github commented on GitHub (Jan 5, 2025):
OK, maybe a simpler example. This is the entire Modelfile for a new model using the GGUF file from
nemotron-mini:Looking at the tool relevant portions: give the model the tools it can use. This comes from the chat template:
Tell the model how to make to a tool call:
Tell ollama how to interpret a tool call:
Create the model:
The prompt:
The response:
Because we have been economical with the function definition and the system message, the compliance rate of this model is not great, but it's illustrative of the process of setting up a model for tool use.
If you mean that the current prompt template is missing the instruction on generating a tool call, correct. There is no "nemotron-mini tool calling format".
@tripolskypetr commented on GitHub (Jan 5, 2025):
@rick-github Why don't the invalid model prompts are fixed out of the box of ollama?
@rick-github commented on GitHub (Jan 5, 2025):
It's the holiday season, it's a newly discovered issue, it's easy to workaround, there are higher priority issues, other unknown reasons.
@tripolskypetr commented on GitHub (Jan 5, 2025):
@mxyng @rick-github
Please pay attention to the fact that the ollama repository is being spammed by models with broken system prompts which do not work as expected. This is a red flag not to use Ollama.
@rick-github commented on GitHub (Jan 6, 2025):
The default nemotron-mini template doesn't work well with your prompt. It works fine for others as evidenced by the original issue (#6870). We can get improved results for your use case without modifying the template by modifying the prompt:
@ParthSareen commented on GitHub (Jan 8, 2025):
Thanks for pointing the template issue out @tripolskypetr - will check that out. Highly recommend following the comments laid out by @rick-github (thank you!) as they cover what all you can do right now for this to be a non-issue.
I'm aware of the constraint by the JSON generation for tools and it being an issue - it's something that I plan to address in the near future. I'd also highly recommend playing with structured outputs if you need an output generated. Most of your issues can just be fixed with prompting for now as Rick has mentioned.
There's a lot of structured outputs + tool calls and constrained sampling work to be done which should be improving this entire experience.
As for the "fake tool" tags could you point some out? If these are user defined there's not much for us to do as that is the onus of the user. However, for the ones that we publish we aim to have the template correct with the right tags. If you see any of those models feel free to link them here. Do realize that there are permutations of model configurations which do not support all features in the tags and that's fine for now as that's more so just UI/UX than a model not returning tools.
@tripolskypetr commented on GitHub (Jan 9, 2025):
@ParthSareen
The same. Again. thanks for a lot of chatgpt spam, @rick-github
on the official website it still has the tools label
<tool_call></tool_call>tagThe nemotron-mini is using the
<toolcall></toolcall>tag without underscore so tools not being called@rick-github commented on GitHub (Jan 9, 2025):
All I can do is it explain it, it's up to you to understand it.
@tripolskypetr commented on GitHub (Jan 9, 2025):
@rick-github I understand It, thanks. Now, I need to know when the model list will be purged from the advertising fake.
@ParthSareen commented on GitHub (Jan 9, 2025):
@tripolskypetr As both Rick and I mentioned previously, the larger qwen models support tools. It's not the most straightforward thing on the UI I get that, SUPER hard to understand it seems so. Will fix that. Thanks!
@tripolskypetr commented on GitHub (Jan 9, 2025):
@ParthSareen @rick-github @mxyng I got that issue on a first look. After I seen the invalid system prompt in
nemotron-miniI got a serious suspicion about the whole model list is untestedPlease! Could you better test the tools execution cause without them the agent swarm pattern cannot be implemented. This affects third party tools like LangChain.js too
The agent swarm is the only way to make prompt engineering well structed. Without agent swarms, the ai code is nasty. So, by the first look this is low priority. But it definitely not!
@rick-github commented on GitHub (Jan 10, 2025):
This is the list of model families in the main ollama library that support tools:
For the first pass, I'm using 8287-2.py from above. This script implements the "navigate to agent" function from your initial post but is structured ("engineered") to provide better results for nemotron-mini. In tests above, I did 100 tests on a model but that would take too long with so many models, so it's a one-shot test for the initial results.
qwqreturns two tool calls. They're both the same, but it's arguably incorrect. However, the tool function capability works.qwen2.5-coderis an obvious mistake. The HF page makes no mention of function calling and it looks like the template is just the one fromqwen2.5with the addition of FIM support.mistral-largetouts "native function calling" so it's expected to do better. The script is modified to allow a system message to be included:granite3-denseandgranite3-moeknow what to do, but return a format that is not detected as a tool call.granite3-densecan return the right response with a tuned prompt:It's harder for
granite-moeto comply because it's such a small model at 1b parameters. If you use the 3b version, it works better:Both
granite3-moeandgranite3-densehave been superseded by the 3.1 models, so it's probably not worth spending any further effort on them.So the summary is that with the exception of
qwen2.5-coder, all families with thetoolstag have models that support tool calls. Some of the tools require tuned prompts to get good results. Theqwen2.5-codertemplate should be updated to remove tool capability.granite3-moeandgranite3-denseshould be archived.The
mistral-largetemplate could be enhanced for tool use, but since the default prompt doesn't include tool use instruction, and the tool use example at HF explicitly calls out the requirement for a system prompt, that can be left up to the user.@tripolskypetr commented on GitHub (Jan 25, 2025):
In addition to the previous conversation I managed to create the algorithm which will rescue the model when it calling not existing tools, calling tools with invalid arguments, return the invalid text output which suppose to be the tool call
I also published it as a separate NPM module to simplify the agent swarm development with Ollama. Now Ollama can be easely connected to the Hono WebSocket server
Link to the whole source code
@rick-github commented on GitHub (Jan 25, 2025):
I'm glad that you agree that models are not 100% reliable and that model choice and good prompts are required for good results.