What is AI metadata?

AI metadata is optional, human-readable context on each entity field — stored with your record-type schema and returned to extraction pipelines, MCP agents, and integrators when they fetch entity definitions.

Definition

In AnythingGraph, every record type (entity) has fields with a name, type, and required flag. Beyond that, you can attach AI metadata: three text properties that describe the field for machines and humans building extraction or agent workflows.

AI metadata does not change validation rules or storage. It is documentation embedded in the schema so VLMs, MCP tools, and your own ETL jobs know what each column means and where to find values in source material.

In the dashboard, open Entity structure → create or edit a record type → expand AI metadata on each field row.

The three fields

All three are optional strings. Empty values are omitted or stored as blank; they do not block ingest or row creation.

Where to set it

Source When to use
Dashboard → Entity structure Custom record types; edit anytime; best for iterative VLM tuning
Playbook JSON (catalog) Ship defaults with starter packs under playbook/playbooks/
Data-layer API / MCP POST /entities, PUT /entities/:id, or MCP create_entity / update_entity with description, example, extraction_hint in each field object

How it is used

  • VLM document extraction — fetch entity schema, build a prompt from AI metadata, extract JSON, ingest via playbook webhook. See the VLM extraction guide.
  • MCP agentsget_entity returns full field definitions including AI metadata for tool-using assistants.
  • REST integratorsGET /api/entities/:id (dashboard) or GET /entities/:id (data-layer) expose the same properties.
  • Dashboard entity detail — view descriptions and extraction hints when reviewing schema (expand field metadata on the entity page).
Not used for: row-level access control (ReBAC uses subject + playbook headers) or automatic OCR — AnythingGraph stores metadata; your pipeline runs the vision model.

Example field in API JSON

{
  "field_name": "invoice_number",
  "field_type": "TEXT",
  "is_required": true,
  "is_identifier": true,
  "description": "Unique invoice identifier from the vendor",
  "example": "INV-2024-0042",
  "extraction_hint": "Top-right of page 1, labeled Invoice #"
}

API access

# Full entity with AI metadata on every field
curl -s http://127.0.0.1:5180/api/entities/1

# MCP (agent host)
# list_entities → get_entity(entity_id)