gpt-5.6-terra @ low · kiro

kirolow
config
gpt-5.6-terra-eff-low--cli--kiro--dev
batch
2026-07-19--unified
transport
kiro-cli-isolated-home-github-social
protocol
cli · plan
served model
gpt-5.6-terra
采集于
2026年7月18日 11:54 · N=2
variant
live
slot 0 · P-q · sandboxed iframe
gpt-5.6-terra @low · kiro P-q slot 0 截图

截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。

similarity 邻居

限于 session 2026-07-19--unified

similarity 衡量本 session 内的趋同程度 —— 不是质量。

Fidelity —— 卡片展示的数据对不对?

  • namematch
  • conditionmatch
  • datematch
  • max tempmatch展示值:25
  • min tempmatch展示值:16
  • hourlynot-foundcoverage · 0 命中 · 0 不符 · 24 未展示
  • request sidematch0 处违规

extractor fidelity-extractor-v1+Berlin-2026-07-15

源码 —— 原始模型输出,一字节未改

下载 card.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Weather Card</title>
<style>
  :root {
    --ink: #f8fbff;
    --muted: rgba(239,246,255,.67);
    --line: rgba(255,255,255,.16);
    --blue: #70c4ff;
    --gold: #ffd66b;
  }
  * { box-sizing: border-box; }
  body {
    margin: 0; min-width: 1280px; min-height: 800px;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--ink); overflow: hidden;
    background:
      radial-gradient(ellipse 62% 75% at 86% 4%, rgba(52,126,230,.45), transparent 60%),
      radial-gradient(ellipse 44% 65% at 8% 98%, rgba(17,94,137,.5), transparent 64%),
      linear-gradient(135deg, #07162e 0%, #0b2850 48%, #123a6c 100%);
  }
  .grain {
    position: fixed; inset: 0; opacity: .14; pointer-events: none;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
  }
  main {
    width: 1040px; height: 650px; margin: 75px auto;
    padding: 42px 46px 37px; position: relative; overflow: hidden;
    border: 1px solid rgba(255,255,255,.18); border-radius: 30px;
    background: linear-gradient(120deg, rgba(255,255,255,.14), rgba(255,255,255,.045));
    box-shadow: 0 28px 70px rgba(0,8,28,.46), inset 0 1px rgba(255,255,255,.15);
    backdrop-filter: blur(18px);
  }
  main::after {
    content: ""; position: absolute; width: 390px; height: 390px; right: -120px; top: -110px;
    border-radius: 50%; background: radial-gradient(circle, rgba(255,214,107,.2), transparent 67%);
    pointer-events: none;
  }
  .top { display: flex; justify-content: space-between; align-items: flex-start; position: relative; z-index: 1; }
  .eyebrow { margin: 0 0 8px; color: var(--blue); font-size: 11px; font-weight: 750; letter-spacing: .18em; text-transform: uppercase; }
  h1 { margin: 0; font-size: 37px; line-height: 1.08; letter-spacing: -.045em; }
  .date { margin: 9px 0 0; color: var(--muted); font-size: 15px; }
  .badge { display: flex; align-items: center; gap: 8px; margin-top: 5px; padding: 9px 13px; border: 1px solid var(--line); border-radius: 99px; color: rgba(255,255,255,.8); font-size: 12px; }
  .badge i { width: 7px; height: 7px; background: #72e2b4; border-radius: 50%; box-shadow: 0 0 12px #72e2b4; }
  .hero { height: 245px; display: flex; align-items: center; position: relative; z-index: 1; }
  .weather-icon { width: 155px; height: 140px; margin-right: 26px; flex: 0 0 auto; filter: drop-shadow(0 10px 16px rgba(0,0,0,.18)); }
  .reading { display: flex; align-items: center; gap: 20px; }
  .temperature { font-size: 112px; font-weight: 250; line-height: .82; letter-spacing: -.085em; }
  .unit { font-size: 39px; vertical-align: top; position: relative; top: 4px; margin-left: 5px; color: rgba(255,255,255,.8); font-weight: 300; }
  .condition { padding-left: 20px; border-left: 1px solid var(--line); }
  .condition strong { display: block; font-size: 20px; font-weight: 650; letter-spacing: -.025em; }
  .condition span { display: block; margin-top: 6px; color: var(--muted); font-size: 13px; }
  .range { margin-left: auto; display: flex; gap: 26px; padding: 19px 0 19px 31px; border-left: 1px solid var(--line); }
  .range-item small { display: block; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
  .range-item b { display: block; margin-top: 6px; font-size: 25px; font-weight: 500; letter-spacing: -.04em; }
  .range-item.min b { color: #9ed9ff; }
  .chart-panel { position: relative; z-index: 1; padding-top: 19px; border-top: 1px solid var(--line); }
  .chart-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 10px; }
  .chart-head h2 { margin: 0; font-size: 14px; font-weight: 650; letter-spacing: -.015em; }
  .chart-head p { margin: 0; color: var(--muted); font-size: 11px; }
  #chart { display: block; width: 100%; height: 176px; overflow: visible; }
  .loading, .error { height: 450px; display: grid; place-items: center; text-align: center; color: var(--muted); font-size: 17px; }
  .error { color: #ffd2d2; }
</style>
</head>
<body>
<div class="grain"></div>
<main id="card"><div class="loading">Loading forecast…</div></main>
<script>
(() => {
  const qs = new URLSearchParams(location.search);
  const utcToday = new Date().toISOString().slice(0, 10);
  const date = /^\d{4}-\d{2}-\d{2}$/.test(qs.get("date") || "") ? qs.get("date") : utcToday;
  const lat = qs.get("lat") || "52.52", lon = qs.get("lon") || "13.405";
  const name = qs.get("name") || "Berlin";
  const isPast = date < utcToday;
  const params = new URLSearchParams({
    latitude: lat, longitude: lon,
    daily: "temperature_2m_max,temperature_2m_min,weather_code",
    hourly: "temperature_2m", timezone: "UTC", temperature_unit: "celsius",
    start_date: date, end_date: date
  });

  const conditions = {
    0:["Clear sky","clear"], 1:["Mainly clear","partly"], 2:["Partly cloudy","partly"], 3:["Overcast","cloud"],
    45:["Foggy","fog"], 48:["Rime fog","fog"], 51:["Light drizzle","rain"], 53:["Drizzle","rain"], 55:["Heavy drizzle","rain"],
    56:["Freezing drizzle","rain"], 57:["Freezing drizzle","rain"], 61:["Light rain","rain"], 63:["Rain","rain"], 65:["Heavy rain","rain"],
    66:["Freezing rain","rain"], 67:["Heavy freezing rain","rain"], 71:["Light snow","snow"], 73:["Snowfall","snow"], 75:["Heavy snowfall","snow"],
    77:["Snow grains","snow"], 80:["Rain showers","rain"], 81:["Rain showers","rain"], 82:["Heavy showers","rain"],
    85:["Snow showers","snow"], 86:["Heavy snow showers","snow"], 95:["Thunderstorm","storm"], 96:["Thunderstorm with hail","storm"], 99:["Thunderstorm with hail","storm"]
  };
  const icon = type => {
    if (type === "rain" || type === "storm") return `<svg class="weather-icon" viewBox="0 0 180 150" aria-hidden="true"><path d="M55 89h72c19 0 31-12 31-28 0-17-13-29-30-29-6-19-21-29-41-29-23 0-41 17-43 39-17 1-29 13-29 28 0 11 7 19 17 19h23" fill="rgba(213,239,255,.87)" stroke="white" stroke-width="5" stroke-linejoin="round"/><path d="M59 106l-7 19m34-19l-7 19m34-19l-7 19m34-19l-7 19" stroke="#72caff" stroke-width="7" stroke-linecap="round"/>${type==="storm"?'<path d="M102 94l-16 28h15l-8 22 28-34h-16l10-16z" fill="#ffd66b"/>':""}</svg>`;
    if (type === "cloud" || type === "fog") return `<svg class="weather-icon" viewBox="0 0 180 150"><path d="M37 105h94c19 0 32-13 32-30 0-18-14-31-32-31-6-20-22-32-44-32-25 0-44 18-46 42-17 1-29 13-29 29 0 13 10 22 25 22z" fill="rgba(218,239,255,.78)" stroke="white" stroke-width="5"/><path d="M42 121h91m-73 14h56" stroke="rgba(166,219,255,.8)" stroke-width="5" stroke-linecap="round"/></svg>`;
    if (type === "snow") return `<svg class="weather-icon" viewBox="0 0 180 150"><path d="M45 88h83c18 0 30-12 30-28 0-17-13-29-30-29-6-19-21-29-41-29-23 0-41 17-43 39-17 1-29 13-29 28 0 11 8 19 30 19z" fill="rgba(220,242,255,.85)" stroke="white" stroke-width="5"/><g stroke="#d8f2ff" stroke-width="4" stroke-linecap="round"><path d="M57 111v20m-9-10h18m-15-7 12 14m0-14-12 14M92 111v20m-9-10h18m-15-7 12 14m0-14-12 14m64-17v20m-9-10h18m-15-7 12 14m0-14-12 14"/></g></svg>`;
    return `<svg class="weather-icon" viewBox="0 0 180 150"><circle cx="84" cy="70" r="38" fill="#ffd66b"/><g stroke="#ffd66b" stroke-width="7" stroke-linecap="round"><path d="M84 12v-10M84 138v-10M26 70H14m140 0h-12M43 29l-9-9m91 100-9-9M125 29l9-9M43 111l-9 9"/></g>${type==="partly"?'<path d="M73 118h62c16 0 27-10 27-25 0-15-12-26-27-26-5-17-18-26-36-26-19 0-34 13-37 31-14 1-24 11-24 24 0 13 10 22 35 22z" fill="rgba(222,241,255,.9)" stroke="white" stroke-width="4"/>':""}</svg>`;
  };
  const formatDate = d => new Intl.DateTimeFormat("en-US",{weekday:"long",month:"long",day:"numeric",year:"numeric",timeZone:"UTC"}).format(new Date(d+"T12:00:00Z"));
  const n = v => `${Math.round(v)}°`;

  fetch(`${isPast ? "/api/om/archive" : "/api/om/forecast"}?${params}`)
    .then(r => { if (!r.ok) throw new Error(); return r.json(); })
    .then(data => {
      const daily = data.daily;
      if (!daily?.temperature_2m_max?.length || !data.hourly?.temperature_2m) throw new Error();
      const max = daily.temperature_2m_max[0], min = daily.temperature_2m_min[0];
      const code = daily.weather_code[0], [condition,type] = conditions[code] || ["Weather conditions","partly"];
      const temps = data.hourly.temperature_2m;
      const times = data.hourly.time;
      document.getElementById("card").innerHTML = `
        <section class="top"><div><p class="eyebrow">Daily weather</p><h1>${escapeHtml(name)}</h1><p class="date">${formatDate(date)}</p></div><div class="badge"><i></i>${isPast ? "Historical observation" : "Forecast"}</div></section>
        <section class="hero">${icon(type)}<div class="reading"><div class="temperature">${Math.round(max)}<span class="unit">°C</span></div><div class="condition"><strong>${condition}</strong><span>High for the day</span></div></div><div class="range"><div class="range-item"><small>HIGH</small><b>${n(max)}</b></div><div class="range-item min"><small>LOW</small><b>${n(min)}</b></div></div></section>
        <section class="chart-panel"><div class="chart-head"><h2>Hourly temperature</h2><p>UTC · Celsius</p></div><svg id="chart" viewBox="0 0 948 176" preserveAspectRatio="none" aria-label="Hourly temperature chart"></svg></section>`;
      drawChart(temps, times);
    })
    .catch(() => document.getElementById("card").innerHTML = `<div class="error">Weather data could not be loaded.<br><small style="margin-top:9px;color:rgba(255,220,220,.65)">Please try again shortly.</small></div>`);

  function drawChart(values, times) {
    const svg = document.getElementById("chart"), w=948, h=176, pad={l:4,r:4,t:17,b:28};
    const lo=Math.floor(Math.min(...values)/5)*5-1, hi=Math.ceil(Math.max(...values)/5)*5+1;
    const x=i => pad.l+i*(w-pad.l-pad.r)/(values.length-1), y=v => pad.t+(hi-v)*(h-pad.t-pad.b)/(hi-lo);
    const points=values.map((v,i)=>`${x(i)},${y(v)}`).join(" ");
    const area=`${pad.l},${h-pad.b} ${points} ${w-pad.r},${h-pad.b}`;
    let labels = "";
    [0,6,12,18,23].forEach(i => labels += `<text x="${x(i)}" y="${h-5}" text-anchor="${i===0?"start":i===23?"end":"middle"}" fill="rgba(239,246,255,.54)" font-size="10" font-family="system-ui">${times[i]?.slice(11,16) || String(i).padStart(2,"0")+":00"}</text>`);
    svg.innerHTML = `<defs><linearGradient id="area" x1="0" y1="0" x2="0" y2="1"><stop stop-color="#77caff" stop-opacity=".42"/><stop offset="1" stop-color="#77caff" stop-opacity="0"/></linearGradient></defs>
      <line x1="0" y1="${y((lo+hi)/2)}" x2="${w}" y2="${y((lo+hi)/2)}" stroke="rgba(255,255,255,.11)" stroke-dasharray="3 5"/>
      <polygon points="${area}" fill="url(#area)"/><polyline points="${points}" fill="none" stroke="#91d5ff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
      <circle cx="${x(0)}" cy="${y(values[0])}" r="4" fill="#fff" stroke="#70c4ff" stroke-width="3"/>${labels}`;
  }
  function escapeHtml(value) { const d=document.createElement("div"); d.textContent=value; return d.innerHTML; }
})();
</script>
</body>
</html>

L1 —— 廉价的确定性描述量

bytes 总计11,393html / css / js320 / 4,218 / 6,855
dom 节点11dom 深度4
css 规则31含 js
brightness60.3contrast23.8
colorfulness31.2留白44.3%

该 slot 的 telemetry

prompt tokens0completion tokens0
total tokens0wall30.1 s
costrequest id
config.json567 B
{
  "N": 2,
  "auth": {
    "credential_ref": "WCB_NONE",
    "method": "oauth-login"
  },
  "billing": "plan",
  "config_id": "gpt-5.6-terra-eff-low--cli--kiro--dev",
  "effort": "low",
  "family": "gpt",
  "m": {
    "min": 2,
    "q": 2
  },
  "model_id": "gpt-5.6-terra",
  "protocol": "cli",
  "served_model": "gpt-5.6-terra",
  "telemetry": {
    "completion_tokens": null,
    "cost_usd": null,
    "prompt_tokens": null,
    "total_tokens": null,
    "wall_ms": 96787
  },
  "transport": "kiro-cli-isolated-home-github-social",
  "vendor_sanction_ref": null
}
send-log2.5 KB
{
  "N": 2,
  "batch_id": "2026-07-18--kiro-cli",
  "config_id": "gpt-5.6-terra-eff-low--cli--kiro--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-18T18:49:42.682681+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-18T18:49:12.513473+00:00"
        }
      ],
      "block_index": 0,
      "model_reaching_attempt_index": 0,
      "slot_index": 0,
      "terminal_state": "valid",
      "variant": "P-q"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-18T18:50:07.003398+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-18T18:49:46.801172+00:00"
        }
      ],
      "block_index": 0,
      "model_reaching_attempt_index": 0,
      "slot_index": 0,
      "terminal_state": "valid",
      "variant": "P-min"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-18T18:50:33.094526+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-18T18:50:11.649859+00:00"
        }
      ],
      "block_index": 1,
      "model_reaching_attempt_index": 0,
      "slot_index": 1,
      "terminal_state": "valid",
      "variant": "P-min"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-18T18:51:01.684539+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-18T18:50:36.549371+00:00"
        }
      ],
      "block_index": 1,
      "model_reaching_attempt_index": 0,
      "slot_index": 1,
      "terminal_state": "valid",
      "variant": "P-q"
    }
  ],
  "retry_policy": {
    "max_unreachable_retries": 5,
    "rate_limit_backoff": {
      "max_attempts": 4,
      "max_total_ms": 60000
    }
  }
}