Many agent frameworks and runtimes default to the agent being defined in a Python class or a YAML file that compiles to one. Or maybe as a chain of decorators around a highly structured prompt. To create an agent, you write code. To modify it, you edit code. To understand what it does, you read code.
When you actually think about what an agent is and look at what it structurally does, almost none of it is code. It's an identity. It's a model choice, generation config, a set of rules, a capability surface, model relationships, and a list of MCP servers. That's seven decisions, mostly enumerable. The code in a typical agent definition is glue around those decisions — it doesn't add behavior, it transcribes configuration into a class hierarchy. The framework treats the agent as a program. But the agent is a configuration. The program is the runtime.
Continue reading