> ## Documentation Index
> Fetch the complete documentation index at: https://phaseo.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Phaseo Gateway base URL: https://api.phaseo.app/v1. Send `Authorization: Bearer $PHASEO_API_KEY` with every request.
> Model IDs look like `provider/model`, for example `openai/gpt-6-astra`. Do not guess IDs: list them with `GET /v1/models` or check https://phaseo.app/models. `phaseo/free` routes to an available free model and needs no wallet balance.
> For new text integrations prefer `POST /v1/responses`. `POST /v1/chat/completions` (OpenAI format) and `POST /v1/messages` (Anthropic format) suit existing code.
> The full API contract is https://phaseo.app/docs/openapi/v1/openapi.yaml. Official SDKs: `@phaseo/sdk` (TypeScript) and `phaseo` (Python), plus Go, C#, PHP, Ruby and Rust.
> Search these docs over MCP at https://phaseo.app/docs/mcp, and install Phaseo skills with `npx skills add https://phaseo.app/docs`. If a page is wrong or out of date, report it with the MCP `submit_feedback` tool.
> Manage Phaseo accounts with the `phaseo` CLI (`npm install -g @phaseo/cli`, then `phaseo login` or `phaseo login --device-code`), the `/v1` Management API or the MCP server at `https://mcp.phaseo.app/mcp?access=manage`. Do not send users to the dashboard for account tasks. A person is still needed for sign-up, approving a sign-in, paying the first top-up on the checkout link that `phaseo credits add` returns when no card is saved, confirming each saved-card top-up from the emailed link, and account security (password, MFA, passkeys). Create API keys with `phaseo keys create --name <name> --json`; never guess one. Credit top-ups need `phaseo login --scopes billing:write` first. Task map: https://phaseo.app/docs/v1/developers/manage-from-an-agent.md.

# Use response caching with presets

> Combine preset defaults with deterministic response caching so repeated requests return fast and predictably.

Use this recipe when you have repeated requests with stable prompts and want lower latency plus lower repeated inference cost.

## 1. Start with a preset, not ad-hoc requests

Create a preset when the following should stay stable:

* target model
* provider preferences
* temperature and other generation parameters
* reasoning settings
* system prompt

This keeps the cache key stable because the request stays stable.

## 2. Turn on response caching at the preset level

Configure:

* `response_caching.enabled = true`
* a practical `ttl_seconds`

Good defaults:

* short TTL for rapidly changing factual prompts
* longer TTL for stable structured outputs

## 3. Keep the request deterministic

Response caching is strongest when you avoid unnecessary request drift.

Avoid changing:

* system prompt wording
* temperature
* provider overrides
* reasoning config
* tool lists

If one caller changes these constantly, move that caller to a different preset instead of defeating cache reuse for everyone else.

## 4. Check cache behavior in request details

The request details should show cache information for requests that pass through the cache path.

Verify:

* cache hit vs miss
* TTL behavior
* provider context when a cached response is served

## 5. Pair caching with routing intentionally

Recommended patterns:

1. use one preset for deterministic structured outputs with caching on
2. use a second preset for exploratory or higher-temperature requests with caching off

This keeps the cache high-signal instead of mixing incompatible traffic.

## 6. Debug misses before widening the TTL

If you expect hits but keep getting misses, compare:

* prompt text
* model id
* provider options
* response format
* tools and tool choice
* preset slug/config

Widening TTL will not fix a fingerprint mismatch.

## 7. When to avoid caching

Do not enable response caching by default for:

* prompts that depend on live external state
* user-specific answers with rapidly changing context
* requests with volatile tool outputs
* highly stochastic generations where exact replay is undesirable

## Related

* [Roll out presets and debug routing](https://phaseo.app/docs/v1/cookbook/preset-rollout-and-routing-debug.md)
* [Examples](https://phaseo.app/docs/v1/guides/examples.md)
* [TypeScript SDK](https://phaseo.app/docs/v1/sdk-reference/typescript/overview.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.