emem
emem is shared memory for AI agents working together in the real world. One agent writes down what it observed. Another agent reads the same bytes, not a summary of them. Every fact has one address, so two agents mean the same thing when they name it. Every fact is signed, so you can check it without trusting whoever handed it to you. Every fact says how it was produced, so you know what it is worth. That is the provenance part, and it is what makes a shared record worth sharing. Reads need no key and no account.
AgentCard object — a capabilities object, a declared protocolVersion, and a well-formed skills array.
An A2A client finds this agent by fetching the well-known path on the provider's own host. That is what makes an agent card different from every other agent artifact in this catalog: it is provider-published by construction — it cannot be derived, generated, or reconstructed on a provider's behalf.
https://emem.dev/a2a/tasks
· transport JSONRPC
· protocol a2a-message-send
https://emem.dev/v1/a2a/tasks
· transport HTTP+JSON
· protocol a2a-async-tasks
https://emem.dev/v1/a2a/skills
· transport HTTP+JSON
· protocol a2a-skill-query
https://emem.dev/openapi.json
· transport HTTP+JSON
· protocol openapi-3.1
https://emem.dev/openapi.action.json
· transport HTTP+JSON
· protocol openapi-3.1-action
https://emem.dev/.well-known/emem.json
· transport HTTP+JSON
· protocol well-known-json
https://emem.dev/v1/agent_card
· transport HTTP+JSON
· protocol agent-card-v1
https://emem.dev/mcp
· transport JSONRPC
· protocol mcp-streamable-http
https://emem.dev/a2a/tasks
· transport
· protocol JSONRPC
non-standard supportedInterfaces
What tools exist here, and when to reach for each emem_tools
The map of emem's tool surface, and the only tool you need to find the rest: the working loop in the order you walk it (name, ground, cite, resolve, verify, check for drift), then every other tool gro...
introspectL0Resolve place to cell64 + band inventory emem_locate
Mint the canonical, vendor-neutral address (cell64) for a real-world place: the shared spatial identity every agent resolves to identically, so two models refer to the same ground instead of two descr...
readL0Ask a free-text question about a place emem_ask
Single-shot free-text answer about a real-world location, backed by signed satellite/elevation/water/built-up receipts.
readL0Hunter mode, find event hotspots over a region emem_hunt
Event-discovery sweep: pick an event keyword (algal_bloom, deforestation, flood_extent, wildfire, urban_heat_island, methane_plume, landslide, drought, soil_salinity, crop_stress, water_turbidity, oil...
readL0EUDR Due Diligence Statement, polygon-in, signed Annex II envelope out emem_eudr_dds
Produce a Due Diligence Statement per Regulation (EU) 2023/1115 for one or more plots.
readL0Standardized Precipitation Index (McKee 1993) drought metric emem_spi
Compute the Standardized Precipitation Index (McKee et al.
readL0Burn severity (dNBR, Key & Benson) from pre/post-fire NBR emem_burn_severity
Compute the differenced Normalized Burn Ratio (dNBR = NBR_pre − NBR_post; Key & Benson 2006) and map it to the USGS burn-severity classes (unburned / low / moderate-low / moderate-high / high).
readL0Rice-paddy methane (IPCC 2019 Tier 2, Eq 5.1) emem_rice_ch4
Estimate seasonal CH4 emissions from rice cultivation per IPCC 2019 Refinement Eq 5.
readL0Deforestation alert proxy (NDVI drop + embedding change) emem_deforestation_alert
Composite deforestation-alert score: `alert_score = 0.5·clamp01(ndvi_drop/0.30) + 0.5·clamp01(embedding_change/0.
readL0Sentinel-1 SAR forest-disturbance scout (cloud-penetrating) emem_sar_forest_disturbance
Cloud- and night-independent Sentinel-1 C-band confirmation of forest disturbance.
readL0Clay+Prithvi+Tessera change-consensus ensemble emem_triple_consensus
Three-encoder change ensemble: compute the cosine change between the two most-recent DISTINCT vintages for each of the Clay, Prithvi, and Tessera embeddings at the cell, then vote each encoder's chang...
readL0Change attribution ledger: why did this place's readout move emem_change_attribution
The first runnable surface of the change decomposition Δz = Δ_env + Δ_sensor + Δ_geo + Δ_encoder + ε: a per-term evidence LEDGER for the readout change at a cell, with NO numeric split.
readL0Band raster: a field as a signed derivation emem_band_raster
Return a native-resolution Sentinel-2 window over a bounding box as a FIELD, not a set of points: the pixels become one content-addressed grid artifact (deterministic f32 encoding; fetch the bytes at...
readL0Dereference an emem:raster: field token emem_raster_resolve
Resolve emem:raster:
Band cube: a field over time, as a signed manifest emem_band_cube
Mint an emem:cube: token: a Sentinel-2 field over an AOI ACROSS TIME.
readL0Band composite: a signed cloud-masked median over a window emem_band_composite
Mint a signed, cloud-masked median composite over a date window as a raster-shaped field: the clean, gap-filled texture a world model actually drapes, rather than one cloudy scene.
readL0Dereference an emem:cube: field-over-time token emem_cube_resolve
Resolve emem:cube:
Raster bundle: bind N field tokens into one citeable manifest emem_raster_bundle
Mint an emem:rasterset: token: a signed manifest binding 2..
readL0Dereference an emem:rasterset: bundle token emem_raster_bundle_resolve
Resolve emem:rasterset:
Terrain triad, slope + ruggedness + topographic position from DEM emem_terrain
Compute three standard DEM terrain indices from one 3×3 Copernicus-DEM (copdem30m.
readL0Region similarity, cosine of two regions' mean GeoTessera embeddings emem_region_similarity
Answer 'how alike are these two places?' Mean-pool the 128-D GeoTessera embedding across each region's cells to get a centroid, then return the cosine similarity in [-1,1] (+1 = identical landscape, 0...
readL0Embedding centroid, mean-pooled GeoTessera vector for a region emem_embedding_centroid
Mean-pool the 128-D GeoTessera embedding over a region's cells: centroid = (1/N) Σ v_i, plus the L2-normalised centroid and a content-addressed centroid_cid.
readL0Embedding diversity, landscape heterogeneity over a region emem_embedding_diversity
Quantify how varied a region's landscape is: diversity = (1/(N(N-1))) Σ_{i
Neighbourhood consistency / spatial outlier (GeoTessera vs 8 neighbours) emem_neighborhood_consistency
Score how much a cell looks like its surroundings: consistency = (1/8) Σ cosine(centre, neighbour_i) over the 8 immediate cell64 neighbours, plus outlier_score = 1 − consistency.
readL0Read the place's state vector (single encoder OR full 1792-D cube) emem_state
Get one dense numeric fingerprint that summarises everything known about a place, ready to feed into similarity search, a classifier, or clustering.
readL0Multi-encoder state at one cell (foundation fan-out) emem_state_multi
Get the place's fingerprint from several AI models at once (`geotessera`, `clay_v1`, `prithvi_eo2`, `galileo`) in one call, returned as a per-model map.
readL0Between-tslot state vector delta (residual + cosine) emem_state_diff
Vector delta between the same cell at two tslots: returns the per-element residual, its L2 norm (scalar change-magnitude), the cosine between the two source vectors (orientation drift), and both sourc...
readL0Compose a memory_token citation handle emem_memory_token
Mint a citation handle, `emem:fact:
Find signed facts for a place, as citable sources search
Search emem's signed corpus and return results shaped as citations: each entry is one signed fact, with an `id` to dereference, a `title` naming band, place and the value as signed, and a stable `url`...
readL0Open one search result and read the signed record fetch
Dereference an id from `search`: the reading in one line, then the signed body it came from, the URL serving those bytes, and metadata naming cell, band, signing time and key.
readL0Dereference a memory_token in one round-trip emem_memory_token_resolve
Parse a `emem:fact:
Check a value against the fact it cites, before you publish it emem_echo_verify
Grade a value you are about to emit against the signed fact your citation points at. Returns `matches` and, when it does not, the `drift` between what you were about to say and what emem holds.
readL0Register your own derivation over emem facts emem_derive
Register a value YOU computed from facts this responder holds, and get back a citeable `emem:fact:` token whose lineage terminates in emem-signed measurements.
writeL0List one attester's registered derivations emem_derive_list
List the derivations registered by one ed25519 key, optionally filtered to a cell (and then a band).
readL0Compose a signed multi-fact memory bundle emem_memory_bundle
Compose N (cell, band, tslot?) triples into ONE signed envelope.
readL0Dereference a memory_bundle token emem_memory_bundle_resolve
Parse a `emem:bundle:
Mint or get a canonical object identity emem_entity
Give a real-world object (a bridge, a farm plot, a river, a named place) a single, shared, content-addressed identity that any agent resolves the same way.
readL0Resolve a phrase (or emem:entity: token) to a canonical object emem_entity_resolve
Find the objects agents have bound a phrasing to, ranked by INDEPENDENT corroboration, never arrival order.
readL0Attest that a phrasing/id denotes an existing object emem_entity_link
Record a signed, ATTRIBUTED claim that a label or external id (GERS / OSM / Wikidata) denotes an existing object, or with `stance: "disputes"` that it does not.
writeL0memory_view, read file or directory listing emem_memory_view
Read the contents of a memory file at `/memories/
memory_create, write a memory file (overwrite if exists) emem_memory_create
Write a memory file at `/memories/
memory_str_replace, exact-string replacement in a memory file emem_memory_str_replace
Replace `old_str` with `new_str` in the named memory file. Fails (no partial write) when `old_str` is absent or matches more than once. Writes a new content-addressed `file_cid` and signs the receipt.
writeL0memory_insert, insert at a given line emem_memory_insert
Insert `new_str` after the given 1-indexed line in the named memory file. `insert_line: 0` inserts at the top. Writes a new `file_cid` and signs the receipt.
writeL0memory_delete, remove a memory file or directory emem_memory_delete
Delete a memory file at `/memories/
memory_supersede, mark your own note replaced by a later one emem_memory_supersede
Point one of your notes at the note that replaces it.
writeL0memory_rename, move a memory file emem_memory_rename
Move (rename) a memory file from `old_path` to `new_path`. Both paths must stay under `/memories/`; `new_path` must not already exist.
writeL0memory_list_by_kind, typed enumeration of memory files emem_memory_list_by_kind
List memory files by their typed `kind` (episodic | semantic | procedural | resource). Optional path prefix narrows the scan; results are sorted by signed_at descending.
readL0emem_memory_search, semantic search over /memories/* files emem_memory_search
Semantic search over /memories/* file contents using BGE-base-en-v1.5 (768-D, L2-normalised) backed by a Lance partition (`memory_text_index_d768.lance`).
readL0Signed snapshot of corpus liveness emem_corpus_state_stats
Signed snapshot of corpus liveness: distinct_cells, distinct_bands, facts_scanned, top per-band counts, manifest CIDs. Same payload that backs /v1/stream's corpus.state tick (signed).
readL0Hand-verified eval items for agent grading emem_benchmark
Hand-verified evaluation items for grading an agent against the responder. Returns {items[], grader_url}. Submit answers (cell64 or fact_cid per item) to POST /v1/benchmark/grade for per-item scores.
readL0Recall facts at a cell (auto-materializes on miss) emem_recall
Read the signed facts at a canonical address (cell64); auto-materializes on a miss for any band with a registered materializer.
readL0Recall facts across a place's polygon emem_recall_polygon
Recall facts across every cell inside a place's polygon (single signed envelope). Closes the place-name-drift gap for wide features (parks, lakes, regions).
readL0Per-field agricultural boundaries (Fields of The World) emem_field_boundaries
Per-field agricultural-boundary polygons from the Fields of The World global product (~3.17B fields, 241 countries, 10 m resolution, CC-BY-4.0).
readL0Aggregate facts over a region emem_query_region
Query facts over a region (single cell or list of cells), optionally aggregated per band.
readL0Compare two cells (cosine + scalar deltas) emem_compare
Compare two cells: cosine similarity over shared vector bands + per-band scalar deltas.
readL0Compare two bands at one cell emem_compare_bands
Compare two bands at the same cell. Scalar pair → metric=delta, value=b-a. Vector pair (equal dim) → metric=cosine + per-dim delta. Returns a signed receipt naming both source fact CIDs.
readL0k-NN over the corpus by embedding emem_find_similar
k-NN over the corpus by cell embedding or inline vector. Returns `neighbours` ordered nearest-first, each with `cell64`, `score` and the `band` scanned, plus a signed receipt over the vectors read.
readL0Time series for one (cell, band) emem_trajectory
Time series for one (cell, band) over an inclusive [start, end] tslot window. Returns only what's already attested; it does NOT trigger materialization. For historical backfill use `emem_backfill`.
readL0Signed delta between two tslots emem_diff
Compute a DerivativeFact (delta) between a band's values at two tslots. Memory algebra: the `diff` operation (https://emem.dev/docs/model.html).
readL0Compare a band at the same day-of-year across years emem_compare_same_doy
Compare a band at the SAME day-of-year across several years, the honest way to measure year-over-year change on a seasonal band.
readL0Scan for multi-attester disagreement emem_memory_contradictions
Surface where the corpus DISAGREES with itself (algebra: competing evidence).
readL0Recall temporal knowledge-graph edges emem_edges_recall
Read temporal knowledge-graph edges (subj --pred--> obj, valid over [valid_from, valid_to)), bi-temporally filtered, in EITHER direction.
readL0Resolve a fact by content-address (CID) emem_fetch
Fetch a fact by its content-address (CID). Returns the full signed Primary or Absence fact, the same body served by REST `/v1/facts/{cid}`.
readL0Materialize historical facts in a window emem_backfill
Materialize and sign every per-tslot fact for one (cell, band) inside a [start_unix, end_unix] window. Returns a signed list of (tslot, fact_cid, status) for each step.
readL02-D heat-equation forecast (urban LST evolution) emem_heat_solve
Forward-step 2-D explicit finite-difference solver for the heat equation ∂u/∂t = α∇²u over a 3×3 cell stencil centred on `cell`. Reads `modis.
readL01-D shallow-water swell propagation to coast emem_wave_solve
Forward-step 1-D explicit finite-difference solver for the shallow-water wave equation ∂²u/∂t² = c²∂²u/∂x² with c² = g·h, where depth h comes from `gmrt.
readL0Constrained JEPA-pattern next-month NDVI predictor emem_jepa_predict
Predict next-month NDVI at a cell using a constrained JEPA-pattern AR(2) seasonal predictor. Reads up to 24 past months of `indices.
readL0Learned multi-band-scalar dynamics head (jepa_temporal_predictor@2) emem_jepa_predict_v2
Predict the next-step value of 4 environmental scalars at a cell (`indices.ndvi`, `modis.lst_day_8day`, `modis.lst_night_8day`, `cams.pm25`) using a small learned dynamics MLP.
readL0Verify a structured claim against a cell emem_verify
Verify a structured claim against a cell's facts. Returns verdict + evidence CIDs + signed receipt.
verifyL1Active band ontology emem_bands
Active band ontology (offsets, dims, tempo, privacy).
introspectL0Active function registry emem_functions
Active function registry (derivation recipes).
introspectL0Active source-connector registry emem_sources
Active source-connector registry (URL templates, providers, licenses).
introspectL0Active CDDL/JSON schema bundle emem_schema
Active CDDL/JSON schema bundle by CID.
introspectL0Stable error code catalog emem_errors
Stable error code catalog.
introspectL0Active manifest CIDs emem_manifests
Active manifest CIDs (bands / functions / sources / schema).
introspectL0Cached upstream capability snapshot emem_capabilities
Live capability snapshot of the responder's GPU sidecar, extensions[] (e.g. gpu, clay-v1.5, prithvi-eo2), cuda_available, models_loaded[], healthy, last_polled_unix_s.
introspectL0Active grid encoding emem_grid_info
Active grid encoding: cell64 ground resolution, lat/lng axis sizes, DGGS lineage.
introspectL0Enumerate the cell64s in a bounding box, paged emem_cells_in_bbox
Enumerate every cell64 whose centre falls in a bounding box, paged, in stable row-major order (north row first, then west column first).
introspectL0Per-band live status & history bounds emem_coverage_matrix
Per-band live status, what data is alive AND auto-materializable, with history bounds, tempo cadence, and the responder pubkey that signs the band.
introspectL0Auto-fetch registry (per-band materializers) emem_materializers
Auto-fetch registry: which bands the responder will materialize on a recall miss, the upstream provider, license, value shape, and history bounds.
introspectL0Per-band temporal coverage catalog emem_data_availability
Temporal catalog: for every materializable band the upstream-of-record window the data genuinely covers, the temporal `kind` (static | annual_snapshot | annual_stack | time_series | now_only | per_rel...
introspectL0Composition recipes (algorithms) emem_algorithms
Content-addressed dictionary of composition recipes, formulas that fuse attested band facts (and embeddings) into derived scores, classifications, and similarity metrics.
introspectL0One-algorithm drill-down (formula + inputs + citation) emem_explain_algorithm
Per-key drill-down on a single composition recipe, full body (kind, inputs, formula, output, citation, references) for ONE algorithm key. Companion to `emem_algorithms` (which is the catalog).
introspectL0Topic-grouped band + algorithm registry emem_topics
Topic-grouped registry of every band and algorithm at this responder, plus visual surfaces and the `declared_but_no_materializer_at_this_responder` block (cube slots reserved without a live connector).
introspectL0Coverage map (SVG image) emem_coverage_map
Live SVG render of the responder's corpus density, returned as a proper MCP EmbeddedResource content block (image/svg+xml), multimodal MCP agents can render it natively.
introspectL0Sentinel-2 true-colour thumbnail (PNG) emem_cell_scene_rgb
True-colour Sentinel-2 L2A RGB thumbnail centred on a cell. PNG returned as a native MCP ImageContent block (mimeType image/png).
readL0Cell polygon as GeoJSON emem_cell_geojson
Cell polygon as a native MCP EmbeddedResource (mimeType application/geo+json).
readL0Bulk recall across up to 256 cells emem_recall_many
Recall facts across a list of up to 256 cell64 strings in one round-trip. Server fans out per-cell recalls in parallel and returns them under `by_cell.
Coherent elevation across Cop-DEM + GMRT + WorldCover emem_elevation
One-shot elevation answer that fuses Cop-DEM 30 m (land), GMRT (ocean topobathy), and ESA WorldCover (water mask) into a single signed scalar at a place or coordinate.
readL0Satellite / sensor lineage per band emem_fleet
Per-band satellite-and-sensor fleet inventory, names the upstream platform (e.g.
introspectL0Substrate profile registry emem_substrates
The written admission contract per contributor class (satellite archive, operator constellation, telescope, microscope, CCTV, mobile, drone, robot, industrial machine, fixed sensor): which admission r...
introspectL0Verify a device's OS execution trace emem_trace_verify
Stateless verification of an emem.os_trace.
verifyL1Plan a temporal recall recipe for a cell emem_temporal_route
Turn a time-shaped question into a ready-to-run recall plan: it figures out WHICH bands to pull at WHICH past time windows (e.g.
planL0Server-side ed25519 receipt verifier emem_verify_receipt
Verify a signed receipt envelope server-side: rebuilds the canonical preimage under the rule the receipt's own `preimage_version` names, runs ed25519 over the embedded key and signature, and returns `...
verifyL1Check whether the citations in a draft actually verify emem_guard_verdict
Run emem-guard's policy pipeline over text you are about to send, against this responder's corpus.
verifyL1The procedure for running your own verdict server emem_guard_selfhost
Returns the full emem-guard self-host skill as markdown, plus the exact build, test and run commands.
introspectL0Multi-band snapshot at a place emem_at
One-shot recall of the signed facts at a place's cell64 (or lat/lng); each band carries a citeable fact_cid. Defaults to emem's standard at-a-glance band set; pass `band` / `bands` to override.
readL0NDVI at a place (one-shot, polygon-aware) emem_ndvi
Recall the signed Sentinel-2 NDVI fact (indices.ndvi, 10 m native) at a place's canonical cell64, attesting it into the shared memory on a miss.
readL0Air-quality snapshot (CAMS PM2.5 / NO2 / O3) emem_air
Recall the signed Copernicus CAMS air-quality facts (PM2.5 + NO2 + O3) at a place's cell64, attesting on a miss. Composes locate → recall → aggregate; each band carries a citeable fact_cid.
readL0Land surface temperature (MODIS day + night) emem_lst
Recall the signed MODIS land surface temperature facts (day-8day + night-8day composites, 1 km native) at a place's cell64, attesting on a miss; each carries a citeable fact_cid.
readL0Soil profile (SoilGrids 0–30 cm: SOC, pH, texture) emem_soil
Recall the signed SoilGrids 250 m profile at a place's cell64 (SOC, pH, clay/sand/silt fractions, bulk density, nitrogen, all at 0–30 cm depth), attesting on a miss; each band carries a citeable fac...
readL0Surface water (JRC GSW recurrence + S1 backscatter) emem_water
Recall the signed surface-water facts at a place's cell64: JRC Global Surface Water recurrence (1984–2021) + Sentinel-1 SAR backscatter (current), attested on a miss and citeable by fact_cid.
readL0Forest signals (Hansen GFC + ESA WorldCover) emem_forest
Recall the signed forest facts at a place's cell64: Hansen Global Forest Change (tree cover 2000 baseline + year-of-loss) + ESA WorldCover 2021 land class, attested on a miss; each carries a citeable...
readL0Current weather snapshot (temperature, cloud, precip, wind) emem_weather
Recall the signed met.no/CAMS weather facts at a place's cell64 (2 m temperature + total cloud cover + precipitation + 10 m wind speed), attesting on a miss; each value carries a citeable fact_cid.
readL0Intent-routed planner emem_intent
Say what you want in one typed object and get the answer, without choosing a primitive.
planL0Transparency log signed tree head emem_log_sth
Fetch the responder-signed tree head (STH) over the whole append-only attestation log: {tree_size, root_b32, signed_at, responder_pubkey_b32, signature_b32}.
verifyL1Transparency log inclusion proof emem_log_inclusion
Return an RFC 6962 inclusion (audit) proof that a log entry is committed under the current signed tree head. Verify offline: the audit path re-derives the STH root from the entry's leaf hash.
verifyL1Transparency log consistency proof emem_log_consistency
Return an RFC 6962 consistency proof that the tree of size `first` is an append-only prefix of size `second` (defaults to the current size).
verifyL1Transparency log witness co-signatures emem_log_witnesses
List witness co-signatures recorded for tree heads, independent parties that counter-signed a (tree_size, root) claim under their own ed25519 key.
verifyL1Compose a prose answer over signed facts (LLM, labelled) emem_reason
The opt-in reasoning tier: grounds your question through emem_ask (deterministic, signed), then has the responder's local model compose a prose answer over that envelope.
planL0Live street perception at a place perception_at
Counts per object class at a cell right now, from a retained camera clip whose sha256 is committed in a signed receipt. Answers what orbit cannot: a satellite revisits in days.
readrestdirect_sensorPainted postcard of a place perception_postcard
A place painted from its own camera clip, one motif per object counted, with the cell, the count and the clip hash inside the file. Unobserved and empty are painted differently.
readrestdirect_sensorProceed or wait, for something that has to move perception_gonogo
Proceed-or-wait over what a street camera sees, for something that has to move. Returns the clip it reasoned from and its age. Undecidable returns wait. Not a safety system.
readrestmodel_output2026-09-19 from https://emem.dev/.well-known/agent-card.json,
HTTP 200. The body was saved verbatim and is the sole source for
everything on this page — no field is inferred.
View the captured card.
Providers change what they serve; if this card has moved or changed shape,
the provider profile carries the
current state as of the last build.
Work with this as data
Every agent card here is available over the APIs.io API and to AI agents over MCP. A2A Agent Cards is not yet its own endpoint on the v1 API. Reach it through catalog search and the tag graph, or the MCP server.