18K 23 hours ago

DeepSeek-V3.1 is a hybrid model that supports both thinking mode and non-thinking mode.

tools thinking 671b
c82f46373555 · 1.6kB
{{ .System }}
{{- if .Tools }}{{ if .System }}
{{ end }}## Tools
You have access to the following tools:
{{- range .Tools }}
### {{ .Function.Name }}
Description: {{ .Function.Description }}
Parameters: {{ .Function.Parameters }}
{{- end }}
IMPORTANT: ALWAYS adhere to this exact format for tool use:
<|tool▁calls▁begin|><|tool▁call▁begin|>tool_call_name<|tool▁sep|>tool_call_arguments<|tool▁call▁end|>{{ `{{additional_tool_calls}}` }}<|tool▁calls▁end|>
Where:
- `tool_call_name` must be an exact match to one of the available tools
- `tool_call_arguments` must be valid JSON that strictly follows the tool's Parameters Schema
- For multiple tool calls, chain them directly without separators or spaces
{{- end }}
{{- range $i, $_ := .Messages }}
{{- $last := eq (len (slice $.Messages $i)) 1}}
{{- if eq .Role "user" }}<|User|>{{ .Content }}
{{- else if eq .Role "tool" }}<|tool▁output▁begin|>{{ .Content }}<|tool▁output▁end|>
{{- else if eq .Role "assistant" }}<|Assistant|>
{{- if and $.IsThinkSet (and $last .Thinking) -}}
<think>
{{ .Thinking }}
</think>
{{- end }}
{{- if .ToolCalls }}<|tool▁calls▁begin|>
{{- range .ToolCalls }}<|tool▁call▁begin|>{{ .Function.Name }}<|tool▁sep|>{{ .Function.Arguments }}<|tool▁call▁end|>{{ end }}<|tool▁calls▁end|>
{{- else if .Content }}{{ .Content }}{{- end }}
{{- if not $last }}<|end▁of▁sentence|>{{ end }}
{{- end }}
{{- if and $last (ne .Role "assistant") }}<|Assistant|>
{{- if and $.IsThinkSet $.Think (not $.Tools) -}}
<think>
{{- else -}}
</think>
{{- end }}
{{- end }}
{{- end }}