kimi-k3 @ low · cursor

cursorlow
config
kimi-k3-eff-low--cli--cursor--dev
batch
2026-07-19--unified
transport
cursor-agent-cli-isolated-home
protocol
cli · plan
served model
kimi-k3-low
采集于
2026年7月18日 11:54 · N=2
variant
live
slot 0 · P-q · sandboxed iframe
kimi-k3 @low · cursor P-q slot 0 截图

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

similarity 邻居本 session 没有 similarity 数据 —— 这个 batch 没有计算 pairs。

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

  • namematch
  • conditionmatch
  • datematch
  • max tempmismatch展示值:17
  • min tempmatch展示值:16
  • hourlymismatchcoverage 0/24 · 0 命中 · 5 不符 · 19 未展示
  • 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.0">
<title>Weather Card</title>
<style>
  * { margin: 0; padding: 0; box-sizing: border-box; }

  :root {
    --card-w: 720px;
  }

  body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, Helvetica, Arial, sans-serif;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(1200px 800px at 20% 10%, #2b3a67 0%, #141a2e 55%, #0b0f1d 100%);
    color: #eef2ff;
    padding: 32px;
  }

  .card {
    width: var(--card-w);
    border-radius: 28px;
    padding: 40px 44px 36px;
    position: relative;
    overflow: hidden;
    background: linear-gradient(160deg, rgba(255,255,255,0.10), rgba(255,255,255,0.03));
    border: 1px solid rgba(255,255,255,0.14);
    box-shadow: 0 30px 80px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.15);
    backdrop-filter: blur(14px);
  }

  .card::before {
    content: "";
    position: absolute;
    width: 420px; height: 420px;
    border-radius: 50%;
    top: -180px; right: -140px;
    background: radial-gradient(circle, var(--glow, rgba(120,170,255,0.35)) 0%, transparent 70%);
    pointer-events: none;
  }

  .header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    position: relative;
  }

  .location {
    font-size: 34px;
    font-weight: 700;
    letter-spacing: -0.5px;
  }

  .date {
    margin-top: 6px;
    font-size: 15px;
    color: #aab4d4;
    letter-spacing: 0.4px;
    text-transform: uppercase;
  }

  .icon {
    font-size: 84px;
    line-height: 1;
    filter: drop-shadow(0 8px 24px rgba(0,0,0,0.4));
  }

  .condition {
    margin-top: 10px;
    font-size: 19px;
    font-weight: 500;
    color: #cdd7f5;
  }

  .temps {
    display: flex;
    gap: 40px;
    margin-top: 28px;
    position: relative;
  }

  .temp-block .label {
    font-size: 12px;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: #8b96b8;
    margin-bottom: 6px;
  }

  .temp-block .value {
    font-size: 56px;
    font-weight: 700;
    letter-spacing: -2px;
    line-height: 1;
  }

  .temp-block .value .deg { font-size: 30px; font-weight: 400; color: #9fb0d8; vertical-align: super; }
  .temp-max .value { color: #ffd9a0; }
  .temp-min .value { color: #a8d8ff; }

  .divider {
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.18), transparent);
    margin: 32px 0 24px;
  }

  .hourly-title {
    font-size: 12px;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: #8b96b8;
    margin-bottom: 16px;
  }

  .chart-wrap { position: relative; }

  svg.chart { width: 100%; height: 160px; display: block; overflow: visible; }

  .hour-labels {
    display: flex;
    justify-content: space-between;
    margin-top: 8px;
    font-size: 11px;
    color: #7c87a8;
    font-variant-numeric: tabular-nums;
  }

  .error, .loading {
    text-align: center;
    padding: 60px 20px;
    font-size: 18px;
    color: #cdd7f5;
  }

  .error .big { font-size: 44px; margin-bottom: 14px; }
  .error small { display: block; margin-top: 10px; color: #8b96b8; font-size: 13px; }

  .spinner {
    width: 42px; height: 42px;
    border: 3px solid rgba(255,255,255,0.15);
    border-top-color: #a8c4ff;
    border-radius: 50%;
    margin: 0 auto 18px;
    animation: spin 0.9s linear infinite;
  }

  @keyframes spin { to { transform: rotate(360deg); } }
</style>
</head>
<body>
  <div class="card" id="card">
    <div class="loading"><div class="spinner"></div>Loading weather…</div>
  </div>

<script>
(function () {
  var params = new URLSearchParams(location.search);
  var lat = parseFloat(params.get('lat')) || 52.52;
  var lon = parseFloat(params.get('lon')) || 13.405;
  var name = params.get('name') || 'Berlin';
  var dateParam = params.get('date');
  var todayUTC = new Date().toISOString().slice(0, 10);
  var date = /^\d{4}-\d{2}-\d{2}$/.test(dateParam || '') ? dateParam : todayUTC;

  var WMO = {
    0:  ['Clear sky', '☀️', 'rgba(255,200,90,0.40)'],
    1:  ['Mainly clear', '🌤️', 'rgba(255,210,120,0.35)'],
    2:  ['Partly cloudy', '⛅', 'rgba(160,190,255,0.35)'],
    3:  ['Overcast', '☁️', 'rgba(150,160,190,0.35)'],
    45: ['Fog', '🌫️', 'rgba(160,170,190,0.30)'],
    48: ['Depositing rime fog', '🌫️', 'rgba(160,170,190,0.30)'],
    51: ['Light drizzle', '🌦️', 'rgba(130,170,230,0.35)'],
    53: ['Drizzle', '🌦️', 'rgba(130,170,230,0.35)'],
    55: ['Dense drizzle', '🌧️', 'rgba(120,160,230,0.40)'],
    56: ['Freezing drizzle', '🌧️', 'rgba(140,180,240,0.35)'],
    57: ['Freezing drizzle', '🌧️', 'rgba(140,180,240,0.35)'],
    61: ['Light rain', '🌦️', 'rgba(120,160,235,0.40)'],
    63: ['Rain', '🌧️', 'rgba(110,150,235,0.45)'],
    65: ['Heavy rain', '🌧️', 'rgba(100,140,240,0.50)'],
    66: ['Freezing rain', '🌧️', 'rgba(140,180,250,0.40)'],
    67: ['Freezing rain', '🌧️', 'rgba(140,180,250,0.40)'],
    71: ['Light snow', '🌨️', 'rgba(200,220,255,0.35)'],
    73: ['Snow', '🌨️', 'rgba(200,220,255,0.40)'],
    75: ['Heavy snow', '❄️', 'rgba(210,225,255,0.45)'],
    77: ['Snow grains', '❄️', 'rgba(210,225,255,0.40)'],
    80: ['Light showers', '🌦️', 'rgba(120,160,235,0.40)'],
    81: ['Rain showers', '🌧️', 'rgba(110,150,240,0.45)'],
    82: ['Violent showers', '⛈️', 'rgba(130,120,240,0.50)'],
    85: ['Snow showers', '🌨️', 'rgba(200,220,255,0.40)'],
    86: ['Snow showers', '🌨️', 'rgba(200,220,255,0.40)'],
    95: ['Thunderstorm', '⛈️', 'rgba(150,120,250,0.50)'],
    96: ['Thunderstorm with hail', '⛈️', 'rgba(150,120,250,0.50)'],
    99: ['Thunderstorm with hail', '⛈️', 'rgba(150,120,250,0.50)']
  };

  function fmtDate(d) {
    var dt = new Date(d + 'T00:00:00Z');
    return dt.toLocaleDateString('en-GB', { weekday: 'long', day: 'numeric', month: 'long', year: 'numeric', timeZone: 'UTC' });
  }

  function showError(msg) {
    document.getElementById('card').innerHTML =
      '<div class="error"><div class="big">⚠️</div>Weather data could not be loaded.<small>' + msg + '</small></div>';
  }

  var endpoint = date < todayUTC ? '/api/om/archive' : '/api/om/forecast';
  var url = endpoint +
    '?latitude=' + encodeURIComponent(lat) +
    '&longitude=' + encodeURIComponent(lon) +
    '&daily=temperature_2m_max,temperature_2m_min,weather_code' +
    '&hourly=temperature_2m' +
    '&timezone=UTC&temperature_unit=celsius' +
    '&start_date=' + date + '&end_date=' + date;

  fetch(url)
    .then(function (r) {
      if (!r.ok) throw new Error('HTTP ' + r.status);
      return r.json();
    })
    .then(function (data) {
      if (!data || !data.daily || !data.daily.temperature_2m_max || !data.daily.temperature_2m_max.length) {
        throw new Error('No data available for this date.');
      }
      var tmax = data.daily.temperature_2m_max[0];
      var tmin = data.daily.temperature_2m_min[0];
      var code = data.daily.weather_code[0];
      var meta = WMO[code] || ['Unknown', '❓', 'rgba(120,170,255,0.35)'];

      var hourly = (data.hourly && data.hourly.temperature_2m) ? data.hourly.temperature_2m.slice(0, 24) : [];

      document.getElementById('card').style.setProperty('--glow', meta[2]);

      var html =
        '<div class="header">' +
          '<div>' +
            '<div class="location">' + escapeHtml(name) + '</div>' +
            '<div class="date">' + fmtDate(date) + '</div>' +
            '<div class="condition">' + meta[0] + '</div>' +
          '</div>' +
          '<div class="icon">' + meta[1] + '</div>' +
        '</div>' +
        '<div class="temps">' +
          '<div class="temp-block temp-max"><div class="label">High</div><div class="value">' + Math.round(tmax) + '<span class="deg">°C</span></div></div>' +
          '<div class="temp-block temp-min"><div class="label">Low</div><div class="value">' + Math.round(tmin) + '<span class="deg">°C</span></div></div>' +
        '</div>' +
        '<div class="divider"></div>' +
        '<div class="hourly-title">Hourly temperature</div>' +
        '<div class="chart-wrap">' + buildChart(hourly) + '</div>' +
        '<div class="hour-labels"><span>00:00</span><span>06:00</span><span>12:00</span><span>18:00</span><span>23:00</span></div>';

      document.getElementById('card').innerHTML = html;
    })
    .catch(function (e) {
      showError(e.message || 'Unexpected error.');
    });

  function escapeHtml(s) {
    return String(s).replace(/[&<>"']/g, function (c) {
      return { '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' }[c];
    });
  }

  function buildChart(temps) {
    if (!temps.length) return '<div style="color:#8b96b8;font-size:14px;">No hourly data.</div>';
    var W = 632, H = 160, padX = 8, padY = 20;
    var min = Math.min.apply(null, temps);
    var max = Math.max.apply(null, temps);
    if (max - min < 1) { max = min + 1; }
    var stepX = (W - padX * 2) / (temps.length - 1);
    function x(i) { return padX + i * stepX; }
    function y(t) { return padY + (1 - (t - min) / (max - min)) * (H - padY * 2); }

    var pts = temps.map(function (t, i) { return [x(i), y(t)]; });
    var line = pts.map(function (p, i) { return (i ? 'L' : 'M') + p[0].toFixed(1) + ' ' + p[1].toFixed(1); }).join(' ');
    var area = line + ' L' + x(temps.length - 1).toFixed(1) + ' ' + H + ' L' + padX + ' ' + H + ' Z';

    var dots = '';
    var labels = '';
    for (var i = 0; i < temps.length; i += 3) {
      dots += '<circle cx="' + x(i).toFixed(1) + '" cy="' + y(temps[i]).toFixed(1) + '" r="3" fill="#a8c4ff"/>';
      labels += '<text x="' + x(i).toFixed(1) + '" y="' + (y(temps[i]) - 8).toFixed(1) + '" text-anchor="middle" font-size="10" fill="#9fb0d8">' + Math.round(temps[i]) + '°</text>';
    }

    return '<svg class="chart" viewBox="0 0 ' + W + ' ' + H + '" preserveAspectRatio="none">' +
      '<defs><linearGradient id="ag" x1="0" y1="0" x2="0" y2="1">' +
        '<stop offset="0%" stop-color="rgba(140,180,255,0.45)"/>' +
        '<stop offset="100%" stop-color="rgba(140,180,255,0)"/>' +
      '</linearGradient></defs>' +
      '<path d="' + area + '" fill="url(#ag)"/>' +
      '<path d="' + line + '" fill="none" stroke="#a8c4ff" stroke-width="2.5" stroke-linejoin="round" stroke-linecap="round"/>' +
      dots + labels +
    '</svg>';
  }
})();
</script>
</body>
</html>

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

bytes 总计10,503html / css / js344 / 3,370 / 6,789
dom 节点11dom 深度5
css 规则27含 js
brightness37.4contrast22.7
colorfulness19.3留白60.8%

该 slot 的 telemetry

prompt tokens9,246completion tokens3,687
total tokens12,933wall39.2 s
costrequest id
config.json554 B
{
  "N": 2,
  "auth": {
    "credential_ref": "WCB_NONE",
    "method": "oauth-login"
  },
  "billing": "plan",
  "config_id": "kimi-k3-eff-low--cli--cursor--dev",
  "effort": "low",
  "family": "kimi",
  "m": {
    "min": 2,
    "q": 2
  },
  "model_id": "kimi-k3",
  "protocol": "cli",
  "served_model": "kimi-k3-low",
  "telemetry": {
    "completion_tokens": 13876,
    "cost_usd": null,
    "prompt_tokens": 51199,
    "total_tokens": 65075,
    "wall_ms": 154343
  },
  "transport": "cursor-agent-cli-isolated-home",
  "vendor_sanction_ref": null
}
send-log2.5 KB
{
  "N": 2,
  "batch_id": "2026-08-13--cursor-s2",
  "config_id": "kimi-k3-eff-low--cli--cursor--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-12T22:46:54.104359+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T22:46:14.856317+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-08-12T22:47:46.577109+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T22:46:57.968659+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-08-12T22:48:20.218700+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T22:47:49.869882+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-08-12T22:48:59.556937+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T22:48:23.414336+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
    }
  }
}