If you want to cache tiles from the backend WMS without having to know the layer names beforehand use either "combined_mirror" or "split_mirror" mode.
This doesn't seem to be properly documented, but it is mentioned in this issue
"combined_mirror" makes a tileset for each combination of layers encountered. "split_mirror" will make a tileset for each layer and then assemble these tiles.
The configuration shown in the issue (note "combined_mirror" and no wms layers defined):
<?xml version="1.0" encoding="UTF-8"?>
<mapcache mode="combined_mirror">
<cache name="disk" type="disk">
<base>/tmp</base>
<symlink_blank/>
</cache>
<source name="vmap0" type="wms">
<getmap>
<params>
<FORMAT>image/jpeg</FORMAT>
</params>
</getmap>
<http>
<url>http://www2.dmsolutions.ca/cgi-bin/mswms_gmap</url>
</http>
</source>
<tileset name="mirror">
<source>vmap0</source>
<cache>disk</cache>
<grid>WGS84</grid>
<grid>g</grid>
<format>JPEG</format>
<metatile>5 5</metatile>
<metabuffer>10</metabuffer>
<expires>3600</expires>
</tileset>
<default_format>JPEG</default_format>
<service type="wms" enabled="true">
<full_wms>assemble</full_wms>
<resample_mode>bilinear</resample_mode>
<format>JPEG</format>
<maxsize>4096</maxsize>
<forwarding_rule name="catch all">
<http>
<url>http://www2.dmsolutions.ca/cgi-bin/mswms_gmap</url>
</http>
</forwarding_rule>
</service>
<service type="wmts" enabled="true"/>
<service type="tms" enabled="true"/>
<service type="kml" enabled="true"/>
<service type="gmaps" enabled="true"/>
<service type="ve" enabled="true"/>
<service type="demo" enabled="true"/>
<errors>report</errors>
<lock_dir>/tmp</lock_dir>
</mapcache>