<svg viewBox="0 0 1540 770" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" font-family="-apple-system, 'Segoe UI', Helvetica, Arial, sans-serif">
  <rect width="1540" height="770" fill="#ffffff"/>
  <defs>
    <g id="i-monitor" fill="none"><rect x="1" y="1" width="16" height="11" rx="1.5"/><path d="M5 7 h2 l1.5 -3 2 5 1.5 -2 h1"/><line x1="9" y1="12" x2="9" y2="15"/><line x1="5" y1="15.5" x2="13" y2="15.5"/></g>
    <g id="i-layers" fill="none"><path d="M9 1 L17 5 9 9 1 5 z"/><path d="M1 9 l8 4 8 -4"/><path d="M1 13 l8 4 8 -4"/></g>
    <g id="i-eye" fill="none"><path d="M1 9 C4.5 3.5 13.5 3.5 17 9 C13.5 14.5 4.5 14.5 1 9 z"/><circle cx="9" cy="9" r="2.8"/></g>
    <g id="i-file" fill="none"><path d="M3 1 h8 l4 4 v12 h-12 z"/><path d="M11 1 v4 h4"/></g>
    <g id="i-flag" fill="none"><line x1="3" y1="1" x2="3" y2="17"/><path d="M3 2 h11 l-2.5 3.5 2.5 3.5 h-11"/></g>
    <g id="i-doc" fill="none"><rect x="2" y="1" width="14" height="16" rx="2"/><line x1="5" y1="6" x2="13" y2="6"/><line x1="5" y1="9.5" x2="13" y2="9.5"/><line x1="5" y1="13" x2="10" y2="13"/></g>
    <g id="i-lock" fill="none"><rect x="3" y="8" width="12" height="9" rx="2"/><path d="M6 8 V5.5 a3 3 0 0 1 6 0 V8"/></g>
    <g id="i-stack" fill="none"><rect x="2" y="2" width="14" height="4" rx="1"/><rect x="2" y="8" width="14" height="4" rx="1"/><rect x="2" y="14" width="14" height="3" rx="1"/></g>
    <g id="i-bolt" fill="none"><path d="M10 1 L3 10.5 h5 L8 17 L15 7.5 h-5 z"/></g>
    <g id="i-shieldcheck" fill="none"><path d="M9 1 L16 3.5 V9 c0 4.5 -3.5 7 -7 8 c-3.5 -1 -7 -3.5 -7 -8 V3.5 z"/><path d="M5.5 8.5 l2.5 2.5 4.5 -4.5"/></g>
  </defs>

  <text x="60" y="64" font-size="30" font-weight="700" fill="#0f172a">每一跳会把 prompt 保留多久</text>
  <text x="60" y="96" font-size="19" fill="#475569">提供商的保留窗口有限，且因功能而异；无限期存储位于 API 的你这一侧。</text>

  <!-- gridlines at tick positions -->
  <line x1="500" y1="132" x2="500" y2="660" stroke="#e2e8f0" stroke-width="1.5"/>
  <line x1="810" y1="132" x2="810" y2="660" stroke="#e2e8f0" stroke-width="1.5"/>
  <line x1="990" y1="132" x2="990" y2="660" stroke="#e2e8f0" stroke-width="1.5"/>
  <line x1="1190" y1="132" x2="1190" y2="660" stroke="#e2e8f0" stroke-width="1.5"/>
  <line x1="1390" y1="132" x2="1390" y2="660" stroke="#e2e8f0" stroke-width="1.5"/>

  <!-- row 1: tracing SaaS -->
  <use xlink:href="#i-monitor" href="#i-monitor" x="60" y="161" stroke="#dc2626" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
  <text x="90" y="176" font-size="17" fill="#0f172a">Tracing / 可观测性 SaaS</text>
  <rect x="500" y="156" width="848" height="28" fill="#dc2626"/>
  <path d="M 1348 156 L 1380 170 L 1348 184 z" fill="#dc2626"/>
  <text x="514" y="176" font-size="15" fill="#ffffff">直到你将其删除</text>
  <text x="1334" y="178" font-size="21" font-weight="700" fill="#ffffff" text-anchor="end">&#8734;</text>

  <!-- row 2: memory / vector stores -->
  <use xlink:href="#i-layers" href="#i-layers" x="60" y="211" stroke="#dc2626" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
  <text x="90" y="226" font-size="17" fill="#0f172a">记忆 / 向量存储</text>
  <rect x="500" y="206" width="848" height="28" fill="#dc2626"/>
  <path d="M 1348 206 L 1380 220 L 1348 234 z" fill="#dc2626"/>
  <text x="514" y="226" font-size="15" fill="#ffffff">直到你将其删除</text>
  <text x="1334" y="228" font-size="21" font-weight="700" fill="#ffffff" text-anchor="end">&#8734;</text>

  <!-- row 3: gateway observability console -->
  <use xlink:href="#i-eye" href="#i-eye" x="60" y="261" stroke="#dc2626" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
  <text x="90" y="276" font-size="17" fill="#0f172a">网关可观测性控制台</text>
  <rect x="500" y="256" width="848" height="28" fill="#dc2626"/>
  <path d="M 1348 256 L 1380 270 L 1348 284 z" fill="#dc2626"/>
  <text x="514" y="276" font-size="15" fill="#ffffff">以项目设置为准</text>
  <text x="1334" y="278" font-size="21" font-weight="700" fill="#ffffff" text-anchor="end">&#8734;</text>

  <!-- row 4: uploaded files -->
  <use xlink:href="#i-file" href="#i-file" x="60" y="311" stroke="#dc2626" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
  <text x="90" y="326" font-size="17" fill="#0f172a">上传的文件（服务商 Files API）</text>
  <rect x="500" y="306" width="848" height="28" fill="#dc2626"/>
  <path d="M 1348 306 L 1380 320 L 1348 334 z" fill="#dc2626"/>
  <text x="514" y="326" font-size="15" fill="#ffffff">直到你将其删除</text>
  <text x="1334" y="328" font-size="21" font-weight="700" fill="#ffffff" text-anchor="end">&#8734;</text>

  <!-- row 5: abuse-flagged content -->
  <use xlink:href="#i-flag" href="#i-flag" x="60" y="361" stroke="#d97706" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
  <text x="90" y="376" font-size="17" fill="#0f172a">标记为滥用的内容</text>
  <rect x="500" y="356" width="690" height="28" fill="#d97706"/>
  <text x="1202" y="376" font-size="15" fill="#334155">最长 2 年（消费者版政策）</text>

  <!-- row 6: standard API logs -->
  <use xlink:href="#i-doc" href="#i-doc" x="60" y="411" stroke="#d97706" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
  <text x="90" y="426" font-size="17" fill="#0f172a">标准 API 日志（无 ZDR）</text>
  <rect x="500" y="406" width="490" height="28" fill="#d97706"/>
  <text x="1002" y="426" font-size="15" fill="#334155">约 30 天内删除</text>

  <!-- row 7: Fable 5 mandated window -->
  <use xlink:href="#i-lock" href="#i-lock" x="60" y="461" stroke="#d97706" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
  <text x="90" y="476" font-size="17" fill="#0f172a">Fable 5 强制保留期</text>
  <rect x="500" y="456" width="490" height="28" fill="#d97706"/>
  <text x="1002" y="476" font-size="15" fill="#334155">30 天，即使采用 ZDR 也必须保留</text>

  <!-- row 8: batch jobs -->
  <use xlink:href="#i-stack" href="#i-stack" x="60" y="511" stroke="#d97706" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
  <text x="90" y="526" font-size="17" fill="#0f172a">批处理作业</text>
  <rect x="500" y="506" width="475" height="28" fill="#d97706"/>
  <text x="987" y="526" font-size="15" fill="#334155">29 天</text>

  <!-- row 9: prompt caches -->
  <use xlink:href="#i-bolt" href="#i-bolt" x="60" y="561" stroke="#d97706" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
  <text x="90" y="576" font-size="17" fill="#0f172a">prompt 缓存</text>
  <rect x="500" y="556" width="310" height="28" fill="#d97706"/>
  <text x="822" y="576" font-size="15" fill="#334155">数分钟至 24 小时</text>

  <!-- row 10: ZDR-eligible payloads -->
  <use xlink:href="#i-shieldcheck" href="#i-shieldcheck" x="60" y="611" stroke="#059669" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
  <text x="90" y="626" font-size="17" fill="#0f172a">符合 ZDR 条件的 payload</text>
  <circle cx="500" cy="620" r="10" fill="#059669"/>
  <text x="522" y="626" font-size="15" font-weight="600" fill="#059669">零：不写入持久化存储</text>

  <!-- axis -->
  <line x1="500" y1="660" x2="1390" y2="660" stroke="#94a3b8" stroke-width="2"/>
  <text x="500" y="690" font-size="15" fill="#475569" text-anchor="middle">0</text>
  <text x="810" y="690" font-size="15" fill="#475569" text-anchor="middle">24 小时</text>
  <text x="990" y="690" font-size="15" fill="#475569" text-anchor="middle">30 天</text>
  <text x="1190" y="690" font-size="15" fill="#475569" text-anchor="middle">2 年</text>
  <text x="1390" y="690" font-size="15" fill="#475569" text-anchor="middle">直至删除</text>

  <text x="60" y="738" font-size="15" fill="#475569">所示窗口为本文所链接文档中的默认值。时间轴经过压缩，并非线性。</text>
</svg>
