workspace explorer · live API

Every part of memory, in view.

Start with one audit case below, then connect a workspace to inspect the contracts that define it, the records that feed it, the runs that changed it, and the final views and prompt artifacts an agent can use.

Worked case + optional live tool. The case uses example records to explain the interface. The explorer itself does not invent workspace data: it stays empty until you connect, then reads your live API in read-only mode.

00 · the problem

The agent says so. How do you find out why it thinks that?

In most systems you cannot. The claim came out of a prompt, which came out of a pipeline, and the trail ends at a log line. This page walks the other direction: from the sentence the agent was handed, back through the step that wrote it, to the message a person actually sent.

the usual options

Read the logs and infer.

  • A claim with no parents. You see the output, not the evidence.
  • The rules live in code, not in anything a person can read.
  • The prompt is built and thrown away.
with memseek

Every layer is something you can open.

  • What a record means is a published file.
  • Each record names the step that wrote it.
  • The prompt is an object you can read.
  1. the claim

    A profile says something about an account. You want to know why.

    “The billing migration remains blocked on mobile compatibility evidence.”
  2. one click

    The record names the step that wrote it, and what that step was allowed to read.

    written by the profile step · 2 citations · the exact version, inputs and status
  3. one more click

    You reach a message a person actually sent. There is nothing underneath it.

    “Mobile clients still use the legacy response fields.”
  4. what you connect

    An API address and a workspace key, both read-only. Your key stays in this tab.

    # let this page call your API, then paste URL + key
    export API_CORS_ORIGINS=https://memseek.ai
Claim → run → evidenceThree hops from a conclusion to the message a person sent.
Read-onlyThe explorer writes nothing and promotes nothing. Your key stays in this browser tab.
No demo dataIt stays empty until you connect. What you see afterwards is your own workspace.

New to Memseek? You write one small configuration file describing what your application should remember. After that your application only appends what happened; Memseek does the deriving, keeps every conclusion linked to the evidence underneath it, and hands your agent a bounded briefing instead of a pile of text. Everything below is that file and what it produces — how it works.

the words the rest of this page usesplain english
workspace
One isolated memory store with its own key. Two workspaces on one server share nothing.
definition
The published file describing a collection, an automatic step, a query, or a prompt.
run
One execution: what it read, what it wrote, which model, how long it took, and how it ended.
record
One stored item, with an ID you can look up.
1
start with the contract

The catalog tells you what a record is allowed to mean.

Open Definitions and choose a collection. Its YAML answers whether records append or supersede, which fields are valid, which processors must finish, and whether the collection can be searched or answered over.

collections/core.yamlexample definition
- name: profiles
  version: 1
  mode: keyed
  required_processors: [embedding_v1]
  search_profile: pg_default
  answerable: true
mode: keyed

One current record exists per profile key. A rewrite creates a new version and supersedes the old head instead of erasing it.

required_processors

The record is not ready until required annotations such as its embedding have completed.

answerable

The collection may participate in cited synthesis. This is an explicit contract choice, not a UI toggle.

explorer reads

The published YAML for profilesmode: keyed, an embedding required before a record is ready, answerable: true — plus its immutable definition hash. It writes nothing back to the catalog.

2
open the record and its run

The current value is only the top of the evidence chain.

In Records, select the open-thread claim. The drawer shows its entity, key, status, content, citations, and writer run. Following the run reveals the exact derivation version and source snapshot that produced it.

profiles · open_threads current head

The billing migration remains blocked on mobile compatibility evidence.

written_by
profile run UUID
citations
2 source UUIDs
follow IDs
read only
run receipt

profile@definition-hash read a bounded new_events snapshot and emitted open_threads.

source observation 1

Mobile clients still use the legacy response fields.

source observation 2

Compatibility may be removed only after zero-traffic telemetry.

explorer writes · 0

Opening the chain changes neither the record nor its run receipt.

Visible effect: a conclusion stops being opaque; one click reveals the execution and the evidence that produced it.

derivations/profile.yamlhow to read a run
sources:
  new_events:
    kind: changes
    collections: [main]
  current_profile:
    kind: current
    collections: [profiles]
emit:
  collection: profiles
  type: fact
  keys: [role, preferences, commitments,
         open_threads, timeline]
sources

Explain what evidence the run was permitted to see. The receipt resolves these declarations to concrete record IDs.

emit

Explain the only collection, type, and key the run was allowed to write.

run receipt

Connect the abstract YAML to one execution: inputs, outputs, model calls, limits, status, and definition hash.

explorer reads

The current record — “The billing migration remains blocked on mobile compatibility evidence.” — its earlier versions, its two cited source UUIDs, and the audited run that wrote it. Still no mutation.

3
inspect what the agent receives

A view or artifact is the final bounded read—not another hidden store.

Open a view to run declared retrieval or render an artifact to see the prompt-ready context. Its YAML states which blocks exist, their token budgets, and the literal template around them.

artifacts/agent_prompt.yamlthe delivery contract
blocks:
  profile:
    document:
      collections: [profiles]
    max_tokens: 2000
  memory:
    view: agent_relevant_memory@1
    max_tokens: 3500
template: |
  CURRENT PROFILE:
  {{profile}}
  RELEVANT MEMORY:
  {{memory}}
blocks

Name each context source so its result, truncation, and provenance can be inspected separately.

max_tokens

Make the context budget a declared limit rather than a surprise in application code.

template

Show the exact text and ordering the agent receives; the renderer adds no secret prose.

final state

You can explain the claim from the delivered prompt back through the run to the source message — “Mobile clients still use the legacy response fields.” The workspace remains unchanged.

Connect and follow the trail in your workspace →

01 · connect

Open a real workspace.

Connect directly to a memseek API with a workspace bearer key. The key stays only in this browser tab’s memory and is never sent anywhere except the API URL you enter.

Allow this browser to call the API

Set the API_CORS_ORIGINS environment variable before starting or restarting the API. It authorizes this browser origin to send bearer-token requests.

export API_CORS_ORIGINS='["http://localhost:4321"]'
uv run uvicorn memseek.api:app --host 127.0.0.1 --port 8000

For production, replace http://localhost:4321 with the explorer’s exact HTTPS origin.