From 0daaa5b5925952e75eaf4f98a73f3da4f0e0be9b Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Wed, 21 Jan 2026 20:00:18 +0000 Subject: [PATCH] fix: restore 1h cache ttl option --- docs/gateway/configuration.md | 2 +- docs/providers/anthropic.md | 2 +- src/agents/pi-embedded-runner/extra-params.ts | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/gateway/configuration.md b/docs/gateway/configuration.md index bdf2ad29b..b6fd7d141 100644 --- a/docs/gateway/configuration.md +++ b/docs/gateway/configuration.md @@ -1414,7 +1414,7 @@ Each `agents.defaults.models` entry can include: - `alias` (optional model shortcut, e.g. `/opus`). - `params` (optional provider-specific API params passed through to the model request). -`params` is also applied to streaming runs (embedded agent + compaction). Supported keys today: `temperature`, `maxTokens`, `cacheControlTtl` (`"5m"`, Anthropic API + OpenRouter Anthropic models only; ignored for Anthropic OAuth/Claude Code tokens). These merge with call-time options; caller-supplied values win. `temperature` is an advanced knob—leave unset unless you know the model’s defaults and need a change. Clawdbot includes the `extended-cache-ttl-2025-04-11` beta flag for Anthropic API; keep it if you override provider headers. +`params` is also applied to streaming runs (embedded agent + compaction). Supported keys today: `temperature`, `maxTokens`, `cacheControlTtl` (`"5m"` or `"1h"`, Anthropic API + OpenRouter Anthropic models only; ignored for Anthropic OAuth/Claude Code tokens). These merge with call-time options; caller-supplied values win. `temperature` is an advanced knob—leave unset unless you know the model’s defaults and need a change. Clawdbot includes the `extended-cache-ttl-2025-04-11` beta flag for Anthropic API; keep it if you override provider headers. Example: diff --git a/docs/providers/anthropic.md b/docs/providers/anthropic.md index 80cbe5d8b..f09d1c870 100644 --- a/docs/providers/anthropic.md +++ b/docs/providers/anthropic.md @@ -47,7 +47,7 @@ To set the TTL per model, use `cacheControlTtl` in the model `params`: defaults: { models: { "anthropic/claude-opus-4-5": { - params: { cacheControlTtl: "5m" } + params: { cacheControlTtl: "5m" } // or "1h" } } } diff --git a/src/agents/pi-embedded-runner/extra-params.ts b/src/agents/pi-embedded-runner/extra-params.ts index f6a4490a4..11f2ab83a 100644 --- a/src/agents/pi-embedded-runner/extra-params.ts +++ b/src/agents/pi-embedded-runner/extra-params.ts @@ -21,7 +21,7 @@ export function resolveExtraParams(params: { return modelConfig?.params ? { ...modelConfig.params } : undefined; } -type CacheControlTtl = "5m"; +type CacheControlTtl = "5m" | "1h"; function resolveCacheControlTtl( extraParams: Record | undefined, @@ -29,7 +29,7 @@ function resolveCacheControlTtl( modelId: string, ): CacheControlTtl | undefined { const raw = extraParams?.cacheControlTtl; - if (raw !== "5m") return undefined; + if (raw !== "5m" && raw !== "1h") return undefined; if (provider === "anthropic") return raw; if (provider === "openrouter" && modelId.startsWith("anthropic/")) return raw; return undefined;