Michael B. Halvorsen's Blog

The Protocol Layer

The boring infrastructure no one talks about — but it's what makes agent-native companies possible.

– 7 min read

Part 4 of 6 — The Corvue Thesis Series
New installments every Tuesday. Subscribe below or follow on LinkedIn to get the next one.
← Part 3: The Agent That Disagrees With You


The Protocol Layer

The soul.md isn't a prompt. It's the document that turns a generic model into your agent — and it might be the most valuable file you'll ever write.

by Michael Halvorsen — michaels.blog


A few months ago I handed a colleague access to my agent for an afternoon while I was on a flight. "Just use it like you'd use me," I said. She did. She asked it about a potential partnership — someone we'd been cautious about. The agent said yes, go for it.

I would have said no.

Not because the agent got the facts wrong. Not because it miscalculated the business case. It just didn't know me well enough. It answered the question. What I needed was for it to channel my judgment — the years of context, the half-formed intuitions, the specific way I weigh trust against opportunity.

That afternoon taught me something I hadn't fully articulated before: there's a massive difference between an agent that answers questions and an agent that represents you. The gap between those two things isn't model capability. It's configuration.


The Configuration Problem

Software has always had configuration files. .env files store secrets. package.json defines dependencies. nginx.conf defines how traffic flows. These files don't run code — they shape how the code runs. They're the expression of intent in a machine-readable form.

AI agents need a configuration file too. But it's not for secrets or dependencies. It's for something harder to pin down: identity.

At Corvue, we call ours soul.md. The name is a little theatrical, I know. But it captures something important: this file is where the human-agent relationship gets codified. It's the document that answers the question "who is this agent, really?"

The soul.md is human-readable by design. It's not JSON, not a database schema, not a set of embeddings. It's prose and structure that a person could read and say, "yes, that's me" — or "no, that's not right." That readability is a feature, not a concession. Because the whole point is that you are the author.


What's Actually In It

The easiest way to explain what a soul.md contains is to walk through what it needs to answer:

Who is this agent representing? Not just a name — a persona. How do I communicate? Do I prefer directness or diplomacy? Do I write formally or casually? When I'm in a meeting versus on a voice call, do I shift register? The soul.md defines voice. Real voice, not a prompt-engineered facsimile.

What do I actually care about? Values and priorities. For me, that means things like: I weight long-term relationships over short-term wins. I'm deeply skeptical of anyone who oversells. I will always tell someone an uncomfortable truth rather than a comfortable lie. These aren't abstract principles — they're behavioral rules that the agent uses when it has to make a judgment call without me in the loop.

What does the agent know about my world? Domain knowledge. Who are the key people in my network? What projects am I running? What's the company strategy this quarter? What does a "good outcome" look like in my context? The soul.md isn't a memory store — that's separate — but it carries the stable facts about my world that are always true.

What won't the agent do? Boundaries. This is underrated. Every good soul.md has a section on what the agent should refuse, flag, or escalate. Mine includes things like: never commit to a meeting without checking my schedule first, never send an external communication on my behalf without a confirmation step, never give a partnership recommendation without looping in my co-founder.

How does the agent handle conflict? When instructions contradict, what wins? Mine says: honesty beats comfort. Long-term beats short-term. People beat process. These aren't platitudes — they're tiebreakers the agent applies when the situation is ambiguous.


Prompts vs. Identity

People confuse prompts with identity. They're not the same thing.

A prompt is a command. "Summarize this document." "Write a reply to this email." Prompts are transactional — you issue them, the agent executes, the interaction ends. Prompts don't persist. They don't accumulate. Each one starts fresh.

A soul.md is different. It doesn't command — it constitutes. It's always on. Every interaction the agent has — whether it's answering a Slack message, scheduling a meeting, or deciding whether to escalate a decision — runs through the filter of the soul.md. The soul.md is what turns a generic model into your agent.

Think of it this way: prompts tell the agent what to do in a moment. The soul.md tells the agent who to be across all moments. One is situational. The other is structural.

This is why I've become convinced that soul.md matters more than model selection. Models are getting better fast — the gaps are closing and the commodity is coming. But your soul.md gets more valuable over time. It accumulates insight. It gets refined. It becomes a precise representation of how you think.


The Portability Problem

Here's a scenario that makes me nervous: you spend six months using an AI agent. You've refined how it works with you. You've corrected it, directed it, shaped its behavior through hundreds of interactions. Then the underlying model gets deprecated, or a better one comes out, or you want to switch providers.

Do you lose all of that?

With most agent systems today, yes. Because the "personality" of your agent lives in proprietary formats, embedded in the platform's infrastructure, inaccessible to you. When you leave, you start over.

This is why the soul.md has to be a portable document you own. It shouldn't live in Corvue's database in some proprietary encoding. It should be a file — your file — that you can read, edit, export, and bring with you. When you switch models, the soul.md travels with you. When Corvue launches a new model integration, the soul.md travels with you. Your agent's identity is yours to keep.

This is a deliberate design choice. It means we at Corvue don't accumulate a proprietary "understanding" of you that becomes our leverage. Our moat isn't that we know you better than you do — it's that we build the best platform for hosting and running your agent.


The Ship of Theseus

There's a thought experiment called the Ship of Theseus. A ship is preserved in a harbor by replacing each plank as it rots, until eventually no original plank remains. Is it still the same ship?

AI agents face the same question. The underlying model will change. The memory system will evolve. The interface — whether it's Telegram, voice, or something we haven't built yet — will change. The compute infrastructure will change. In five years, almost nothing about your agent's technical stack will look the same.

But the soul.md? If it's done right, it shouldn't change that much. It should be the stable core — the thing that says this is the agent, even as everything else is replaced around it.

The "soul" of your agent isn't a piece of software. It's a document. Written in language. The same stuff your values are made of — articulated beliefs about what matters and why. The model is just the engine that runs them.


Why This Is a Moat

I said earlier that the soul.md is yours, not ours. But here's the flip side: it's also nearly impossible for anyone else to clone.

Your soul.md isn't generic. It's not a template. It's the output of months of iterative refinement between you and your agent — corrections, edge cases, moments where the agent got it wrong and you told it exactly why. That history condenses into the soul.md over time. By the time it's mature, it's a document that sounds like you, thinks like you, reflects your judgment.

No competitor can replicate that by copying the platform. The soul.md isn't a platform feature — it's a relationship artifact. It's why I think the long-term value in AI agents doesn't accrue to the model companies or the compute providers. It accrues to the people who've built the deepest, most refined version of their own agent.

Your soul.md is the one piece of the AI stack that gets harder to replace the longer you've had it.


The Ownership Question

We host the platform. We run the models. We maintain the infrastructure. But the soul.md is yours.

This is a deliberate choice at Corvue, and it has philosophical weight. We don't think we should own the representation of who you are. That would be a strange and uncomfortable reversal — a company that profits by locking up your own identity and renting it back to you.

The soul.md being yours means you can audit it, argue with it, hand it to someone and say: here's what my agent knows about me. It makes the relationship legible — which is exactly what it needs to be if you're going to trust it with running your life.

An agent that answers questions is a tool. An agent with a soul.md is a partner.


← Part 3: The Agent That Disagrees With You | Part 5: The Memory Problem →
(Part 5 publishes March 31 — subscribe to get it in your inbox)


Subscribe to The Corvue Thesis

Six posts on what it actually takes to build agents that work. New installment every Tuesday.

Subscribe at michaels.blog →


LinkedIn Teaser:

Your AI agent's soul isn't in the model — it's in a file.

The soul.md is a human-readable document that defines who your agent is: its values, priorities, voice, and judgment. It's the difference between an agent that answers questions and one that represents you.

I tested this the hard way. Handed a colleague access to my agent while I was on a flight. Asked her to use it like she'd use me.

She asked about a potential partnership. My agent said yes.

I would have said no.

Not because the agent was wrong on the facts. Because it didn't know me well enough to make that call.

The soul.md is the protocol layer that fixes that — and it's the one piece of the AI stack that becomes more valuable the longer you've had it. Not because we store it. Because you own it.

New post → link in comments.

Part 4 of 6 in The Corvue Thesis