Every agent on the same version of the business
"Revenue" means $500K to your CFO and $5M to your sales team. Your agents do not know which one is right, and act with false confidence on whichever they find first.
The mixture
- 01 · Persistent memory
- Light
- 02 · Current context
- Uses
- 03 · Traceable decisions
- Uses
- 04 · Shared context
- Leads
- 05 · Scoped retrieval
- Uses
Semantic drift, at scale
One agent with the wrong definition is a bug. A hundred agents with a hundred definitions is how an organisation stops trusting its AI.
- 01
Definitions fork silently
Every team has its own glossary. Agents built by each team inherit its dialect, and cross-team workflows break at the joins.
- 02
The ontology rots from day one
The knowledge graph was accurate when it shipped. Then a pricing tier launched, a region was added and two teams merged. Nobody updated the schema.
- 03
Forward-deployed teams do not scale
The usual fix is engineers embedded in every workflow, hand-maintaining context. That works for a handful of agents. It does not work for hundreds.
Mostly shared context. Then three others.
Every application on Alchemyst is a different mixture of the same five jobs. That mixture is what makes this a different piece of software from the one next to it, even though the API underneath is identical.
One version of the business, however many agents read it
Canonical definitions, owned by the team that owns the term, are stored once and scoped to the whole organisation. Every agent, in every team, resolves ambiguous terms to the same meaning before the model sees them.
- Terms resolve before the model reads them.
- Owners update definitions, not engineers.
- New agents inherit the consensus on day one.
Uses · Current context
The organisation as it is today
When teams merge or a tier launches, superseded structure is subtracted.
Uses · Traceable decisions
Which definition was used
Every decision records the definitions and sources it resolved.
Uses · Scoped retrieval
Per team, when it should be
Team scopes stay private and organisation scopes are shared. Intersection decides.
That is four of the five. The fifth, persistent memory (preferences and corrections survive the session, the handoff and the model swap), is what leads in Assistant agents, Commerce agents and EdTech & tutoring instead. Same API, different mixture.
The sources you already have
Bring sources in through the data-source integrations (PostgreSQL, MongoDB, Google Docs, Google Sheets, Amazon S3), an n8n workflow, or a direct context.add call. Each one lands scoped, so retrieval can intersect it with everything else.
01 · Ingest
Scope what you ingest
Every document lands with a groupName: the sets it belongs to. Those sets are what retrieval intersects later, so the structure you choose here is the precision you get there.
context.addimport AlchemystAI from "@alchemystai/sdk";const client = new AlchemystAI(); // reads ALCHEMYST_AI_API_KEYawait client.v1.context.add({ context_type: "resource", scope: "internal", source: "org-glossary", documents: [{ content: "Active customer: an account with a paid invoice in the last 90 days. Owner: Finance. Trials are not active customers.", }], metadata: { fileName: "definition-active-customer.md", groupName: ["org", "definitions"], // the sets this belongs to },});02 · Write
Let the owner define the term
Consensus is not a longer prompt. It is a definition with an owner, stored once and read by every agent in the organisation.
context.addawait client.v1.context.add({ context_type: "instruction", scope: "internal", source: "org-glossary", documents: [{ content: "Revenue means ARR as reported to the board. Bookings and pipeline are separate metrics.", owner: "finance", }], metadata: { fileName: "definition-revenue.md", groupName: ["org", "definitions"], },});03 · Search
Search before acting
Search intersects the scopes, subtracts superseded and duplicate content, and ranks what survives. Only that reaches the model, and the whole decision is recorded as a Context Trace.
context.searchconst { contexts } = await client.v1.context.search({ query: "How many active customers did we add in Q3?", scope: "internal", similarity_threshold: 0.8, minimum_similarity_threshold: 0.5, metadata: { groupName: ["org", "definitions"] }, // ∩ narrow scope});// − superseded, deduplicated → ranked → into the window// Every search is recorded as a Context Trace.const reply = await llm.respond(message, { context: contexts });
npm install @alchemystai/sdk or pip install alchemystai, both ship the same client. Full reference in the docs.
Your organisation's meaning is the asset
Models will keep changing. The definitions, decisions and context your organisation builds up are what compounds, so they belong in a layer you own: model-agnostic, exportable and yours.
Security & complianceManaged cloud
Encrypted in transit and at rest, isolated per organization, and scoped at write time.
Dedicated infrastructure
EnterpriseSingle-tenant, with VPC peering when your data cannot share a network boundary.
Self-hosted
On-premiseRun the context layer on your own infrastructure, with OpenTelemetry for observability.
The same API, a different mixture
Each of these leads with a different job, pulls from a different set of sources and needs a different call. All of them, by job.
Bring the term your teams disagree on.
The one that means something different in every department.