变换
自动缓存:Anthropic 工具结果
在智能体循环中,于每轮工具调用前插入 cache_control 缓存断点。
请求级缓存设置占用四个缓存槽位中的一个。每个显式节点断点占用一个槽位。达到四个槽位后,这些变换不再添加标记。
行为
当请求提交工具结果时,此变换在最后一个工具结果上插入 Anthropic ephemeral cache_control 缓存断点。每次提交工具结果时,缓存断点随会话前进。
没有工具结果的请求原样通过。
参考信息
| 属性 | 值 |
|---|---|
| 类型 ID | cache_anthropic_tool_use |
| 阶段 | request |
| 范围 | Provider, API 密钥 |
适用场景
- 智能体客户端在 Anthropic 兼容上游上运行长工具循环。
- 你希望每轮迭代从缓存中重读会话前缀,而不是按全价支付输入费用。
配置
| 选项 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
ttl | string | 否 | "5m" | 5m 或 1h。插入的缓存断点的有效期。5m 发送 {"type": "ephemeral"},1h 额外添加 "ttl": "1h"。 |
启用 1h 前,请检查所选 Provider 的定价。缓存写入费用使用已配置的计费 Profile。
1h 断点位于 5m 断点之后时,Anthropic 会拒绝请求。所有 Anthropic cache_* 规则应使用相同的 ttl,或只在靠前的断点上使用 1h。
Provider 规则先于 API 密钥规则运行。后运行的规则会改写 Monoize 已插入断点的 TTL,因此 API 密钥规则覆盖 Provider 规则。客户端自带的 cache_control 始终保持不变。请在缓存规则之前执行修改或重排节点的变换。目标变化后,后续规则不会再覆盖原有标记。内容完全相同的节点也不再保留标记归属,以免误改客户端标记。
示例规则
{
"transform": "cache_anthropic_tool_use",
"enabled": true,
"phase": "request",
"models": [
"claude-*"
],
"config": { "ttl": "1h" }
}