Conversation Mode: What New in v2.3.0

Your Website Just Learned to Have a Conversation

Until now, AI agents visiting your WordPress site had two options: read the brochure (/.well-known/ai) or search for something specific (searchContent). They could discover your site and query it — but they couldn’t read it. Not really. Reading meant scraping HTML, stripping tags, guessing at structure, and hoping for the best.

Version 2.3.0 of the Rootz AI Discovery plugin changes that. Your site now speaks three languages: HTML for browsers, structured JSON for AI discovery, and clean markdown for AI reading.

We call it Conversation Mode.

The Three Modes

Mode What It Does How AI Uses It Version
Broadcast Static snapshots — ai.json, llms.txt AI reads the brochure once v1.0+
Search Interactive queries — searchContent AI asks questions, gets answers v1.8+
Conversation On-demand page reads — getPage AI reads any page as clean markdown v2.3.0

Each mode builds on the last. Broadcast tells AI who you are. Search lets AI find what it needs. Conversation lets AI read what it found — in full, with structure, provenance, and proof.

getPage: Read Any Page as Markdown

The new getPage tool lets any AI agent request any published page on your site and receive it as clean, structured markdown — not raw HTML, not a scraping attempt, but a proper server-side conversion with metadata attached.

An AI agent calls:

GET /wp-json/rootz/v1/page?path=/about/

And receives: the page title, clean markdown content, word count (so the AI can plan its context window), content hash (SHA-256), publication and modification dates, content license, quoting permissions, the author, and an ECDSA cryptographic signature proving it came from your site.

Why this matters: Before getPage, an AI that found your About page via search had no way to read it except by fetching the HTML and trying to parse it. That means wrestling with navigation menus, sidebars, footers, JavaScript widgets, and WordPress shortcode output. Now it gets the content the way you wrote it — clean, complete, and verified.

Freshness: When Should AI Come Back?

Every getPage response includes a _freshness block with adaptive shelf-life metadata:

  • A page you edited today gets a 1-hour TTL — it’s actively changing
  • A page edited this week gets a 24-hour TTL
  • A page edited this month gets a 1-week TTL
  • A page untouched for 30+ days gets a 30-day TTL

The freshness metadata includes maxAge, freshUntil (an explicit timestamp), and refreshPolicy (real-time, daily, weekly, monthly). No configuration required — the TTL is computed automatically from your content’s actual modification history.

Why this matters: Without freshness signals, an AI agent has no idea when your content might change. It either caches forever (stale) or fetches every time (wasteful). The freshness block gives AI agents explicit guidance: “This content is good for 24 hours. Come back tomorrow.”

Origin Provenance: Your Stamp Travels With Your Content

Every dynamic response from v2.3.0 embeds two provenance blocks:

  • _origin — your domain, when the content was first published, when it was last modified, when it was served, and your wallet address as the signer
  • _provenance — the origin domain, the plugin version that served it, the spec version, and a link back to the AI Discovery Standard

These blocks are embedded in the response body, not just in HTTP headers. That means even if your content is scraped by the Wayback Machine, cached by a CDN, quoted in a research paper, or fed into a training dataset — the origin is baked in. The signer address, the domain, the timestamps, and the standard URL all travel with the content.

Why this matters: AI training pipelines strip HTTP headers. Scrapers don’t preserve server metadata. But response body content survives. Your provenance stamps are the difference between “some text from somewhere” and “content published by example.com on March 5, 2026, signed by wallet 0xD089…”

Search Pagination: No More Walls

The searchContent tool now supports full pagination:

  • offset parameter — skip to any position in results
  • type filter — search only posts, only pages, or both
  • totalFound — AI knows how many results exist
  • hasMore and nextOffset — AI knows exactly what to request next
  • Limit raised from 20 to 50 per request

Why this matters: A site with 200 blog posts used to return only the first 20 search results with no way to get more. Now an AI can systematically page through all results. The hasMore: true flag and nextOffset value give the AI explicit instructions for the next request.

Signed llms.txt: The One Thing No Other Plugin Does

The plugin generates /llms.txt (concise, with links) and optionally /llms-full.txt (full content inline). Both variants now include an ECDSA signature at the bottom:

---
_Generated by Rootz AI Discovery v2.3.0_
_Signed by: 0xD089..._
_Content hash: sha256:abc123..._
_Signature: 0x45a63a80..._
_Verify: https://example.com/.well-known/ai_

There are over a dozen WordPress llms.txt plugins. None of them sign their output. Ours does. That means an AI agent can verify that the llms.txt it received actually came from the site’s owner and hasn’t been replaced by a CDN, a caching layer, or an attacker.

Help Tips on Every Setting

Every setting on the Content tab now has an (i) button that expands into plain-language guidance. What does “Enable llms.txt” do? What should I set my posts limit to? What are content types? Hover or click the icon to find out.

We built this because we asked ourselves: if we don’t know what these settings do without reading the code, how will anyone else?

Get v2.3.0

Download v2.3.0 — Upload to your WordPress site via Plugins → Add New → Upload Plugin.

Already running an earlier version? The plugin auto-updates from rootz.global. Check your Dashboard → Updates page.

Want to see how your site scores? Run the scanner.

Want to join the network of AI-ready sites? Enable the Adoption Registry checkbox on the Account & Signing tab.