원클릭으로
roo-bedrock-custom-arn
Roo Code's Bedrock provider silently disables caching for custom ARNs. Populate cachableFields to fix.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Roo Code's Bedrock provider silently disables caching for custom ARNs. Populate cachableFields to fix.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Aider uses 5min TTL by default and works around long pauses with keepalive pings. Wire up the 1h TTL beta instead.
Aider's --cache-prompts is off by default. Flip it on for supported models.
Stop Cline from burning a cache breakpoint on the volatile current user message every turn.
Cline OpenAI native provider sends no prompt_cache_key. Add a stable per-task key so cached_tokens stops being zero.
Cline's system prompt includes a timestamp that may be recomputed per request, invalidating the system-prompt cache.
Continue's prompt caching is opt-in via config and off by default. Flip the default to systemAndTools.
| name | roo-bedrock-custom-arn |
| description | Roo Code's Bedrock provider silently disables caching for custom ARNs. Populate cachableFields to fix. |
| target_harness | Roo Code |
| target_repo | RooCodeInc/Roo-Code |
| target_files | ["src/api/providers/bedrock.ts"] |
| target_commit | main @ v3.54.0 |
| estimated_savings | Enables Bedrock prompt caching for custom ARN setups (currently 0%) |
src/api/providers/bedrock.ts → guessModelInfoFromId() in
RooCodeInc/Roo-Code.
Tracked upstream as issue #11983; PR #11984 proposes a fix but status uncertain at audit time.
When a user configures Bedrock with a custom ARN instead of one of
Roo's hardcoded model IDs, guessModelInfoFromId() returns
{ supportsPromptCache: true } but omits cachableFields. Downstream
the Bedrock provider checks for cachableFields and skips caching
entirely when empty. Net effect: silent 0% cache hit on custom ARNs.
Users hit this when:
--- a/src/api/providers/bedrock.ts
+++ b/src/api/providers/bedrock.ts
@@ guessModelInfoFromId(modelId: string)
if (/* claude pattern match */) {
- return { supportsPromptCache: true }
+ return {
+ supportsPromptCache: true,
+ cachableFields: ["system", "messages", "tools"],
+ }
}
Apply this to every branch in guessModelInfoFromId() that returns
supportsPromptCache: true without populating cachableFields.
If PR #11984 is already merged at apply time, verify the fix
matches this shape and skip the diff.
cachePoint markers anywhere in the requestcachePoint: { type: "default" } blocks on system
and last stable messageusage:
cacheWriteInputTokenCount > 0 on cold turncacheReadInputTokenCount > 0 on warm turnBedrock's Converse API uses a different field name (cachePoint)
than direct Anthropic (cache_control). Roo handles the translation
correctly for declared models but the custom-ARN detection path is
incomplete.
See docs/concepts/bedrock.md. Full audit: audits/roo-code.md.