{"slug": "what-is-an-agent-a-class-instance-definition-stress-tested-against-the-2026-07", "title": "What is an 'agent'? A class/instance definition, stress-tested against the 2026-07-28 MCP spec", "summary": "A developer proposes an operational definition of an 'agent' as a serializable class/instance split, stress-tested against the 2026-07-28 MCP spec. The definition separates static agent definitions from dynamic agent instances, and the stateless MCP spec forces instance state to be a serializable value, enabling suspension and resumption across hosts.", "body_md": "In the Gen AI / LLM space, two standards have emerged as the de facto choice in their domains:\n\nOne nuance to be fair to both: MCP can also act as an agent's public interface, when an agent is exposed as an MCP server inside a single trust domain. So A2A covers the cross-organization contract, and MCP covers everything inside it. Either way, the conclusion stands: neither protocol defines what an agent *is*.\n\nTo me it seems the terms 'agent' and 'agentic' are still not well defined, and this article is my attempt at an operational definition: one precise enough that you could build a host around it. That claim is not hypothetical — I am building an MCP host, and this definition is what fell out of that work.\n\n\"An agent is an LLM using tools in a loop\" (Anthropic's framing) is directionally right, but it is not operational: it does not tell you what belongs in your `agents.json`\n\n. The academic definitions (rational agents, BDI, FIPA) predate LLMs and do not map to context windows, token budgets or MCP servers. I want something in between: a definition you can serialize.\n\nScope: this is a definition for agents that live in an MCP host. Frameworks like LangGraph organize things differently, but I believe the same components show up under different names.\n\nI split the concept in two parts, like a class and its instances. Both live in the MCP host. From here on: an **agent definition** is the class, an **agent** is the instance.\n\nThe agent definition consists of:\n\nAn agent is an instance of that class. In C# terms:\n\n```\nrecord AgentDefinition(\n    HostLoop Loop,\n    SystemContext Context,\n    McpServerSet Servers,\n    CapabilityBoundary Capabilities,\n    Model Llm,\n    TerminationLimits Limits,\n    TaskContract Contract,\n    ContextStrategy Strategy);\n\nrecord Agent(\n    AgentDefinition Definition,\n    AgentTask Goal,\n    ContextWindow WorkingContext,\n    Principal Credentials,\n    Budget Consumed);\n```\n\nNote the symmetry: the definition holds limits, contracts and capabilities; the instance holds counters, goals and credentials. Static in the class, dynamic in the instance.\n\nThe new MCP spec removes protocol sessions entirely. A server no longer remembers you between calls. All state now travels in explicit handles that the model itself can see: task handles for long-running work, workflow ids, and the `requestState`\n\nblob a paused call hands back.\n\nThis breaks my 'working context window' as defined above. Those handles land in the context window, which means compacting — or worse, top-x-ing — becomes a *correctness* concern instead of a cost concern. Summarize away a task handle and the agent has orphaned remote work it can never resume, because the stateless server has no session through which to remind it.\n\nSo the instance needs a split:\n\nThe host loop also stops being free-form. It must now support:\n\n`tasks/get`\n\n)Here is where the stateless core points. If instance state is exactly {goal, context, handles, credentials, consumed budget}, and the protocol holds no hidden session on your behalf, then an agent is a *serializable value*. You can suspend it, persist it, and resume it in a different host process. Not a running process you must keep alive — a record you can store.\n\nProduction reality will take a while to catch up (connection reuse, servers caches, ...), but the direction is set by the spec itself.\n\nI'm looking for feedback on this — especially from people running MCP hosts in production: what is in your agent config that this definition misses?", "url": "https://wpnews.pro/news/what-is-an-agent-a-class-instance-definition-stress-tested-against-the-2026-07", "canonical_source": "https://dev.to/langensjonathan/what-is-an-agent-a-classinstance-definition-stress-tested-against-the-2026-07-28-mcp-spec-5akp", "published_at": "2026-07-28 07:28:30+00:00", "updated_at": "2026-07-28 07:31:54.425773+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "ai-agents", "ai-infrastructure", "developer-tools"], "entities": ["Anthropic", "MCP", "LangGraph", "FIPA"], "alternates": {"html": "https://wpnews.pro/news/what-is-an-agent-a-class-instance-definition-stress-tested-against-the-2026-07", "markdown": "https://wpnews.pro/news/what-is-an-agent-a-class-instance-definition-stress-tested-against-the-2026-07.md", "text": "https://wpnews.pro/news/what-is-an-agent-a-class-instance-definition-stress-tested-against-the-2026-07.txt", "jsonld": "https://wpnews.pro/news/what-is-an-agent-a-class-instance-definition-stress-tested-against-the-2026-07.jsonld"}}