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

截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。
similarity 邻居
最近
claude-opus-4-8-thinking @low · cursor-xl0.72claude-opus-4-8-thinking @high · cursor0.71claude-opus-4-8 @low · kiro0.71claude-opus-4-8 @medium · kiro0.71claude-fable-5 @high · cursor0.71最远
north-mini-code-free · api0.50qwen3.5-plus · go0.53deepseek-v4-pro @high · api0.53nemotron-3-ultra-free · api0.53qwen3.6-plus · go0.53限于 session 2026-07-19--unified
similarity 衡量本 session 内的趋同程度 —— 不是质量。
Fidelity —— 卡片展示的数据对不对?
- namematch
- conditionmatch
- datematch
- max tempmatch展示值:25
- min tempmatch展示值:16
- hourlyambiguouscoverage · 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=1280, initial-scale=1">
<title>Weather Card</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
html, body {
width: 100%; min-height: 100vh;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
background: #0b1220;
color: #e8edf5;
display: flex; align-items: center; justify-content: center;
padding: 40px;
}
#app {
width: 1040px;
max-width: 100%;
}
.card {
position: relative;
border-radius: 28px;
overflow: hidden;
background: linear-gradient(160deg, #1e3a5f 0%, #2d5a8c 45%, #4a7fb5 100%);
box-shadow: 0 30px 80px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.08);
transition: background 0.6s ease;
}
.card::before {
content: "";
position: absolute; inset: 0;
background: radial-gradient(circle at 78% 18%, rgba(255,255,255,0.22), transparent 42%);
pointer-events: none;
}
.card-inner { position: relative; padding: 44px 52px 40px; }
.header {
display: flex; align-items: flex-start; justify-content: space-between;
gap: 24px;
}
.loc { display: flex; flex-direction: column; gap: 6px; }
.loc .name {
font-size: 32px; font-weight: 700; letter-spacing: -0.5px;
display: flex; align-items: center; gap: 10px;
}
.loc .name svg { opacity: 0.85; }
.loc .date { font-size: 15px; font-weight: 500; color: rgba(232,237,245,0.72); }
.loc .coords { font-size: 12.5px; color: rgba(232,237,245,0.5); letter-spacing: 0.3px; }
.cond-badge {
text-align: right;
display: flex; flex-direction: column; align-items: flex-end; gap: 4px;
}
.cond-badge .cond-text { font-size: 17px; font-weight: 600; }
.cond-badge .cond-sub { font-size: 12.5px; color: rgba(232,237,245,0.6); }
.main {
margin-top: 34px;
display: flex; align-items: center; gap: 40px;
}
.icon-wrap {
flex: 0 0 auto;
width: 150px; height: 150px;
display: flex; align-items: center; justify-content: center;
background: rgba(255,255,255,0.08);
border-radius: 50%;
box-shadow: inset 0 1px 0 rgba(255,255,255,0.15);
}
.temps { display: flex; flex-direction: column; gap: 10px; }
.temp-max {
font-size: 84px; font-weight: 200; line-height: 1; letter-spacing: -3px;
display: flex; align-items: flex-start;
}
.temp-max .deg { font-size: 40px; font-weight: 300; margin-top: 8px; }
.temp-meta { display: flex; gap: 22px; font-size: 16px; }
.temp-meta .chip {
display: flex; align-items: center; gap: 8px;
padding: 8px 16px; border-radius: 999px;
background: rgba(255,255,255,0.09);
}
.temp-meta .chip .label { color: rgba(232,237,245,0.65); font-size: 13px; }
.temp-meta .chip .val { font-weight: 600; }
.hourly {
margin-top: 40px;
background: rgba(0,0,0,0.16);
border-radius: 20px;
padding: 22px 24px 26px;
}
.hourly h3 {
font-size: 12px; font-weight: 600; text-transform: uppercase;
letter-spacing: 1.4px; color: rgba(232,237,245,0.6);
margin-bottom: 18px;
}
.chart { position: relative; }
.chart svg { display: block; width: 100%; height: 150px; overflow: visible; }
.chart .hlabel { font-size: 10px; fill: rgba(232,237,245,0.5); }
.chart .vlabel { font-size: 11px; fill: rgba(232,237,245,0.92); font-weight: 600; }
.chart .dot { fill: #ffd580; }
.msg {
padding: 80px 40px; text-align: center;
}
.msg .big { font-size: 22px; font-weight: 600; margin-bottom: 10px; }
.msg .small { font-size: 15px; color: rgba(232,237,245,0.7); }
.msg.error .big { color: #ffb4a2; }
.skeleton { color: rgba(232,237,245,0.6); }
</style>
</head>
<body>
<div id="app">
<div class="card"><div class="card-inner" id="content">
<div class="msg skeleton"><div class="big">Loading weather…</div></div>
</div></div>
</div>
<script>
(function () {
"use strict";
function qp(name, def) {
var v = new URLSearchParams(location.search).get(name);
return (v === null || v === "") ? def : v;
}
function todayUTC() {
var d = new Date();
return d.getUTCFullYear() + "-" + pad(d.getUTCMonth() + 1) + "-" + pad(d.getUTCDate());
}
function pad(n) { return (n < 10 ? "0" : "") + n; }
var lat = parseFloat(qp("lat", "52.52"));
var lon = parseFloat(qp("lon", "13.405"));
var name = qp("name", "Berlin");
var date = qp("date", todayUTC());
if (isNaN(lat)) lat = 52.52;
if (isNaN(lon)) lon = 13.405;
if (!/^\d{4}-\d{2}-\d{2}$/.test(date)) date = todayUTC();
// Weather code mapping (WMO)
var WMO = {
0: { t: "Clear sky", g: "clear" },
1: { t: "Mainly clear", g: "clear" },
2: { t: "Partly cloudy", g: "cloud" },
3: { t: "Overcast", g: "cloud" },
45: { t: "Fog", g: "fog" },
48: { t: "Depositing rime fog", g: "fog" },
51: { t: "Light drizzle", g: "rain" },
53: { t: "Moderate drizzle", g: "rain" },
55: { t: "Dense drizzle", g: "rain" },
56: { t: "Freezing drizzle", g: "rain" },
57: { t: "Dense freezing drizzle", g: "rain" },
61: { t: "Slight rain", g: "rain" },
63: { t: "Moderate rain", g: "rain" },
65: { t: "Heavy rain", g: "rain" },
66: { t: "Freezing rain", g: "rain" },
67: { t: "Heavy freezing rain", g: "rain" },
71: { t: "Slight snow", g: "snow" },
73: { t: "Moderate snow", g: "snow" },
75: { t: "Heavy snow", g: "snow" },
77: { t: "Snow grains", g: "snow" },
80: { t: "Slight rain showers", g: "rain" },
81: { t: "Moderate rain showers", g: "rain" },
82: { t: "Violent rain showers", g: "rain" },
85: { t: "Slight snow showers", g: "snow" },
86: { t: "Heavy snow showers", g: "snow" },
95: { t: "Thunderstorm", g: "storm" },
96: { t: "Thunderstorm w/ slight hail", g: "storm" },
99: { t: "Thunderstorm w/ heavy hail", g: "storm" }
};
var GRADIENTS = {
clear: "linear-gradient(160deg, #2b5876 0%, #4e8fc4 50%, #7fb2df 100%)",
cloud: "linear-gradient(160deg, #3a4a5c 0%, #5a6b7d 55%, #7c8b9c 100%)",
fog: "linear-gradient(160deg, #4a5560 0%, #6b7580 55%, #939ba5 100%)",
rain: "linear-gradient(160deg, #223047 0%, #37506b 55%, #547394 100%)",
snow: "linear-gradient(160deg, #4a6079 0%, #7593b0 55%, #aec6dd 100%)",
storm: "linear-gradient(160deg, #1b2130 0%, #33405a 55%, #4a5a7d 100%)"
};
function iconFor(group) {
var s = '<svg width="88" height="88" viewBox="0 0 88 88" fill="none" xmlns="http://www.w3.org/2000/svg">';
var sun = '<circle cx="44" cy="40" r="18" fill="#ffd580"/>' +
'<g stroke="#ffd580" stroke-width="4" stroke-linecap="round">' +
'<line x1="44" y1="8" x2="44" y2="16"/><line x1="44" y1="64" x2="44" y2="72"/>' +
'<line x1="12" y1="40" x2="20" y2="40"/><line x1="68" y1="40" x2="76" y2="40"/>' +
'<line x1="21" y1="17" x2="27" y2="23"/><line x1="61" y1="57" x2="67" y2="63"/>' +
'<line x1="67" y1="17" x2="61" y2="23"/><line x1="27" y1="57" x2="21" y2="63"/></g>';
var cloud = '<path d="M26 58a14 14 0 0 1 1.6-27.9 20 20 0 0 1 38 4.2A12 12 0 0 1 64 58H26z" fill="#e8edf5"/>';
var cloudDark = '<path d="M26 58a14 14 0 0 1 1.6-27.9 20 20 0 0 1 38 4.2A12 12 0 0 1 64 58H26z" fill="#c3ccd6"/>';
var drops = '<g stroke="#8ec5ff" stroke-width="4" stroke-linecap="round"><line x1="32" y1="66" x2="29" y2="78"/><line x1="46" y1="66" x2="43" y2="78"/><line x1="60" y1="66" x2="57" y2="78"/></g>';
var flakes = '<g fill="#ffffff"><circle cx="31" cy="72" r="3"/><circle cx="45" cy="76" r="3"/><circle cx="59" cy="72" r="3"/></g>';
var bolt = '<path d="M46 62l-12 0 8-14-14 0 16-22-4 16 12 0z" fill="#ffd580"/>';
if (group === "clear") s += sun;
else if (group === "cloud") s += '<circle cx="30" cy="32" r="12" fill="#ffd580"/>' + cloud;
else if (group === "fog") s += cloudDark + '<g stroke="#cfd7e0" stroke-width="4" stroke-linecap="round"><line x1="24" y1="68" x2="56" y2="68"/><line x1="30" y1="76" x2="62" y2="76"/></g>';
else if (group === "rain") s += cloud + drops;
else if (group === "snow") s += cloud + flakes;
else if (group === "storm") s += cloudDark + bolt;
else s += cloud;
s += '</svg>';
return s;
}
function esc(str) {
return String(str).replace(/[&<>"']/g, function (c) {
return { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }[c];
});
}
function fmtDate(iso) {
var parts = iso.split("-");
var d = new Date(Date.UTC(+parts[0], +parts[1] - 1, +parts[2]));
var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
var mons = ["January","February","March","April","May","June","July","August","September","October","November","December"];
return days[d.getUTCDay()] + ", " + mons[d.getUTCMonth()] + " " + d.getUTCDate() + ", " + d.getUTCFullYear();
}
function isPast(iso) {
return iso < todayUTC();
}
function buildURL(base) {
var p = 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
});
return base + "?" + p.toString();
}
var content = document.getElementById("content");
function showError(detail) {
content.innerHTML =
'<div class="msg error">' +
'<div class="big">Weather data could not be loaded</div>' +
'<div class="small">' + esc(detail || "Please try again later.") + '</div>' +
'</div>';
}
function round(v) { return Math.round(v); }
function render(data) {
var daily = data.daily || {};
var hourly = data.hourly || {};
var tmax = daily.temperature_2m_max && daily.temperature_2m_max[0];
var tmin = daily.temperature_2m_min && daily.temperature_2m_min[0];
var wcode = daily.weather_code && daily.weather_code[0];
if (tmax == null || tmin == null) {
showError("The response did not include temperature data for this date.");
return;
}
var wmo = WMO[wcode] || { t: "Unknown", g: "cloud" };
document.querySelector(".card").style.background = GRADIENTS[wmo.g] || GRADIENTS.clear;
var htimes = hourly.time || [];
var htemps = hourly.temperature_2m || [];
var hours = [];
for (var i = 0; i < htimes.length; i++) {
if (htimes[i].indexOf(date) === 0 && htemps[i] != null) {
hours.push({ h: parseInt(htimes[i].substr(11, 2), 10), v: htemps[i] });
}
}
var pinSvg = '<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2a7 7 0 0 0-7 7c0 5 7 13 7 13s7-8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5z"/></svg>';
var html =
'<div class="header">' +
'<div class="loc">' +
'<div class="name">' + pinSvg + '<span>' + esc(name) + '</span></div>' +
'<div class="date">' + esc(fmtDate(date)) + '</div>' +
'<div class="coords">' + lat.toFixed(3) + '°, ' + lon.toFixed(3) + '°</div>' +
'</div>' +
'<div class="cond-badge">' +
'<div class="cond-text">' + esc(wmo.t) + '</div>' +
'<div class="cond-sub">' + (isPast(date) ? "Historical record" : "Forecast") + '</div>' +
'</div>' +
'</div>' +
'<div class="main">' +
'<div class="icon-wrap">' + iconFor(wmo.g) + '</div>' +
'<div class="temps">' +
'<div class="temp-max">' + round(tmax) + '<span class="deg">°C</span></div>' +
'<div class="temp-meta">' +
'<div class="chip"><span class="label">High</span><span class="val">' + round(tmax) + '°</span></div>' +
'<div class="chip"><span class="label">Low</span><span class="val">' + round(tmin) + '°</span></div>' +
'</div>' +
'</div>' +
'</div>' +
'<div class="hourly">' +
'<h3>Hourly temperature</h3>' +
'<div class="chart">' + chart(hours) + '</div>' +
'</div>';
content.innerHTML = html;
}
function chart(hours) {
if (!hours.length) {
return '<div class="small" style="color:rgba(232,237,245,0.6)">No hourly data available for this date.</div>';
}
var W = 944, H = 150, padT = 26, padB = 24, padX = 14;
var vals = hours.map(function (h) { return h.v; });
var mn = Math.min.apply(null, vals), mx = Math.max.apply(null, vals);
if (mn === mx) { mn -= 1; mx += 1; }
var n = hours.length;
var innerW = W - padX * 2;
function x(i) { return padX + (n === 1 ? innerW / 2 : innerW * i / (n - 1)); }
function y(v) { return padT + (H - padT - padB) * (1 - (v - mn) / (mx - mn)); }
var linePts = "", areaPts = "";
for (var i = 0; i < n; i++) {
linePts += (i ? " L" : "M") + x(i).toFixed(1) + " " + y(hours[i].v).toFixed(1);
}
areaPts = linePts + " L" + x(n - 1).toFixed(1) + " " + (H - padB) + " L" + x(0).toFixed(1) + " " + (H - padB) + " Z";
var svg = '<svg viewBox="0 0 ' + W + ' ' + H + '" preserveAspectRatio="none">';
svg += '<defs><linearGradient id="ag" x1="0" y1="0" x2="0" y2="1">' +
'<stop offset="0" stop-color="#ffd580" stop-opacity="0.35"/>' +
'<stop offset="1" stop-color="#ffd580" stop-opacity="0"/></linearGradient></defs>';
svg += '<path d="' + areaPts + '" fill="url(#ag)"/>';
svg += '<path d="' + linePts + '" fill="none" stroke="#ffd580" stroke-width="2.5" stroke-linejoin="round" stroke-linecap="round"/>';
// step for labels to avoid crowding
var labelStep = n > 12 ? Math.ceil(n / 8) : 1;
for (var j = 0; j < n; j++) {
var cx = x(j), cy = y(hours[j].v);
var showLabel = (j % labelStep === 0) || j === n - 1;
if (showLabel) {
svg += '<circle class="dot" cx="' + cx.toFixed(1) + '" cy="' + cy.toFixed(1) + '" r="3"/>';
svg += '<text class="vlabel" x="' + cx.toFixed(1) + '" y="' + (cy - 9).toFixed(1) + '" text-anchor="middle">' + round(hours[j].v) + '°</text>';
svg += '<text class="hlabel" x="' + cx.toFixed(1) + '" y="' + (H - 6) + '" text-anchor="middle">' + pad(hours[j].h) + '</text>';
}
}
svg += '</svg>';
return svg;
}
var base = isPast(date) ? "/api/om/archive" : "/api/om/forecast";
fetch(buildURL(base))
.then(function (r) {
if (!r.ok) throw new Error("Server responded with status " + r.status);
return r.json();
})
.then(function (data) {
if (data && data.error) throw new Error(data.reason || "API error");
render(data);
})
.catch(function (err) {
showError(err && err.message ? err.message : "Network error");
});
})();
</script>
</body>
</html>L1 —— 廉价的确定性描述量
| bytes 总计 | 14,655 | html / css / js | 389 / 3,544 / 10,722 |
|---|---|---|---|
| dom 节点 | 13 | dom 深度 | 7 |
| css 规则 | 36 | 含 js | 是 |
| brightness | 57.3 | contrast | 34.9 |
| colorfulness | 22.0 | 留白 | 37.1% |
该 slot 的 telemetry
| prompt tokens | 2 | completion tokens | 7,137 |
|---|---|---|---|
| total tokens | 7,139 | wall | 78.9 s |
| cost | — | request id | — |
config.json580 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "claude-opus-4-8-eff-low--cli--cursor-xl--dev",
"effort": "low",
"family": "claude",
"m": {
"min": 2,
"q": 2
},
"model_id": "claude-opus-4-8",
"protocol": "cli",
"served_model": "claude-opus-4-8-low",
"telemetry": {
"completion_tokens": 20123,
"cost_usd": null,
"prompt_tokens": 10,
"total_tokens": 20133,
"wall_ms": 234451
},
"transport": "cursor-agent-cli-isolated-home",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-08-13--cursor-xl-s0",
"config_id": "claude-opus-4-8-eff-low--cli--cursor-xl--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-13T10:45:32.121677+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T10:44:13.212947+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-13T10:46:20.015301+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T10:45:36.034317+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-13T10:47:11.112660+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T10:46:23.150869+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-13T10:48:17.991664+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T10:47:14.383457+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
}
}
}