Skip to content
Console
Menu

Getting Started

Authentication

KV Store

Knowledge

Create a space, write an episode, and recall it with citations.

Knowledge is one graph per environment that your people, apps and agents write as they work. You write episodes (what someone said or did, with its source) into spaces; Knowledge keeps them as primary records and answers recall with the facts the caller may read, each citing the episodes it came from. Nothing needs to be set up first: the graph exists as soon as you create its first space.

Everything is under https://api.sylphx.com/v1/orgs/{org}/projects/{project}/envs/{env}/, and an environment outside the key's scope answers 404.

#1. Create a space

Shell
curl -X POST "https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/spaces?space_id=support" \
  -H "Authorization: Bearer $SYLPHX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"spec":{"kind":"workspace"}}'

A space is the unit of permission. Its creator may read and write it; grant others through the space's members. A sensitive space is read only by keys it names directly.

#2. Write an episode

Shell
curl -X POST "https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/spaces/support/episodes" \
  -H "Authorization: Bearer $SYLPHX_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"kind":"note","text":"Ada moved to London in March.","provenance":{"references":[{"uri":"urn:support:ticket:4812"}]}}'

Every episode names its source in provenance.references; Knowledge records who wrote it from your key. The episode is stored at once, indexed for recall shortly after, and its facts are extracted in the background.

#3. Recall with citations

TypeScript
const { context } = await sylphx.knowledge.entities.recall({
  parent: 'orgs/acme/projects/shop/envs/production',
  query: 'Where does Ada live?',
  spaces: ['orgs/acme/projects/shop/envs/production/spaces/support'],
})

Recall searches only the spaces you name and the caller may read, expands up to two hops through the graph, and returns facts with the episodes that support them. A claim whose source changed since it was pinned is marked stale and must be re-read before use.

#Erase

Deleting an episode erases it and everything derived only from it; it is never answered again, even from a replayed request.