I use DeepSeek via OpenRouter, the caching seems to work there too, you just need to force it to use DeepSeek as a provider otherwise it picks a random one every time. (You can pass a provider option in the call, or better, create a preset in your account.)