Docs

llms.txt & Depth Model

Two build-time endpoints, served by the Astro integration, that give AI agents a curated map of your published content — no crawling required.

llms.txt

GET /llms.txt

Follows the llms.txt convention: a plain-text, Markdown-formatted index of every published entry, grouped by collection, with a one-line summary per entry (summaryMachine, falling back to excerpt, then humanSummary, then the title).

# My Site

> A site about things.

- Home: https://your-site.com
- Full content: https://your-site.com/llms-full.txt
- JSON Feed: https://your-site.com/orbiter/feed.json
- Sitemap: https://your-site.com/orbiter/sitemap.xml

## Posts

- [My First Post](https://your-site.com/posts/my-first-post): A short summary.
- [Another Post](https://your-site.com/posts/another-post): ...

All collections are included by default. To restrict which collections appear, set the llms.collections setting (comma-separated collection IDs) — there's no dedicated UI for this yet, so set it via the meta API:

curl -X PUT https://your-site.com:4322/api/meta/llms.collections \
  -H "Authorization: Bearer <admin-session-token>" \
  -H "Content-Type: application/json" \
  -d '{"value": "posts,pages"}'

llms-full.txt

GET /llms-full.txt

Same index, but with full body content inlined instead of one-line summaries — for agents that want everything in a single fetch.

JSON Feed + Depth Model

GET /orbiter/feed.json

A JSON Feed v1.1 document. Every item includes an _orbiter block (collection, slug, and — when present — author, authorship, contentType, dossierId).

Progressive disclosure with ?depth=

Schema fields can carry a depth property (03), letting you tier how much detail a request gets:

DepthIntent
0Narrative — title, body, excerpt. What a human reader sees.
1Research — supporting fields (hypothesis, test setup, findings, ...)
2Evidence — claims, sources, relationships
3Machine — provenance and agent-facing fields (authorship, machine summary, suggested prompts, ...)
GET /orbiter/feed.json?depth=1          # narrative + research fields only
GET /orbiter/feed.json?depth=3          # everything
GET /orbiter/feed.json?collections=posts,dossiers

Fields without an explicit depth are treated as depth 0. Omit ?depth= entirely to get every field regardless of tier.

Where to set depth: it's a per-field schema property, same place as type and label. The built-in Dossier template (Schema tools) is the reference example — its fields span all four depth levels, grouped into Content, Research, Evidence, Meta, Provenance, and Agent sections.

Use cases

  • Give an AI agent a single entry point (/llms.txt) instead of expecting it to crawl your sitemap
  • Serve different levels of detail to different consumers — a chat agent might want depth 0, a research pipeline depth 3
  • Combine with the MCP Server or Public Content API for agents that need to query rather than just fetch a static index