Proposal Specification · Open Standard · v1.0

Especificación de la propuesta · Estándar abierto · v1.0

The agent.json
specification
La especificación
agent.json

A structured file published at the root of any domain. It declares the identity, voice, and intent of a site — so agents can generate the right experience for each individual visitor.

Un archivo estructurado publicado en la raíz de cualquier dominio. Declara la identidad, la voz y la intención de un sitio — para que los agentes puedan generar la experiencia adecuada para cada visitante individual.

v1.0-draft · Mayo 2026 · liquidwebprotocol.com

Overview

Resumen

14
Declarative blocks
Bloques declarativos
5
Required blocks
Bloques obligatorios
JSON
Standard format
Formato estándar

agent.json is the machine-readable heart of the Liquid Web Proposal. Like robots.txt tells crawlers what to index, agent.json tells interpreters how to generate a personalised experience from first principles.

agent.json es el núcleo legible por máquinas del Liquid Web Proposal. Igual que robots.txt indica a los rastreadores qué indexar, agent.json indica a los intérpretes cómo generar una experiencia personalizada desde cero.

It separates what a site is from how it appears — the same leap CSS made in 1996, applied to the entire web experience.

Separa lo que un sitio es de cómo aparece — el mismo salto que dio CSS en 1996, aplicado a toda la experiencia web.

File placement

Ubicación del archivo

Where to publish it

Dónde publicarlo

  • 📄 robots.txt
  • 📄 sitemap.xml
  • 📄 agent.json  ← publish here← publicar aquí
  • 📁 index.html

The file must be accessible at https://yourdomain.com/agent.json with no authentication. Served as application/json.

El archivo debe ser accesible en https://tudominio.com/agent.json sin autenticación. Servido como application/json.

Declare it in your HTML

Declárado en tu HTML

Optionally, add a <meta> tag inside the <head> of each page. This lets interpreters discover the protocol without relying solely on file conventions — and signals intent to any agent that reads the page source directly.

Opcionalmente, añade un tag <meta> dentro del <head> de cada página. Esto permite que los intérpretes descubran el protocolo sin depender únicamente de las convenciones de archivo — y señala la intención a cualquier agente que lea el código fuente directamente.

<!-- Inside <head> -->
<meta name="liquid-web-agent"
      content="src=/agent.json; version=1.0">
Attribute Value Description Descripción
name liquid-web-agent Fixed identifier for the protocol. Interpreters scan for this name. Identificador fijo del protocolo. Los intérpretes buscan este nombre.
content · src /agent.json Path to the agent.json file. Can be absolute or root-relative. Ruta al archivo agent.json. Puede ser absoluta o relativa a la raíz.
content · version 1.0 Protocol version the site declares support for. Versión del protocolo que el sitio declara soportar.

The meta tag is optional but recommended. It follows the same convention as <meta name="generator"> or OpenSearch descriptors — a machine-readable hint embedded directly in the page.

El meta tag es opcional pero recomendado. Sigue la misma convención que <meta name="generator"> o los descriptores OpenSearch — una pista legible por máquinas integrada directamente en la página.

Blocks

Bloques

"identity" Identity Identidad Required Obligatorio

Declares who the organisation is. The foundation of every generated experience. An interpreter reads this first to understand the entity behind the site.

Declara quién es la organización. La base de toda experiencia generada. Un intérprete lee esto primero para entender la entidad detrás del sitio.

"identity": {
  "name": "Econecta",
  "type": "SaaS / B2B",
  "category": "Energy management for SMEs",
  "tagline": "Energy intelligence for every business",
  "description": "Platform that helps small and medium businesses understand, reduce and optimise their energy consumption.",
  "founded": 2023,
  "language_default": "es",
  "languages_supported": ["es", "en"]
}
Field Type Description Descripción
namestring Legal or commercial name of the organisation Nombre legal o comercial de la organización
typestring Business model descriptor (SaaS, e-commerce, NGO, etc.) Descriptor del modelo de negocio (SaaS, e-commerce, ONG, etc.)
categorystring Industry or vertical Industria o sector
taglinestring Short positioning line — used in generated headlines Línea de posicionamiento corta — usada en titulares generados
descriptionstring 1–3 sentence explanation of what the org does Explicación de 1–3 frases de lo que hace la organización
language_defaultstring ISO 639-1 code of the primary language Código ISO 639-1 del idioma principal
"voice" Voice & Tone Voz y Tono Required Obligatorio

Defines how the site communicates. Interpreters use this to calibrate register, complexity, and emotional temperature of every generated text element.

Define cómo se comunica el sitio. Los intérpretes lo usan para calibrar el registro, la complejidad y la temperatura emocional de cada elemento de texto generado.

"voice": {
  "tone": ["clear", "direct", "expert without being distant"],
  "personality": "An engineer who communicates like a teacher",
  "formality": "professional-relaxed",
  "avoid": ["corporate jargon", "techno-optimism clichés"],
  "pronouns": "second-person singular (you)",
  "adaptation_rules": {
    "with_experts": "use technical language freely",
    "with_non_technical": "use analogies, avoid acronyms"
  }
}
"products" Products & Services Productos y Servicios Required Obligatorio

Catalogue of what the site offers. Enables interpreters to surface the right product or service based on the visitor's intent and context, without surfacing irrelevant offers.

Catálogo de lo que ofrece el sitio. Permite a los intérpretes mostrar el producto o servicio adecuado según la intención y el contexto del visitante, sin mostrar ofertas irrelevantes.

"products": [
  {
    "id": "dashboard-basic",
    "name": "Econecta Basic",
    "description": "Real-time energy monitoring for businesses under 50 employees",
    "price_from": 49,
    "currency": "EUR",
    "audience": ["SME", "first-time buyer"],
    "key_benefit": "Visible cost savings in the first month",
    "cta_url": "/start"
  }
]
"intents" Intents Intenciones Required Obligatorio

Declares what modes of interaction this site can support. The interpreter reads the visitor's likely intent (explore, buy, get support, read) and generates an experience tuned to that mode.

Declara qué modos de interacción puede soportar el sitio. El intérprete lee la intención probable del visitante (explorar, comprar, soporte, leer) y genera una experiencia adaptada a ese modo.

"intents": [
  {
    "type": "explore",
    "description": "Visitor doesn't know us. Needs to understand what we do and why it matters.",
    "priority_content": ["hero", "key_benefits", "social_proof"]
  },
  {
    "type": "buy",
    "description": "Visitor is ready to purchase or sign up. Reduce friction.",
    "priority_content": ["pricing", "cta", "trust_signals"]
  },
  {
    "type": "support",
    "description": "Existing customer needs help.",
    "priority_content": ["documentation", "contact"]
  }
]
"agent" Agent Agente Required Obligatorio

Declares whether an AI agent is available, its capabilities, and any constraints. This is the block that activates the interpreter — without it, the file is informational only.

Declara si hay un agente de IA disponible, sus capacidades y limitaciones. Este es el bloque que activa el intérprete — sin él, el archivo es solo informativo.

"agent": {
  "enabled": true,
  "version": "1.0",
  "capabilities": [
    "generate_personalised_experience",
    "answer_product_questions",
    "route_to_support"
  ],
  "limitations": [
    "cannot process payments",
    "cannot access account data"
  ],
  "handoff_url": "/contact"
}
"brand" Brand Assets Activos de Marca Optional Opcional

Visual identity assets. Allows the interpreter to generate experiences that are visually consistent with the brand, even when building layouts from scratch.

Activos de identidad visual. Permite al intérprete generar experiencias visualmente coherentes con la marca, incluso al construir layouts desde cero.

"brand": {
  "logo_url": "https://yourdomain.com/logo.svg",
  "logo_dark_url": "https://yourdomain.com/logo-dark.svg",
  "colors": {
    "primary": "#1A6B3C",
    "secondary": "#F0F7F4",
    "accent": "#E8B84B"
  },
  "fonts": {
    "headline": "Syne",
    "body": "EB Garamond"
  }
}
"contact" Contact Contacto Optional Opcional

Contact information and location data. Used when a visitor explicitly asks how to reach the organisation, or when intent detection suggests support mode.

Información de contacto y datos de localización. Se usa cuando un visitante pregunta explícitamente cómo contactar a la organización, o cuando la detección de intención sugiere modo soporte.

"contact": {
  "email": "hello@yourdomain.com",
  "phone": "+34 900 000 000",
  "address": "Calle Mayor 1, Madrid, Spain",
  "support_url": "/help",
  "social": {
    "linkedin": "https://linkedin.com/company/yourco",
    "twitter": "https://twitter.com/yourco"
  }
}
"styles" Visual Styles Estilos Visuales Optional Opcional

Design preferences and constraints for generated interfaces. Think of it as a brief to the interpreter's design layer.

Preferencias y restricciones de diseño para las interfaces generadas. Piénsalo como un briefing para la capa de diseño del intérprete.

"styles": {
  "aesthetic": "clean, data-driven, trustworthy",
  "layout_preference": "editorial grid, generous whitespace",
  "imagery_style": "real photography, no stock illustrations",
  "dark_mode": true,
  "animation_level": "subtle"
}
"mission" Mission Misión Optional Opcional

The deeper purpose behind the organisation. Used when a visitor is evaluating whether to trust or join the company, not just buy from it.

El propósito más profundo de la organización. Se usa cuando un visitante evalúa si confiar en la empresa o unirse a ella, no solo comprar.

"mission": {
  "statement": "Make energy intelligence accessible to every business, not just enterprises.",
  "problem_solved": "SMEs pay up to 30% more for energy because they lack the data to negotiate and optimise.",
  "impact": "Every customer reduces their carbon footprint as a direct consequence of reducing waste."
}
"goals" Business Goals Objetivos de Negocio Optional Opcional

What the site is trying to achieve commercially. Helps the interpreter understand what a successful visit looks like and optimise the experience accordingly.

Lo que el sitio intenta lograr comercialmente. Ayuda al intérprete a entender cómo es una visita exitosa y optimizar la experiencia en consecuencia.

"goals": {
  "primary": "free trial signup",
  "secondary": ["demo request", "newsletter subscription"],
  "kpis": ["trial_signup_rate", "demo_completion_rate"],
  "avoid": ["high bounce without interaction", "support overload"]
}
"narrative" Narrative Narrativa Optional Opcional

The origin story and key messages. Gives the interpreter raw material for storytelling — the kind of copy that builds trust and resonance before a product pitch.

La historia de origen y los mensajes clave. Proporciona al intérprete material bruto para el storytelling — el tipo de copy que construye confianza y resonancia antes de presentar el producto.

"narrative": {
  "origin": "Founded after discovering that a mid-sized factory was paying triple per kWh versus its large competitors — simply because it lacked data.",
  "key_messages": [
    "Energy data should be democratised",
    "The best sustainability is the one you can measure",
    "Small businesses deserve enterprise-grade tools"
  ],
  "approved_metaphors": ["energy as a language", "the meter as a compass"],
  "forbidden_metaphors": ["revolution", "disruptive", "game-changer"]
}
"segments" Audience Segments Segmentos de Audiencia Optional Opcional

Named audience profiles the interpreter can target. When combined with visitor context, this is what enables true personalisation — not just adaptive copy, but adaptive logic.

Perfiles de audiencia nombrados a los que el intérprete puede dirigirse. Combinados con el contexto del visitante, son lo que permite la personalización real — no solo copy adaptativo, sino lógica adaptativa.

"segments": [
  {
    "id": "ops-manager",
    "description": "Operations or facilities manager. Practical. Responsible for costs. Sceptical of tech that adds complexity.",
    "priority_message": "Save time and money with zero technical overhead.",
    "avoid": ["API references", "technical architecture"]
  },
  {
    "id": "cto",
    "description": "Technical decision-maker. Evaluates integration complexity, data reliability, security.",
    "priority_message": "REST API, GDPR compliant, ISO 27001 certified.",
    "avoid": ["vague claims", "marketing language"]
  }
]
"content_governance" Content Governance Gobierno de Contenido Optional Opcional

Rules governing what the interpreter can and cannot generate. The last line of editorial control — ensures no generated experience diverges from brand, values, or legal constraints.

Reglas que gobiernan lo que el intérprete puede y no puede generar. La última línea de control editorial — garantiza que ninguna experiencia generada se desvíe de la marca, los valores o las restricciones legales.

"content_governance": {
  "can_generate": [
    "product descriptions",
    "explainer copy",
    "CTAs",
    "FAQs"
  ],
  "cannot_generate": [
    "pricing without approval",
    "competitor comparisons",
    "testimonials not in source data"
  ],
  "human_review_required": ["legal pages", "press releases"],
  "update_frequency": "monthly"
}

Full example

Ejemplo completo

A minimal valid agent.json includes the five required blocks. Optional blocks can be added as the proposal matures.

Un agent.json mínimo válido incluye los cinco bloques obligatorios. Los bloques opcionales se pueden añadir a medida que la propuesta madura.

{
  "protocol": "liquid-web",
  "version": "1.0",

  "identity": {
    "name": "Econecta",
    "type": "SaaS / B2B",
    "tagline": "Energy intelligence for every business",
    "description": "Platform that helps SMEs understand, reduce and optimise their energy consumption.",
    "language_default": "es"
  },

  "voice": {
    "tone": ["clear", "direct", "expert without being distant"],
    "formality": "professional-relaxed",
    "avoid": ["corporate jargon", "buzzwords"]
  },

  "products": [
    {
      "id": "basic",
      "name": "Econecta Basic",
      "description": "Real-time energy monitoring for businesses under 50 employees",
      "price_from": 49,
      "currency": "EUR",
      "cta_url": "/start"
    }
  ],

  "intents": [
    { "type": "explore", "priority_content": ["hero", "benefits"] },
    { "type": "buy", "priority_content": ["pricing", "cta"] }
  ],

  "agent": {
    "enabled": true,
    "version": "1.0",
    "capabilities": ["generate_experience", "answer_questions"],
    "handoff_url": "/contact"
  }
}