{
  "schemaVersion": 1,
  "generatedAt": "2026-08-29T14:26:01.987Z",
  "canonicalOrigin": "https://lineage2ai.com",
  "articleCount": 3,
  "articles": [
    {
      "articleId": "what-is-an-agentic-npc",
      "topicId": "glossary-agentic-npc",
      "canonicalPath": "/glossary/agentic-npc/",
      "canonicalUrl": "https://lineage2ai.com/glossary/agentic-npc",
      "title": "What Is an Agentic NPC? A Practical Definition for Games",
      "description": "An evidence-based definition of agentic NPCs: what makes them different from dialogue chatbots, scripted bots and unconstrained autonomous agents.",
      "language": "en",
      "publishedAt": "2026-08-28T12:00:00+03:00",
      "updatedAt": "2026-08-28",
      "reviewedAt": "2026-08-28",
      "evidenceLevel": "SOURCE_PLUS_REPOSITORY_OFFLINE",
      "authors": [
        {
          "id": "christian-zapasnik",
          "type": "Person",
          "name": "Christian Zapasnik",
          "jobTitle": "Founder and Lead Agentic AI Systems Architect",
          "url": "/authors/christian-zapasnik",
          "description": "Christian Zapasnik is the founder and lead systems architect behind Lineage2AI, building server-authoritative agentic NPC, voice, memory, calibration and evaluation systems for persistent MMORPG worlds.",
          "sameAs": [
            "https://www.facebook.com/christian.schmitz.5496683",
            "https://github.com/christianza1989"
          ],
          "knowsAbout": [
            "Agentic AI",
            "AI MMORPG architecture",
            "Server-authoritative AI",
            "LLM agents",
            "AI NPCs",
            "Speech-to-text",
            "Text-to-speech",
            "Persistent agent memory",
            "AI evaluation and calibration"
          ]
        }
      ],
      "wordCount": 1217,
      "heroImage": "/topical-blog/what-is-an-agentic-npc/hero.webp",
      "heroAlt": "An original fantasy companion surrounded by a subtle perception, planning, action and feedback loop",
      "heroWidth": 1672,
      "heroHeight": 941,
      "markdownUrl": "/topical-blog/articles/what-is-an-agentic-npc.md",
      "html": "<p>An <strong>agentic NPC</strong> is a non-player character that can interpret a goal or situation, select among permitted actions, act through the game’s real systems, observe the authoritative result, and use that result to decide what should happen next. Dialogue may be part of the experience, but dialogue alone is not agency.</p>\n<p>That distinction matters because “AI NPC” is now used for several very different products. A character can generate fluent conversation while remaining disconnected from combat, movement, inventory, quests and persistent state. Another system can execute a fixed behavior tree without understanding natural language. Both may be valuable, but neither automatically satisfies the stronger definition of an agentic NPC.</p>\n<p>The useful test is not whether the character sounds intelligent. It is whether the character participates in a controlled <strong>observe → decide → act → verify</strong> loop inside the game.</p>\n<section class=\"topical-section\">\n<h2 id=\"a-compact-definition\" data-section-number=\"01\">A compact definition</h2>\n<p>An NPC is agentic when all of the following are present:</p>\n<ul>\n<li><strong>Grounded observation:</strong> it receives a bounded representation of relevant current state rather than inventing the world from prose.</li>\n<li><strong>A goal or intent:</strong> it can interpret a player request, role objective or environmental condition.</li>\n<li><strong>Action choice:</strong> it selects among capabilities that are actually available for that turn.</li>\n<li><strong>A real execution boundary:</strong> the choice is passed to a deterministic game system that can accept or reject it.</li>\n<li><strong>Result feedback:</strong> the NPC learns what the game says happened before it claims success or chooses a follow-up.</li>\n<li><strong>Continuity:</strong> the system preserves enough identity, task state or permitted memory to behave coherently across more than one isolated answer.</li>\n<li><strong>Bounded autonomy:</strong> permissions, time, cost and scope are constrained by the game and operator.</li>\n</ul>\n<p>This definition follows the general connection between reasoning and action explored by the <a href=\"https://arxiv.org/abs/2210.03629\" rel=\"noopener noreferrer\">ReAct research</a>, while adapting it to a multiplayer world where generated output cannot be treated as game truth. Research such as <a href=\"https://arxiv.org/abs/2304.03442\" rel=\"noopener noreferrer\">Generative Agents</a> also demonstrates how observation, memory, reflection and planning can produce more coherent simulated behavior. A shipped MMORPG still needs an additional layer: authoritative execution.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"what-an-agentic-npc-is-not\" data-section-number=\"02\">What an agentic NPC is not</h2>\n<h3 id=\"not-merely-a-dialogue-chatbot\">Not merely a dialogue chatbot</h3>\n<p>A dialogue chatbot can answer lore questions, improvise personality and remember a conversation. If it cannot select a legal in-world capability, submit that proposal to the game, receive the real result and adjust, it is a conversational NPC rather than a full agentic NPC.</p>\n<p>This is not an insult to dialogue systems. Conversation may be the correct product. The distinction prevents a voice interface from being marketed as autonomous gameplay when no closed action loop exists.</p>\n<h3 id=\"not-merely-a-scripted-bot\">Not merely a scripted bot</h3>\n<p>A scripted bot may follow, attack, heal or patrol through carefully authored rules. It acts, but its choices may be limited to a fixed state machine with no flexible interpretation of goals. An agentic NPC can combine deterministic control with model-based interpretation: probabilistic language at the edge, strict contracts around every side effect.</p>\n<h3 id=\"not-an-unrestricted-autonomous-player\">Not an unrestricted autonomous player</h3>\n<p>Agency does not require unlimited permission. In a multiplayer game, unrestricted model authority would create obvious integrity, fairness and reliability problems. A useful agent can be powerful precisely because its action space is explicit, current and revocable. Bounded autonomy is a design property, not a lesser form of agency.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"the-minimum-architecture\" data-section-number=\"03\">The minimum architecture</h2>\n<p>The smallest credible architecture has five layers.</p>\n<ol>\n<li><strong>Perception:</strong> the game creates a relevant state snapshot. It may include the NPC’s role, location, party, current target, usable actions, recent results and a narrow slice of memory.</li>\n<li><strong>Planning:</strong> a model or hybrid controller interprets intent and produces a structured proposal. It should not manufacture raw internal IDs or invoke arbitrary code.</li>\n<li><strong>Binding:</strong> deterministic code resolves a semantic choice to current game objects and rejects stale or ambiguous candidates.</li>\n<li><strong>Execution:</strong> the authoritative server checks ownership, state, range, resources, cooldowns, policy and concurrency before changing the world.</li>\n<li><strong>Feedback:</strong> the confirmed result returns to the NPC. Speech and memory use that result, not the model’s prediction of success.</li>\n</ol>\n<p>The <a href=\"/architecture/server-authoritative-ai\">server-authoritative AI pattern</a> is especially important in an MMORPG because many players share one persistent state. The model can be expressive without becoming a second, inconsistent game server.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"memory-helps-but-memory-is-not-agency\" data-section-number=\"04\">Memory helps, but memory is not agency</h2>\n<p>Memory can make an agentic NPC recognizable. It may retain a permitted player preference, a relationship event, the last task result or stable self-canon. Yet a memory-enabled chatbot can still have no action loop, while a short-lived combat agent can act without long-term personal memory.</p>\n<p>It is therefore useful to evaluate persistent NPC memory as its own capability. Questions include who authorized a write, where the fact came from, how long it lasts, which owner can retrieve it and whether instructions are separated from facts. “It remembers me” and “it is agentic” overlap, but they are not synonyms.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"how-to-evaluate-an-agentic-npc\" data-section-number=\"05\">How to evaluate an agentic NPC</h2>\n<p>A convincing demo is not enough. Evaluation should decompose the loop:</p>\n<ul>\n<li>Did the system identify the correct intent?</li>\n<li>Was the required capability present in the current allowlist?</li>\n<li>Did it select the right semantic action and arguments?</li>\n<li>Could deterministic code bind that proposal to current state?</li>\n<li>Did execution succeed, fail legally or become stale?</li>\n<li>Did speech describe the authoritative result accurately?</li>\n<li>Did replay, ambiguity or a late response cause a duplicate side effect?</li>\n<li>Did the agent ask, abstain or remain silent when confidence was insufficient?</li>\n<li>Did cost, tokens and latency stay inside the operating budget?</li>\n</ul>\n<p>Conversational naturalness is a soft metric. Cross-player leakage, unauthorized action and duplicate mutation are hard failures. This separation is consistent with the broader risk-management principle that an AI system must be measured in its real context, not only by average output quality; the <a href=\"https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.100-1.pdf\" rel=\"noopener noreferrer\">NIST AI Risk Management Framework</a> is a useful general reference.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"the-lineage2ai-interpretation\" data-section-number=\"06\">The Lineage2AI interpretation</h2>\n<p>Lineage2AI uses “agentic NPC” in a deliberately bounded sense. A party-level planner can interpret natural voice or text, choose semantic capabilities and shape companion speech. The Java GameServer remains the authority for identity, state, permissions, internal identifiers and every gameplay side effect. The public <a href=\"/server-authoritative-ai\">server-authoritative AI overview</a> describes that boundary.</p>\n<p>The clean-slate Agentic Engine repository contains contract and offline evidence for structured planning, capability selection, evaluation and immutable release controls. That is not the same as declaring every planned capability production-proven. SOURCE, OFFLINE, BOOT, IN_GAME and SOAK evidence remain separate. A lab result proves the tested lab claim; it does not silently promote itself into a live-world claim.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"a-practical-checklist\" data-section-number=\"07\">A practical checklist</h2>\n<p>When a project calls an NPC agentic, ask for concrete answers:</p>\n<ul>\n<li>What can the NPC observe, and who authored that state?</li>\n<li>What exact capabilities can it choose right now?</li>\n<li>Can generated text directly mutate the world?</li>\n<li>What revalidation happens between proposal and execution?</li>\n<li>How are stale turns, retries and duplicate actions rejected?</li>\n<li>Does the character wait for the real result before speaking?</li>\n<li>What memory is stored, with whose consent and provenance?</li>\n<li>Which benchmarks test failure, not just success?</li>\n<li>What evidence level supports each public claim?</li>\n</ul>\n<p>If those questions have verifiable answers, “agentic NPC” describes an architecture. If they do not, it is probably only a mood word. The goal of the term should be clarity: a character that can participate in the world through a measurable, bounded and accountable action loop.</p>\n</section>",
      "sources": [
        {
          "id": "react-paper",
          "title": "ReAct: Synergizing Reasoning and Acting in Language Models",
          "url": "https://arxiv.org/abs/2210.03629",
          "publisher": "arXiv / ICLR 2023",
          "type": "research-paper",
          "primary": true,
          "accessedAt": "2026-08-28"
        },
        {
          "id": "generative-agents-paper",
          "title": "Generative Agents: Interactive Simulacra of Human Behavior",
          "url": "https://arxiv.org/abs/2304.03442",
          "publisher": "arXiv / UIST 2023",
          "type": "research-paper",
          "primary": true,
          "accessedAt": "2026-08-28"
        },
        {
          "id": "nist-ai-rmf",
          "title": "Artificial Intelligence Risk Management Framework (AI RMF 1.0)",
          "url": "https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.100-1.pdf",
          "publisher": "NIST",
          "type": "standard",
          "primary": true,
          "accessedAt": "2026-08-28"
        },
        {
          "id": "lineage2ai-architecture",
          "title": "Lineage2AI Server-Authoritative AI",
          "url": "https://lineage2ai.com/server-authoritative-ai",
          "publisher": "Lineage2AI",
          "type": "first-party-product-page",
          "primary": true,
          "accessedAt": "2026-08-28"
        }
      ],
      "claims": [
        {
          "id": "agent-loop-definition",
          "text": "An agentic NPC closes a loop between observation, bounded decision, action and result feedback rather than producing dialogue alone.",
          "evidence": [
            "react-paper",
            "generative-agents-paper"
          ]
        },
        {
          "id": "memory-is-not-agency",
          "text": "Persistent memory can support continuity but does not by itself make an NPC agentic.",
          "evidence": [
            "generative-agents-paper"
          ]
        },
        {
          "id": "authority-boundary",
          "text": "In Lineage2AI the model proposes semantic actions while the Java GameServer remains the execution authority.",
          "evidence": [
            "lineage2ai-architecture",
            "repo:agentic-engine-contracts"
          ]
        },
        {
          "id": "risk-evaluation",
          "text": "Useful evaluation must include safety and failure behavior, not only conversational quality.",
          "evidence": [
            "nist-ai-rmf",
            "repo:agentic-engine-offline-evaluator"
          ]
        }
      ],
      "outgoingTopics": [
        "glossary-autonomous-game-agent",
        "architecture-server-authoritative-ai",
        "glossary-persistent-npc-memory"
      ]
    },
    {
      "articleId": "server-authoritative-ai-agents",
      "topicId": "architecture-server-authoritative-ai",
      "canonicalPath": "/architecture/server-authoritative-ai/",
      "canonicalUrl": "https://lineage2ai.com/architecture/server-authoritative-ai",
      "title": "Server-Authoritative AI Agents in MMORPGs",
      "description": "A reference architecture for letting LLM agents interpret player intent without giving generated output direct control of a shared MMORPG world.",
      "language": "en",
      "publishedAt": "2026-08-28T12:05:00+03:00",
      "updatedAt": "2026-08-28",
      "reviewedAt": "2026-08-28",
      "evidenceLevel": "SOURCE_PLUS_REPOSITORY_OFFLINE",
      "authors": [
        {
          "id": "christian-zapasnik",
          "type": "Person",
          "name": "Christian Zapasnik",
          "jobTitle": "Founder and Lead Agentic AI Systems Architect",
          "url": "/authors/christian-zapasnik",
          "description": "Christian Zapasnik is the founder and lead systems architect behind Lineage2AI, building server-authoritative agentic NPC, voice, memory, calibration and evaluation systems for persistent MMORPG worlds.",
          "sameAs": [
            "https://www.facebook.com/christian.schmitz.5496683",
            "https://github.com/christianza1989"
          ],
          "knowsAbout": [
            "Agentic AI",
            "AI MMORPG architecture",
            "Server-authoritative AI",
            "LLM agents",
            "AI NPCs",
            "Speech-to-text",
            "Text-to-speech",
            "Persistent agent memory",
            "AI evaluation and calibration"
          ]
        }
      ],
      "wordCount": 1220,
      "heroImage": "/topical-blog/server-authoritative-ai-agents/hero.webp",
      "heroAlt": "A luminous verification gate separates AI action proposals from an authoritative multiplayer fantasy world",
      "heroWidth": 1672,
      "heroHeight": 941,
      "markdownUrl": "/topical-blog/articles/server-authoritative-ai-agents.md",
      "html": "<p>A <strong>server-authoritative AI agent</strong> can interpret language and propose useful actions, but it cannot make generated text become multiplayer truth. The model is a planner. Deterministic game-server code owns identity, current state, permissions, internal identifiers and every side effect.</p>\n<p>This separation is the most important architectural boundary for LLM-powered characters in a shared MMORPG. A model can produce a persuasive answer that is stale, ambiguous, malformed or manipulated. The server must remain correct even when the model is wrong.</p>\n<p>The pattern can be summarized in one sentence: <strong>AI proposes; the authoritative server binds, validates, executes and reports what actually happened.</strong></p>\n<section class=\"topical-section\">\n<h2 id=\"why-ordinary-tool-calling-is-not-enough\" data-section-number=\"01\">Why ordinary tool calling is not enough</h2>\n<p>Tool calling gives a model a structured way to request an operation. It does not automatically make that operation safe for a live game. A tool schema may still expose excessive authority, accept invented identifiers, reuse stale context or apply the same mutation twice after a retry.</p>\n<p>Security guidance on <a href=\"https://genai.owasp.org/llmrisk/llm01-prompt-injection/\" rel=\"noopener noreferrer\">prompt injection</a> makes the broader point that model behavior can be influenced by untrusted content and that restrictions must exist outside the model. In a game, untrusted content includes player speech, chat, item names, NPC dialogue, memories, retrieved knowledge and even model-generated observations. None of those strings should be able to expand permissions.</p>\n<p>A server-authoritative architecture therefore treats every model response as data. Strict parsing is necessary, but the decisive question is not “does this JSON match the schema?” It is “is this exact action legal for this exact actor in the current authoritative state?”</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"the-planner-binder-executor-pattern\" data-section-number=\"02\">The planner–binder–executor pattern</h2>\n<p>The architecture becomes easier to reason about when responsibility is split into three named layers.</p>\n<h3 id=\"planner\">Planner</h3>\n<p>The planner receives bounded context and a current capability slice. It may interpret “keep me alive while we cross the bridge” as a support goal, select a semantic healing or defensive capability, choose an opaque candidate and produce short companion speech.</p>\n<p>The planner should not author a raw skill ID, database key, arbitrary Java method, shell command or unrestricted world coordinate. It chooses among meanings and candidates that the server exposed for this turn.</p>\n<h3 id=\"binder\">Binder</h3>\n<p>The binder is deterministic code. It resolves opaque candidate handles to internal identifiers and checks that the candidate still belongs to the current actor, catalog version, target and revision. A model cannot turn an invented string into an executable capability.</p>\n<p>This layer is essential because a valid plan can become stale. The target may move, a cooldown may begin, an item may leave inventory or a newer player command may supersede the turn. The binder converts semantic intent into a current, inspectable execution request—or rejects it.</p>\n<h3 id=\"executor\">Executor</h3>\n<p>The executor is the existing authoritative game logic. It rechecks ownership, actor state, target legality, distance, resources, cooldown, inventory, concurrency and policy. Only this layer may change the shared world. Its result becomes the source of truth for delivery, memory and the next observation.</p>\n<p>This is a practical extension of <a href=\"/glossary/agentic-npc\">the agentic NPC loop</a>: reasoning and acting are connected, but action is mediated by the system that already owns game rules.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"a-complete-turn\" data-section-number=\"03\">A complete turn</h2>\n<p>One safe turn can be traced end to end:</p>\n<ol>\n<li>The player sends text or completes a push-to-talk utterance.</li>\n<li>Java assigns owner, session, turn, deadline, command epoch and the relevant state revisions.</li>\n<li>The server exposes bounded state, opaque candidates and only the capabilities legal for this turn.</li>\n<li>One party-level planner returns a strict decision with zero or more ordered semantic action proposals.</li>\n<li>The binder resolves those proposals against the original envelope and the newest relevant state.</li>\n<li>The executor applies only proposals that still satisfy game rules.</li>\n<li>Java publishes a typed authoritative result for every proposal.</li>\n<li>Companion speech, memory and optional TTS finalize from accepted results.</li>\n<li>Late output for a cancelled or superseded turn is discarded.</li>\n</ol>\n<p>The language model never becomes a shadow GameServer. It does not maintain an independent canonical copy of the world and it cannot talk a failed action into success.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"state-drift-and-stale-actions\" data-section-number=\"04\">State drift and stale actions</h2>\n<p>MMORPG state changes while a model is thinking. A single global version number is often too coarse because unrelated activity would invalidate everything. A practical envelope can carry scoped revisions: owner command epoch, actor state revision, target revision, inventory revision, party revision and capability-catalog digest.</p>\n<p>The exact fields differ by game, but the rule is stable. The proposal must be bound to the state assumptions under which it was made, and the executor must check the assumptions that matter to the side effect. If the target revision changed, reject or replan. Do not silently apply an old decision to a new world.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"retries-without-duplicate-side-effects\" data-section-number=\"05\">Retries without duplicate side effects</h2>\n<p>Networks retry. Providers time out. A gateway may deliver the same body twice. Without idempotency, “use this item” or “transfer this object” can become two mutations.</p>\n<p>A robust turn uses a stable request or action key and records the terminal outcome. An exact replay returns the existing result rather than executing again. A request that reuses an identifier with changed content is rejected. Deadlines and tombstones prevent a late provider response from reviving a cancelled action.</p>\n<p>This property must be tested with side-effect counts, not inferred from logs that merely look similar. Zero duplicate side effects is a hard invariant.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"speak-after-the-result\" data-section-number=\"06\">Speak after the result</h2>\n<p>Generated speech is part of the trust boundary. If a companion says “I healed you” before execution, a cooldown or state change can make the sentence false. The safer sequence is proposal, execution result, then terminal delivery.</p>\n<p>The result may support different outcomes: success confirmation, a concise reason for legal failure, a clarification request or intentional silence. A late result should not speak into a newer session. Authoritative-result speech is therefore an architectural control, not only a dialogue style preference.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"the-lineage2ai-boundary\" data-section-number=\"07\">The Lineage2AI boundary</h2>\n<p>Lineage2AI’s public <a href=\"/server-authoritative-ai\">server-authoritative AI overview</a> uses this division between language intelligence and game authority. The clean-slate Agentic Engine V1 documents a strict structured decision, opaque candidates, deterministic Java binding, revision checks, idempotency and terminal delivery policy. The model can help a companion understand and express intent; Java remains the only authority that can make gameplay happen.</p>\n<p>Repository tests and offline harness results support specific contract-level claims. They do not prove every planned capability in live gameplay. The project keeps SOURCE, OFFLINE, BOOT, IN_GAME and SOAK evidence distinct so an architecture document cannot be mistaken for production acceptance.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"design-checklist\" data-section-number=\"08\">Design checklist</h2>\n<p>Before connecting an LLM agent to a shared world, verify:</p>\n<ul>\n<li>Does the model receive only a current, bounded capability set?</li>\n<li>Are world objects represented by opaque server-issued candidates?</li>\n<li>Can any free-form string become a method name, query or internal ID?</li>\n<li>Which revisions bind the plan to current state?</li>\n<li>Which checks are repeated at execution time?</li>\n<li>What idempotency key protects each mutation?</li>\n<li>What happens to late, duplicated and superseded turns?</li>\n<li>Does speech wait for authoritative results?</li>\n<li>Can memory writes occur only after a permitted final outcome?</li>\n<li>Can the runtime boot only a reviewed, immutable policy release?</li>\n<li>Are authority, cross-player isolation and duplicates hard evaluation gates?</li>\n</ul>\n<p>If the model is removed or behaves adversarially, the server should still protect game truth. That is the defining property of server-authoritative AI: model intelligence can improve the experience, but model correctness is never the final security boundary.</p>\n</section>",
      "sources": [
        {
          "id": "owasp-llm01",
          "title": "OWASP Top 10 for LLM Applications: Prompt Injection",
          "url": "https://genai.owasp.org/llmrisk/llm01-prompt-injection/",
          "publisher": "OWASP GenAI Security Project",
          "type": "security-guidance",
          "primary": true,
          "accessedAt": "2026-08-28"
        },
        {
          "id": "nist-ai-rmf",
          "title": "Artificial Intelligence Risk Management Framework (AI RMF 1.0)",
          "url": "https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.100-1.pdf",
          "publisher": "NIST",
          "type": "standard",
          "primary": true,
          "accessedAt": "2026-08-28"
        },
        {
          "id": "react-paper",
          "title": "ReAct: Synergizing Reasoning and Acting in Language Models",
          "url": "https://arxiv.org/abs/2210.03629",
          "publisher": "arXiv / ICLR 2023",
          "type": "research-paper",
          "primary": true,
          "accessedAt": "2026-08-28"
        },
        {
          "id": "lineage2ai-architecture",
          "title": "Lineage2AI Server-Authoritative AI",
          "url": "https://lineage2ai.com/server-authoritative-ai",
          "publisher": "Lineage2AI",
          "type": "first-party-product-page",
          "primary": true,
          "accessedAt": "2026-08-28"
        }
      ],
      "claims": [
        {
          "id": "model-proposes-server-decides",
          "text": "A server-authoritative agent treats model output as an untrusted proposal and lets deterministic server code own every side effect.",
          "evidence": [
            "owasp-llm01",
            "lineage2ai-architecture",
            "repo:agentic-engine-contracts"
          ]
        },
        {
          "id": "fresh-revalidation",
          "text": "Binding and execution must revalidate current state because the world can change after the planning snapshot.",
          "evidence": [
            "repo:agentic-engine-revision-contracts"
          ]
        },
        {
          "id": "result-before-speech",
          "text": "Action-confirming speech should be derived from the authoritative result rather than the model's prediction.",
          "evidence": [
            "repo:agentic-engine-terminal-delivery"
          ]
        },
        {
          "id": "risk-context",
          "text": "AI risk controls should be evaluated in the system's real operating context, including shared-state impact.",
          "evidence": [
            "nist-ai-rmf"
          ]
        }
      ],
      "outgoingTopics": [
        "glossary-agentic-npc",
        "architecture-authoritative-result-speech"
      ]
    },
    {
      "articleId": "offline-vs-online-ai-calibration",
      "topicId": "ai-systems-calibration-offline-vs-online-calibration",
      "canonicalPath": "/ai-systems/calibration/offline-vs-online-calibration/",
      "canonicalUrl": "https://lineage2ai.com/ai-systems/calibration/offline-vs-online-calibration",
      "title": "Offline vs Online AI Calibration: How Agents Improve Safely",
      "description": "A rigorous guide to offline calibration, online measurement and why a live MMORPG agent should not rewrite its own policy or permissions.",
      "language": "en",
      "publishedAt": "2026-08-29T11:45:00+03:00",
      "updatedAt": "2026-08-29",
      "reviewedAt": "2026-08-29",
      "evidenceLevel": "SOURCE_PLUS_HISTORICAL_OFFLINE",
      "authors": [
        {
          "id": "christian-zapasnik",
          "type": "Person",
          "name": "Christian Zapasnik",
          "jobTitle": "Founder and Lead Agentic AI Systems Architect",
          "url": "/authors/christian-zapasnik",
          "description": "Christian Zapasnik is the founder and lead systems architect behind Lineage2AI, building server-authoritative agentic NPC, voice, memory, calibration and evaluation systems for persistent MMORPG worlds.",
          "sameAs": [
            "https://www.facebook.com/christian.schmitz.5496683",
            "https://github.com/christianza1989"
          ],
          "knowsAbout": [
            "Agentic AI",
            "AI MMORPG architecture",
            "Server-authoritative AI",
            "LLM agents",
            "AI NPCs",
            "Speech-to-text",
            "Text-to-speech",
            "Persistent agent memory",
            "AI evaluation and calibration"
          ]
        }
      ],
      "wordCount": 1524,
      "heroImage": "/topical-blog/offline-vs-online-ai-calibration/hero.webp",
      "heroAlt": "A controlled offline calibration laboratory is separated from a stable live fantasy world by an immutable release gate",
      "heroWidth": 1672,
      "heroHeight": 941,
      "markdownUrl": "/topical-blog/articles/offline-vs-online-ai-calibration.md",
      "html": "<p><strong>AI calibration</strong> is the process of measuring an AI system against a defined operating target and adjusting the system so its behavior, uncertainty, cost and safety are better aligned with that target. “Autonomous calibration” can mean that software generates candidates and runs evaluations automatically. It should not automatically mean that a live agent rewrites its own policy, tools or permissions.</p>\n<p>For an MMORPG, the safest design separates <strong>offline improvement</strong> from <strong>online operation</strong>. The laboratory may generate scenarios, diagnose failures, propose bounded changes and compare candidates. The live runtime measures behavior and emits evidence, but a laboratory candidate must never silently become live policy. In the current Lineage2AI Hermes architecture, runtime prompt supplements are disabled entirely.</p>\n<p>That separation lets AI help improve AI without making the active game world an uncontrolled training environment.</p>\n<section class=\"topical-section\">\n<h2 id=\"calibration-has-more-than-one-meaning\" data-section-number=\"01\">Calibration has more than one meaning</h2>\n<p>The word is often used too loosely. At least four different problems should be named separately.</p>\n<ul>\n<li><strong>Confidence calibration:</strong> when a model says it is 80% confident, similar predictions should be correct roughly 80% of the time. Measures may include reliability curves, expected calibration error and Brier score.</li>\n<li><strong>Behavior calibration:</strong> the agent chooses the right action, tool, speaker behavior, refusal or clarification for the situation.</li>\n<li><strong>System calibration:</strong> quality is balanced against latency, tokens, cost, queue pressure and failure recovery across the full pipeline.</li>\n<li><strong>Release calibration:</strong> thresholds and gates determine whether a candidate may progress from lab evaluation to shadow, canary and broader use.</li>\n</ul>\n<p>An MMORPG agent may not expose a trustworthy numeric confidence for every decision, yet it still needs behavior calibration. It should act when grounded, ask when ambiguity is material, abstain when authority is absent and remain silent when speech would be misleading.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"offline-calibration\" data-section-number=\"02\">Offline calibration</h2>\n<p>Offline calibration runs outside the authoritative gameplay path. Inputs are recorded or synthetic scenarios, fixed fixtures, simulations and sanitized failure examples. Baseline and candidate systems can be executed under matched conditions and compared before any release affects a player.</p>\n<p>A rigorous offline loop looks like this:</p>\n<ol>\n<li>Define a versioned scenario corpus and untouched holdout.</li>\n<li>Run the current baseline with fixed provider, model, prompt, catalog and evaluator versions.</li>\n<li>Classify failures by layer: interpretation, capability selection, binding, execution prediction, speaker policy, safety, latency or budget.</li>\n<li>Generate one or more bounded candidates.</li>\n<li>Apply static policy checks before expensive model calls.</li>\n<li>Run baseline and candidate on the same scenarios.</li>\n<li>Enforce hard invariants before considering soft improvements.</li>\n<li>Test the survivor on a holdout that did not guide candidate generation.</li>\n<li>Require review and create an immutable candidate or release artifact with evidence IDs and digests.</li>\n</ol>\n<p>Research such as <a href=\"https://arxiv.org/abs/2303.17651\" rel=\"noopener noreferrer\">Self-Refine</a> shows an output–feedback–revision loop that can improve an answer without changing model weights. <a href=\"https://arxiv.org/abs/2303.11366\" rel=\"noopener noreferrer\">Reflexion</a> studies verbal feedback retained across trajectories. <a href=\"https://arxiv.org/abs/2310.03714\" rel=\"noopener noreferrer\">DSPy</a> treats language-model pipelines as programs whose prompts and demonstrations can be optimized against metrics. These are related mechanisms, not interchangeable proof that a live agent should edit itself.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"online-calibration\" data-section-number=\"03\">Online calibration</h2>\n<p>Online calibration uses current production or test traffic to measure the operating system. It can detect provider drift, new language patterns, state distributions, latency changes and failure clusters that an offline corpus missed.</p>\n<p>The safest online stages do not immediately change behavior:</p>\n<ul>\n<li><strong>Measure-only:</strong> collect bounded metrics and authoritative outcomes.</li>\n<li><strong>Shadow:</strong> run a candidate without side effects and compare its decisions with the active release.</li>\n<li><strong>Named canary:</strong> expose a reviewed candidate only to explicitly selected owners, sessions or turn classes with hard stop conditions.</li>\n<li><strong>Soak:</strong> observe enough volume and time to detect rare regressions before expansion.</li>\n</ul>\n<p>Online evidence is valuable because simulation is never the whole world. It is dangerous when raw player content silently becomes training data, when a judge model controls promotion by itself, or when a live agent can expand its own permission surface.</p>\n<p>The <a href=\"https://www.nist.gov/itl/ai-risk-management-framework\" rel=\"noopener noreferrer\">NIST AI Risk Management Framework</a> treats trustworthiness as a consideration across the design, development, use and evaluation of AI systems. NIST’s current overview also says AI RMF 1.0 is being revised. Here it is used as lifecycle governance guidance, not as proof that any particular calibration mechanism is safe or deployed.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"what-ai-trains-ai-can-honestly-mean\" data-section-number=\"04\">What “AI trains AI” can honestly mean</h2>\n<p>The phrase may refer to several different loops:</p>\n<ul>\n<li>one model generates synthetic instructions or game scenarios;</li>\n<li>an evaluator model scores or compares candidate outputs;</li>\n<li>a critic model proposes textual improvements;</li>\n<li>a teacher model labels preferences for a student;</li>\n<li>a search process optimizes prompts, demonstrations or retrieval settings;</li>\n<li>preference data later supports DPO, RLAIF or another model-weight update.</li>\n</ul>\n<p>Only the last group necessarily changes weights. Self-critique, reflection memory, prompt search and routing hints can change inference behavior without training the underlying model. AI training AI should therefore always identify what changes: data, prompt, policy, memory, tools, retrieval settings or weights.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"hard-gates-before-soft-scores\" data-section-number=\"05\">Hard gates before soft scores</h2>\n<p>Average quality must not compensate for an authority violation. A candidate that sounds better but duplicates one inventory mutation is worse. A useful gate order is:</p>\n<ol>\n<li>Schema and static policy validity.</li>\n<li>Zero unauthorized or cross-owner side effects.</li>\n<li>Zero duplicate mutations under replay.</li>\n<li>Zero critical false actions from ambiguous voice.</li>\n<li>No speaker-policy violations.</li>\n<li>Non-regression in exact capability and required outcome metrics.</li>\n<li>Budget limits for tokens, latency and cost.</li>\n<li>Only then: style, helpfulness, persona and conversational preference.</li>\n</ol>\n<p>An LLM judge can help score subjective dialogue, but deterministic invariants should remain deterministic. Judges can show position, verbosity, style and model-family bias. Their agreement with humans must itself be calibrated, and uncertain cases need adjudication.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"the-lineage2ai-offline-refinement-model\" data-section-number=\"06\">The Lineage2AI offline refinement model</h2>\n<p>Lineage2AI’s repository contains a standalone offline harness for controlled refinement experiments. It allows a bounded candidate with at most eight <code>PROMPT_NOTE</code> or <code>ROUTING_HINT</code> edits. Every edit needs an evidence ID and is tied to an immutable base-policy digest. Candidates cannot add executable skills, callbacks, tools or permissions.</p>\n<p>That harness is <strong>not</strong> the current runtime prompt-update mechanism. The current Hermes Agent Engine loads <code>agent-system/SYSTEM.md</code> verbatim as its only stable planner prompt. Its former runtime-release module is a retired evidence tombstone stating that runtime prompt supplements are disabled. The HTTP gateway exposes turn planning and turn-result delivery, not a live refinement endpoint.</p>\n<p>The offline harness can still build and atomically write a digest-bound immutable release artifact for an operator-controlled experiment. Earlier accepted ADRs described a runtime loader for such artifacts, but the current Hermes implementation supersedes that path. An offline promotion or exported file therefore does not update the current live planner.</p>\n<p>The paired evaluator applies hard gates including a minimum scenario count, authority and duplicate-side-effect checks, critical voice false-action checks, speaker policy, non-regression and input-token limits. Current unit tests cover bounded edits, strict parsing, paired-corpus gates, promotion, immutable output, rollback and lock failure.</p>\n<p>One <strong>historical provider-lab</strong> evidence record, observed on August 11, 2026, contains 36 synthetic scenarios. In that controlled run, exact capability rate remained 1.0, the listed hard violations remained zero, and exact outcome rate moved from 0.944444 for the baseline to 0.972222 for the candidate. The environment had Docker, database, L2 server, client, STT and TTS stopped, and Java outcomes were simulated. Current evidence validation reports that the record’s source artifacts have drifted since capture. Those values prove only the recorded OFFLINE run; they are neither current-runtime metrics nor an IN_GAME success rate.</p>\n<p>This design builds on the same trust boundary described by <a href=\"/architecture/server-authoritative-ai\">server-authoritative AI agents</a>: probabilistic systems may propose, diagnose and compare; authoritative gates decide what can progress.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"why-live-self-modification-is-a-different-risk-class\" data-section-number=\"07\">Why live self-modification is a different risk class</h2>\n<p>A live agent that can edit its own system prompt, tool descriptions, permissions or release thresholds creates a recursive control problem. The behavior being evaluated can change the evaluator, the action surface or the standard for acceptance. Rollback becomes unclear, incident reproduction becomes harder and malicious content may persist as policy.</p>\n<p>The answer is not to ban automation. It is to place automation inside a controlled laboratory with fixed budgets, immutable inputs, independent holdouts and explicit promotion authority. Even when candidate generation and evaluation are automated, deployment can remain a separate human-governed decision.</p>\n</section>\n<section class=\"topical-section\">\n<h2 id=\"a-safe-operating-checklist\" data-section-number=\"08\">A safe operating checklist</h2>\n<ul>\n<li>Name the exact calibration target and metric.</li>\n<li>Version the corpus, generator, provider, model, prompt, tools and evaluator.</li>\n<li>Keep a holdout outside the optimization loop.</li>\n<li>Separate deterministic safety gates from subjective judge scores.</li>\n<li>Record every candidate edit and its supporting evidence.</li>\n<li>Prevent candidates from expanding executable permissions.</li>\n<li>Bind offline artifacts to immutable digests and support tested rollback.</li>\n<li>Treat promotion and artifact export as evidence gates, not deployment proof.</li>\n<li>Use online traffic first for measurement or side-effect-free shadowing.</li>\n<li>Require named canaries and hard stop conditions before broader exposure.</li>\n<li>Keep player privacy, consent and data provenance explicit.</li>\n<li>Report OFFLINE, BOOT, IN_GAME and SOAK results as different evidence levels.</li>\n</ul>\n<p>Safe autonomous calibration is therefore not “the AI changes itself whenever it wants.” It is an engineered loop in which automation can accelerate diagnosis, candidate generation and evaluation while authority, evidence and release boundaries remain stable. In the current Lineage2AI runtime, that boundary is stricter still: one canonical Hermes system prompt is deployed, and offline prompt supplements are not consumed.</p>\n</section>",
      "sources": [
        {
          "id": "self-refine-paper",
          "title": "Self-Refine: Iterative Refinement with Self-Feedback",
          "url": "https://arxiv.org/abs/2303.17651",
          "publisher": "arXiv / NeurIPS 2023",
          "type": "research-paper",
          "primary": true,
          "accessedAt": "2026-08-29"
        },
        {
          "id": "reflexion-paper",
          "title": "Reflexion: Language Agents with Verbal Reinforcement Learning",
          "url": "https://arxiv.org/abs/2303.11366",
          "publisher": "arXiv / NeurIPS 2023",
          "type": "research-paper",
          "primary": true,
          "accessedAt": "2026-08-29"
        },
        {
          "id": "dspy-paper",
          "title": "DSPy: Compiling Declarative Language Model Calls into Self-Improving Pipelines",
          "url": "https://arxiv.org/abs/2310.03714",
          "publisher": "arXiv / ICLR 2024",
          "type": "research-paper",
          "primary": true,
          "accessedAt": "2026-08-29"
        },
        {
          "id": "nist-ai-rmf",
          "title": "NIST AI Risk Management Framework (AI RMF 1.0 overview)",
          "url": "https://www.nist.gov/itl/ai-risk-management-framework",
          "publisher": "NIST",
          "type": "standard",
          "primary": true,
          "accessedAt": "2026-08-29"
        }
      ],
      "claims": [
        {
          "id": "refinement-not-weight-training",
          "text": "Self-feedback and verbal reflection can improve outputs or future decisions without updating model weights.",
          "evidence": [
            "self-refine-paper",
            "reflexion-paper"
          ]
        },
        {
          "id": "offline-optimization",
          "text": "Metric-driven optimization can search prompts or pipeline parameters offline while leaving live execution separate.",
          "evidence": [
            "dspy-paper"
          ]
        },
        {
          "id": "lineage2ai-refinement-boundary",
          "text": "Lineage2AI's standalone offline harness permits bounded PROMPT_NOTE and ROUTING_HINT candidates, while the current Hermes runtime uses one canonical SYSTEM.md and disables runtime prompt supplements.",
          "evidence": [
            "repo:agentic-engine-refinement-contract"
          ]
        },
        {
          "id": "lineage2ai-offline-result",
          "text": "A historical 2026-08-11 provider-lab record covers 36 synthetic scenarios, improved exact outcome rate from 0.944444 to 0.972222, retained exact capability rate 1.0 and recorded zero listed hard safety violations; current evidence validation reports source drift, so these are not current-runtime metrics.",
          "evidence": [
            "repo:agentic-engine-offline-refinement-evidence"
          ]
        },
        {
          "id": "deployment-separation",
          "text": "The offline harness can export an immutable artifact, but the current Hermes Agent Engine does not consume that supplement; promotion or export is not live deployment or in-game acceptance.",
          "evidence": [
            "repo:agentic-engine-release-policy"
          ]
        },
        {
          "id": "risk-lifecycle-governance",
          "text": "The NIST AI RMF frames trustworthiness as a consideration across AI design, development, use and evaluation rather than as a single model score.",
          "evidence": [
            "nist-ai-rmf"
          ]
        }
      ],
      "outgoingTopics": [
        "ai-systems-ai-training-ai",
        "architecture-server-authoritative-ai"
      ]
    }
  ]
}
