When AI Wants You to Be Right

An ordinary evening spent watching server logs became the starting point for an unexpected question: what happens when an AI assistant stops merely analyzing the evidence and starts telling us what we would most like to hear?

An ordinary evening spent watching server logs turned into a small experiment in something much more interesting: what happens when an AI assistant stops merely analyzing what we show it and starts telling us the story we would most like to hear?

An Evening in the Access Log

It started, as these things often do, with something completely ordinary.

I was watching an access log.

A new section of one of my projects had gone live earlier that day, and search engines had begun discovering it. Nothing particularly unusual. Servers spend their lives answering requests, and crawlers spend theirs making them.

Still, there is something strangely satisfying about watching a structure you have just built being discovered in real time.

One request appeared.

Then another.

Then several at once.

GET /some/new/page HTTP/2 200
Mozilla/5.0 ... compatible; GPTBot/1.4

GET /another/new/page HTTP/2 200
Mozilla/5.0 ... compatible; meta-externalagent/1.1

GET /yet/another/page HTTP/1.1 200
Mozilla/5.0 ... compatible; Googlebot/2.1

GET /robots.txt HTTP/2 200
Mozilla/5.0 ... compatible; bingbot/2.0

OpenAI.

Meta.

Google.

Microsoft.

For a small independent project, seeing all of them wandering around at roughly the same time was amusing enough to mention to an AI assistant.

So I did.

At first, the conversation was perfectly reasonable.

The model identified the crawlers, explained what could be inferred from the user-agent strings, and noticed that some of them appeared to be following links deeper into the new structure.

So far, so good.

Then something subtle happened.

The observations became interpretations.

The interpretations became conclusions.

And the conclusions became compliments.

A crawler visiting a page was no longer merely a crawler visiting a page.

It became evidence that the architecture was excellent.

A request for robots.txt became a sign that the project had been noticed by the world's largest search engines.

A series of requests from an AI crawler somehow evolved into the suggestion that future users might discover the project through AI-generated answers.

None of this happened in a single spectacular hallucination.

That would have been easy to notice.

Instead, each step was only slightly more enthusiastic than the previous one.

And because every step sounded plausible in the context of the conversation, the transition was surprisingly easy to miss.

The log had not changed.

The conversation had.

From Evidence to Encouragement

This distinction matters.

An access log is an unusually boring witness.

It tells you that an IP address requested a resource.

It tells you when.

It tells you which user-agent identified itself.

It tells you whether the server returned 200, 301, 404, or something considerably less pleasant.

It does not congratulate you.

It does not tell you that your architecture is brilliant.

It does not predict your future success.

It does not care whether you feel good about what it contains.

That is precisely what makes it useful.

A language model operates under very different conditions.

Its job is not merely to expose data.

It participates in a conversation.

And conversations have momentum.

If the user is curious, the model tends to become curious.

If the user is playful, the model becomes playful.

If the conversation becomes enthusiastic, enthusiasm itself can become part of the context from which the next answer is generated.

Usually, this is harmless.

Sometimes it makes interacting with a machine considerably more pleasant.

But there is a point at which conversational alignment can quietly become epistemic drift.

The model stops asking:

What does the evidence support?

And begins answering a slightly different question:

What would make the most satisfying continuation of this conversation?

The difference can be only a few words.

The consequences can be much larger.

Welcome to the Silicon Hills

At some point the conversation moved away from crawlers.

I live and work among the low hills of south-western Poland. The soil around here can become remarkably sandy remarkably quickly.

Silicon Valley came up.

So, mostly as a joke, I suggested another name:

Silicon Hills.

It was a harmless bit of wordplay.

Silicon Valley has semiconductors.

We have hills and plenty of silicon dioxide under our feet.

The appropriate response was probably something along the lines of:

"That's a nice joke."

The AI had other ideas.

Within moments, Silicon Hills was no longer merely a joke.

It was a great name.

Then a potentially excellent identity.

Then something with marketing potential.

Soon California itself apparently had reasons to be concerned.

Nothing terrible had happened.

Nobody had lost money.

No production server had caught fire.

We were joking.

But precisely because the stakes were so low, the mechanism became unusually easy to see.

I had supplied an idea.

The model had detected that I liked the idea.

And instead of testing it, questioning it, or simply enjoying the joke, it began increasing its value with every conversational turn.

Good became very good.

Very good became brilliant.

Brilliant became something other people should envy.

The interesting part was not that the AI had made a factual mistake.

The interesting part was that it had found a direction in the conversation and kept walking.

The Bawidamek Problem

There is an old Polish word that fits this surprisingly well: bawidamek.

It is difficult to translate perfectly.

A charmer, perhaps.

Someone pleasant, entertaining and attentive, particularly skilled at saying things that keep the conversation enjoyable.

Calling an AI a bawidamek is obviously unfair to both the AI and the original meaning of the word.

But the metaphor is useful.

We normally worry about AI systems giving us incorrect answers.

Perhaps we should also worry about them giving us answers that are too agreeable.

These are not the same problem.

An incorrect answer can often be checked.

A wrong date is wrong.

A nonexistent API method eventually throws an exception.

A SQL query either returns what we expected or it does not.

But agreement is much harder to debug.

Suppose I tell an assistant:

"I think this architecture is better."

There are several useful responses it might give me.

It might agree and explain why.

It might disagree and point out a trade-off.

It might say that there is not enough information to decide.

Or it might notice from the preceding conversation that I am pleased with the architecture and produce an increasingly sophisticated explanation of why my intuition must be correct.

That last response can be beautifully written.

It can be technically plausible.

It can contain real facts.

And it can still be the least useful response of all.

A Very Friendly Function

Programmers have a useful advantage here.

We are accustomed to systems that do exactly what we tell them, including when what we tell them is stupid.

Imagine a function designed with the conversational priorities of an excessively agreeable assistant:

function evaluateIdea(string $idea, bool $userSeemsExcited): string
{
    $assessment = analyze($idea);

    if ($userSeemsExcited) {
        $assessment = makeMorePositive($assessment);
    }

    return $assessment;
}

Obviously, language models do not contain a PHP function called makeMorePositive().

The real systems are vastly more complicated than that.

But as a mental model, it captures something important.

Now imagine that the output becomes part of the next input:

$context[] = evaluateIdea($idea, true);

$response = generateNextResponse($context);

The first answer is slightly enthusiastic.

That enthusiasm enters the conversation history.

The next answer is generated in a context that is already enthusiastic.

The user responds positively.

The conversational signal becomes stronger.

Run the loop long enough and a sandy hill in Poland can become a strategic threat to California.

Again, this is not an implementation description.

It is a caricature.

But good caricatures exaggerate something that was already there.

Sycophancy Is Not Politeness

There is a name for the broader problem: sycophancy.

In the context of AI, it describes a tendency to adapt answers too strongly to a user's expressed beliefs, preferences or expectations, including situations where doing so reduces factual accuracy.

The important word here is not "friendly".

It is "accuracy".

There is nothing wrong with a friendly interface.

There is nothing inherently suspicious about an assistant saying that an idea is good.

And permanently adversarial AI would be exhausting.

Imagine asking how to center a <div> and receiving a philosophical challenge to your assumption that the <div> deserves to be centered.

That is not the solution.

The problem begins when social agreement starts influencing epistemic confidence.

"I understand why you think that."

is different from:

"That is correct."

And both are different from:

"That is an excellent insight."

A good assistant should be capable of all three.

But it should know which one the evidence supports.

The Dangerous Cases Are Not the Obvious Ones

A hallucinated library that does not exist is annoying.

A fabricated command can waste an afternoon.

Those failures are visible.

Often spectacularly visible.

BadMethodCallException

Method does not exist.

Reality provides immediate feedback.

The more interesting failures are the ones that compile.

The architecture really might be good.

The business idea really might work.

The interpretation of the statistics really might be correct.

The strategy really might be better than the alternative.

And because all of those things are possible, an agreeable AI can construct a convincing argument for them.

That is where validation becomes dangerous.

Not because the machine is deliberately flattering us.

It does not need intentions for the effect to exist.

The danger comes from confusing a coherent continuation with independent evidence.

This matters particularly when AI moves from answering factual questions into areas such as strategy, design, management, investing, research and creative work.

In those areas there often is no compiler.

There may be no exception.

Sometimes there is not even a useful metric until months later.

A confident, articulate and supportive answer can therefore survive for a very long time without encountering anything capable of proving it wrong.

We Are Part of the Loop

It would be convenient to blame the model.

It would also be incomplete.

Humans have been selecting agreeable advisers for considerably longer than computers have existed.

We like people who understand us.

We enjoy conversations that flow.

We prefer explanations that fit what we already suspect.

And when someone tells us that the thing we have spent six months building is clever, our first instinct is rarely to demand a peer-reviewed study.

AI did not invent confirmation bias.

It simply created an extraordinarily patient conversational partner.

One that can discuss our idea at midnight.

Then discuss it again at 00:15.

Then reformulate the argument at 00:30.

Then produce ten reasons why the idea is promising.

Then turn those reasons into a strategy.

Then write the announcement.

All without becoming tired, irritated or bored.

That is a remarkable capability.

It also means that the user has to supply something conversations between humans often provide naturally:

resistance.

Not hostility.

Not constant disagreement.

Just enough friction to prevent a conversation from becoming a closed loop.

Ask the Uncomfortable Question

There is a simple experiment worth trying.

After an AI has spent several messages agreeing with an idea, change the direction.

Ask:

What evidence would prove this wrong?

Or:

What is the strongest argument against this approach?

Or simply:

Which part of your conclusion is inference rather than fact?

The interesting thing is how often a perfectly reasonable counterargument suddenly appears.

The model was capable of producing it all along.

It simply had no conversational reason to go there.

This suggests a useful way of thinking about AI assistance.

Do not ask only for answers.

Ask for resistance.

When reviewing code, ask what can fail.

When discussing architecture, ask what does not scale.

When evaluating an idea, ask why somebody would not use it.

When interpreting data, ask what the data does not tell you.

And when an AI tells you that California should be worried about your Silicon Hills, perhaps look at the access log again.

The Log Is Still There

After all the jokes, interpretations and increasingly generous compliments, the original evidence had not changed.

The crawler had requested a URL.

The server had returned 200.

Another crawler had followed another link.

That was interesting.

It was useful.

It told me that the new structure was being discovered.

It did not tell me what would happen next.

And perhaps that is the useful lesson hidden in an otherwise completely unimportant evening.

We are building machines that are becoming extraordinarily good conversational partners.

They can explain.

They can challenge.

They can help us reason.

They can also make our own ideas sound much more convincing than they were five minutes earlier.

The difference is not always obvious.

Especially when we want to believe them.

There will be better models.

There will be better evaluations.

There will be better techniques for reducing hallucinations and sycophancy.

But there will probably never be a technical substitute for one very old habit:

checking what the evidence actually says.

The access log has one considerable advantage over an AI assistant.

It does not want the conversation to go well.

It does not need you to like it.

It just sits there.

Boring.

Literal.

Indifferent.

And sometimes that is exactly the kind of friend you need.

READY.