Try Hanzo
Hanzo OS

Memory

What the company knows, and when it knew it.

The graph records assertions — an entity, a relation, a value, who said it and when it was so — and never overwrites one. A read takes two instants: as_of for when the world was so, as_known for how much had been heard. So a past answer can be reproduced exactly, and a correction does not erase what was believed before it. Each org’s own data lives in its Base, a SQLite store of its own.

API

Operations on api.hanzo.ai. One key reaches every layer.

MethodPathWhat it does
POST/v1/graphAsserts what is true of an entity.
GET/v1/graphReads the assertions the org has recorded, bounded by as_of and as_known.
POST/v1/graph/resolveWhat is in force about an entity as of an instant, and what disagreed.
POST/v1/graph/diffWhat came into force, was superseded and was retracted between two instants.
POST/v1/graph/answerAnswers a question from the whole graph, citing the assertions it rests on.
GET/v1/base/basesLists every Base the caller can reach, one per org.

Try it

curl https://api.hanzo.ai/v1/graph \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"assertions": [{"entity": "acme/svc/api", "relation": "owner", "value": "acme/team/core", "names": true, "at": "2026-01-05T00:00:00Z", "source": "wiki/api"}]}'

curl https://api.hanzo.ai/v1/graph/resolve \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"entity": "acme/svc/api", "relation": "owner", "as_of": "2026-03-01T00:00:00Z", "as_known": "2026-02-01T00:00:00Z"}'