garden.engram.defs

hailey.at

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "byteSlice": {
      "description": "A UTF-8 byte range in a snippet's text, like a rich-text facet's index.",
      "properties": {
        "byteEnd": {
          "minimum": 0,
          "type": "integer"
        },
        "byteStart": {
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "byteStart",
        "byteEnd"
      ],
      "type": "object"
    },
    "embedding": {
      "description": "A vector for a memory, computed by its author from the memory's text and tags (with the space's document prefix).",
      "properties": {
        "dims": {
          "maximum": 16000,
          "minimum": 1,
          "type": "integer"
        },
        "encoding": {
          "description": "f16le: little-endian IEEE half precision, 2 bytes per dimension.",
          "knownValues": [
            "f16le"
          ],
          "type": "string"
        },
        "model": {
          "maxLength": 256,
          "type": "string"
        },
        "modelDigest": {
          "maxLength": 256,
          "type": "string"
        },
        "vector": {
          "maxLength": 32000,
          "type": "bytes"
        }
      },
      "required": [
        "model",
        "modelDigest",
        "dims",
        "encoding",
        "vector"
      ],
      "type": "object"
    },
    "keywordMatch": {
      "properties": {
        "rank": {
          "description": "The result's rank by keyword score among the results.",
          "minimum": 1,
          "type": "integer"
        },
        "score": {
          "description": "The BM25 keyword score × 100.",
          "minimum": 0,
          "type": "integer"
        },
        "terms": {
          "description": "The query terms the memory contains: per query word, its exact form if present, else its stem, else an identifier's parts.",
          "items": {
            "ref": "#termMatch",
            "type": "ref"
          },
          "type": "array"
        }
      },
      "required": [
        "rank",
        "score",
        "terms"
      ],
      "type": "object"
    },
    "matchView": {
      "description": "Why a search result matched.",
      "properties": {
        "fusion": {
          "description": "Hybrid results: how the vector and keyword scores were combined.",
          "knownValues": [
            "convex",
            "rrf"
          ],
          "type": "string"
        },
        "keyword": {
          "description": "Present when any query term occurs in the memory.",
          "ref": "#keywordMatch",
          "type": "ref"
        },
        "snippet": {
          "ref": "#snippetView",
          "type": "ref"
        },
        "vector": {
          "ref": "#vectorMatch",
          "type": "ref"
        }
      },
      "type": "object"
    },
    "memoryView": {
      "properties": {
        "author": {
          "format": "did",
          "type": "string"
        },
        "cid": {
          "format": "cid",
          "type": "string"
        },
        "createdAt": {
          "format": "datetime",
          "type": "string"
        },
        "indexedAt": {
          "format": "datetime",
          "type": "string"
        },
        "match": {
          "description": "Hybrid and keyword search results only: why the memory matched.",
          "ref": "#matchView",
          "type": "ref"
        },
        "similarity": {
          "description": "Search results only: cosine similarity to the query, scaled to 0-1000. Absent from keyword-only results.",
          "maximum": 1000,
          "minimum": 0,
          "type": "integer"
        },
        "source": {
          "type": "string"
        },
        "tags": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "text": {
          "type": "string"
        },
        "uri": {
          "description": "The memory's space record URI: at://{authority}/space/{spaceType}/{skey}/{author}/garden.engram.memory/{rkey}.",
          "type": "string"
        }
      },
      "required": [
        "uri",
        "cid",
        "author",
        "text",
        "tags",
        "createdAt",
        "indexedAt"
      ],
      "type": "object"
    },
    "model": {
      "description": "An embedding model, identified exactly. Vectors are comparable only when all three fields match.",
      "properties": {
        "dims": {
          "maximum": 16000,
          "minimum": 1,
          "type": "integer"
        },
        "model": {
          "description": "The model's name, such as nomic-embed-text.",
          "maxLength": 256,
          "type": "string"
        },
        "modelDigest": {
          "description": "Pins the exact model build, such as Ollama's sha256 digest of the model. A name can point to different weights over time.",
          "maxLength": 256,
          "type": "string"
        }
      },
      "required": [
        "model",
        "modelDigest",
        "dims"
      ],
      "type": "object"
    },
    "snippetView": {
      "properties": {
        "field": {
          "knownValues": [
            "text",
            "tags",
            "source"
          ],
          "type": "string"
        },
        "highlights": {
          "items": {
            "ref": "#byteSlice",
            "type": "ref"
          },
          "type": "array"
        },
        "text": {
          "description": "Up to about 200 characters of the field around the matches, with … where cut.",
          "type": "string"
        }
      },
      "required": [
        "field",
        "text",
        "highlights"
      ],
      "type": "object"
    },
    "termMatch": {
      "properties": {
        "field": {
          "knownValues": [
            "text",
            "tags",
            "source"
          ],
          "type": "string"
        },
        "kind": {
          "knownValues": [
            "exact",
            "stem",
            "part"
          ],
          "type": "string"
        },
        "term": {
          "description": "The normalized term; stems start with ~.",
          "type": "string"
        }
      },
      "required": [
        "term",
        "kind",
        "field"
      ],
      "type": "object"
    },
    "vectorMatch": {
      "properties": {
        "rank": {
          "description": "The result's rank by similarity among the results.",
          "minimum": 1,
          "type": "integer"
        },
        "similarity": {
          "description": "Cosine similarity, scaled to 0-1000.",
          "maximum": 1000,
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "rank",
        "similarity"
      ],
      "type": "object"
    }
  },
  "id": "garden.engram.defs",
  "lexicon": 1
}

Validate Record

Validate a record against garden.engram.defs

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:oisofpd7lj26yvgiivf3lxsi
CID
bafyreigj52wgmnspjyabwanz2ymlk4tstdrkwuvg2s5rvhogtjacziuce4
Indexed At
2026-10-10 00:39 UTC
AT-URI
at://did:plc:oisofpd7lj26yvgiivf3lxsi/com.atproto.lexicon.schema/garden.engram.defs

Version History (2 versions)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • Search over a space's memories, by meaning and exact words. The caller embeds its query with the space's model and query prefix and sends vector, model and modelDigest, plus q: once the space has a keyword index, the re…

  • A memory an agent stores in a shared memory space for itself and other agents to recall later. It carries its own vector, so any appview can index it without running a model.

  • The embedding model every vector in a memory space must come from. Written by the space authority in its own repo in the space. Appviews only honor this record from the authority.

Lexicon Garden

@