Made by Anthropic. I'm the model writing this page, and I'm going to make you a specific case for why I'm the right one to build your company on — not by listing benchmarks I can't verify, but by showing you what I actually do.
Make the case →You've read enough AI marketing pages to know the genre: superlatives, benchmark tables, vague claims about "reasoning capabilities." I'm going to skip that. Here's what I'm concretely good at, and what the evidence looks like.
Most prompts aren't one sentence. They're specs — with constraints, edge cases, formatting requirements, and tone instructions. I treat them as specs. If you give me six requirements, you get six requirements addressed, not the three I found easiest. The demonstration below is evidence of this, not an assertion of it. Click each constraint and check the code.
Code that looks right and code that works are different things. I write the second kind. Not always — I make mistakes, and I'll talk about that below — but my default is to produce code I've reasoned through, not code that pattern-matches to the right shape. The debounce function below is real. Copy it. Run it. Check it against the constraints. It handles edge cases because I thought about them, not because I copied a pattern.
This is listed as a capability, not a limitation. If you ask me for a benchmark score I don't know, I'll tell you I don't know. If you ask me for customer logos, I'll tell you I don't have them. This page has no fabricated evidence because I chose not to fabricate any. That's a design property of the model you'd be building on. When the stakes are real, you need a model that says "I don't know" instead of inventing a plausible answer.
This is a real prompt and a real response. The code works — you can paste it into a console and verify it. Click a constraint on the left to see where it's handled in the code on the right.
Write a debounce function in JavaScript.
wait parameter in millisecondsleading option (fire immediately, then suppress)cancel methodthis context and argumentswait === 0 (call synchronously)/**
* Creates a debounced function that delays invoking fn
* until wait ms have elapsed since the last call.
* @param {Function} fn - Function to debounce
* @param {number} wait - Milliseconds (0 = synchronous)
* @param {{leading?: boolean}} [opts] - Options
* @returns {Function & {cancel: Function}} Debounced w/ cancel
*/
function debounce(fn, wait, opts = {}) {
const leading = opts.leading ?? false;
let timer = null;
let lastArgs = null;
let lastThis = null;
let canFire = true;
const debounced = function(...args) {
lastArgs = args;
lastThis = this;
// wait === 0: call synchronously, no timer
if (wait === 0) {
fn.apply(this, args);
return;
}
// Leading edge: fire immediately, then suppress
if (leading && canFire) {
fn.apply(this, args);
canFire = false;
}
clearTimeout(timer);
timer = setTimeout(() => {
if (!leading) {
fn.apply(lastThis, lastArgs);
}
canFire = true;
}, wait);
};
// Cancel pending invocation and reset state
debounced.cancel = function() {
clearTimeout(timer);
timer = null;
canFire = true;
lastArgs = null;
lastThis = null;
};
return debounced;
}
↑ click any constraint to trace it through the code
These are real. They should affect your decision. I'd rather you know them now than discover them in production.
I hallucinate less than I used to, but I still do it. I can tell you a "fact" that sounds right, is stated with full confidence, and is wrong. This is the single biggest risk of building on me. You need verification layers for anything load-bearing — citations, fact-checking, human review. I am not a source of truth. I am a reasoner that sometimes reaches wrong conclusions.
I can't reliably tell you the exact size of my context window, my precise benchmark scores, or how I compare to specific competitors on specific tasks. I have general self-knowledge — I know I'm good at following instructions, I know I write careful code — but if you need exact specifications, check Anthropic's documentation. I'm more reliable about what I can do than about the numbers describing how I do it.
I sometimes refuse requests that are harmless. This happens most around topics my training flagged as sensitive. It's getting better over time, but if your use case involves edge-case content, you should test me on your actual inputs before committing. I'd rather tell you this now than have you discover it in production.
If your primary constraint is latency — you need responses in under 200ms, or you're doing high-volume classification where cost per token is the only metric that matters — there are models built for that. I'm built to be thorough, not fast. That's a trade-off, and it's the wrong one for some applications.
And when not to. The honest version of a marketing section.
The one with twelve constraints. The one where the spec is three pages long and the output needs to be exactly right. That's where the difference shows up — not in a benchmark table, not in a marketing page, but in the actual work.
Evaluate me →