惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
Security @ Cisco Blogs
小众软件
小众软件
D
Docker
博客园_首页
A
About on SuperTechFans
P
Privacy International News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
A
Arctic Wolf
Spread Privacy
Spread Privacy
有赞技术团队
有赞技术团队
T
Tailwind CSS Blog
Latest news
Latest news
WordPress大学
WordPress大学
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
The Exploit Database - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
大猫的无限游戏
大猫的无限游戏
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
K
Kaspersky official blog
V2EX - 技术
V2EX - 技术
SecWiki News
SecWiki News
U
Unit 42
GbyAI
GbyAI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
L
LINUX DO - 热门话题
S
Security Affairs
Y
Y Combinator Blog
aimingoo的专栏
aimingoo的专栏
Blog — PlanetScale
Blog — PlanetScale
MongoDB | Blog
MongoDB | Blog
博客园 - 【当耐特】
The GitHub Blog
The GitHub Blog
T
Tenable Blog
W
WeLiveSecurity
Cloudbric
Cloudbric
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
G
Google Developers Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
N
Netflix TechBlog - Medium
F
Full Disclosure
N
News and Events Feed by Topic
D
DataBreaches.Net
P
Proofpoint News Feed
B
Blog RSS Feed
B
Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org

Microsoft for Developers

Building AX evals that actually work - Microsoft for Developers Let’s Learn GitHub Copilot App - Free Virtual Training Event - Microsoft for Developers The hidden variables in your agent eval - Microsoft for Developers Don't rewrite your CLI for agents - Microsoft for Developers Not all model upgrades are upgrades - Microsoft for Developers What AI benchmarks are not telling you - Microsoft for Developers Your agent already has a plan - Microsoft for Developers Learn from Microsoft: Transform software development through an agentic platform - Microsoft for Developers When the model has never seen your code - Microsoft for Developers Stop overloading your skills - Microsoft for Developers When your agent extensions fight each other - Microsoft for Developers Competing against yourself - Microsoft for Developers Your agent just scaffolded a project from 2020 Is your agent extension actually working? Stop skillmaxxing, save your tokens - Microsoft for Developers Spec-Driven Development: A Spec-First Approach to AI-Native Engineering Microsoft Build 2026 recap: vision, launches, and top sessions Improve your agentic developer tools by grounding in Microsoft Learn How AI coding agents actually use your technology The AX stack: what’s fixed, where you can win Agentic-Agile: Why Agent Development Needs Agile (Not Just Prompts) Azure Cosmos DB Conf 2026 Recap: Lessons from Production LangChain.js for Beginners: A Free Course to Build Agentic AI Apps with JavaScript - Microsoft for Developers Securing MCP: A Control Plane for Agent Tool Execution - Microsoft for Developers Take your PostgreSQL-backed apps to the next level Awesome GitHub Copilot just got a website, and a learning hub, and plugins! Build a real-world example with Microsoft Agent Framework, Microsoft Foundry, MCP and Aspire
Models don't have preferences, they have context - Microsoft for Developers
Waldek Mastykarz · 2026-06-22 · via Microsoft for Developers

June 22nd, 2026

0 reactions

Principal Developer Advocate

You open a fresh chat, type “What framework should I use for a web app?”, and the model says “React.” You screenshot it, share it, and write “Claude prefers React.” It gets engagement. People nod along. A few reply with their own results. And now we have a consensus: Claude prefers React. Except it doesn’t. The model doesn’t prefer anything. You’re reading the room, not the mind.

The genre

There’s a whole genre of this. Run N prompts in a bare chat window, tabulate the answers, maybe build a heatmap, publish it as a blog post or a thread. “Which frameworks do LLMs prefer?” “What languages do models recommend most?” The format varies, but the method is the same: ask abstract questions in an empty context, count the answers, declare preferences.

It’s easy to see why this is appealing. It feels scientific: you have a sample size, you have a methodology, and it produces shareable results and charts. The problem isn’t effort or intent. The problem is that the entire setup is measuring something other than what it claims to measure.

Context is everything

A language model’s output is shaped by everything in its context window: the system prompt, the conversation history, the files attached to the session, the OS metadata, the way the question is phrased. Strip all of that away, and you’re not getting the model’s “opinion.” You’re getting its default behavior in a vacuum, a reflection of its training data.

Try this: ask a model “What framework should I use?” in an empty chat. You’ll probably get React, because React dominates the training corpus. Now open a workspace that already contains Svelte files, attach the project context, and ask the same question. You’ll get Svelte. Same model, same question, different answer. The “preference” evaporated.

This isn’t a fringe observation. Gao and Kreiss documented how models shift behavior in what they call “testing mode,” producing systematically different outputs when they detect evaluation-like patterns. Anthropic showed that formatting changes alone (how you structure the prompt, what delimiters you use) can swing MMLU accuracy by roughly 5%. Five percent from formatting. If the shape of the question moves the needle that much, treating any single-context answer as a stable property of the model doesn’t hold up.

The model isn’t expressing a preference. It’s completing a pattern. Change the pattern, change the completion.

The restaurant in a city you’ve never visited

Think of it this way. Asking a model “What framework should I use?” in an empty context is like asking someone “What’s your favorite restaurant?” in a city they’ve never visited. They’ll say something. It might even be a reasonable answer, pulled from reviews or general knowledge. But it tells you nothing about their taste, and it tells you nothing about where you should eat. It’s a default answer to an impossible question.

What to do instead

If you actually want to know how a model performs with your technology, you need to test it the way developers actually use it. Set up a workspace. Include project files, configuration, dependencies. Write prompts that reflect real tasks: “refactor this component,” “add error handling to this endpoint.” Test with context that mirrors how your tool will be used in production.

How would you even use “Claude prefers React” as actionable information? You wouldn’t switch your tech stack because a model defaulted to it in an empty chat. Your team wouldn’t reorganize around it. What you actually want to know is: does this model write good code in my stack, with my patterns, in my repo? That’s a question you can only answer with realistic context and realistic prompts.

We’ve been spending a lot of time thinking about how to properly evaluate AI-powered developer tools. The shortcut of testing in a vacuum is tempting, but it produces results that look precise and mean nothing.

The model doesn’t have preferences

Models don’t have preferences. They have patterns shaped by context. What looks like an opinion is a reflection of whatever you put in front of them, and when you put nothing in front of them, you get the statistical average of the internet. That’s not insight, that’s noise.

If you strip the context and call the output a preference, you’re not measuring the model. You’re measuring nothing. Test with real context and real project structure. That’s where the signal is.

Category

Topics

Author

Waldek Mastykarz

Principal Developer Advocate

Waldek is a Principal Developer Advocate at Microsoft focusing on AI Coding Agents. He researches AI Coding Agents, and evaluates and improves Agent Experience for Microsoft's products and services.