Skip to content

Particles

A git-like ledger for what an AI system believes.

Every piece of knowledge is one claim: sourced, dated, and confidence-scored. As in a git history, nothing is overwritten: a correction supersedes the old claim, a withdrawal retracts it, and a disagreement stays disputed in the open, so the full history of what was believed, and when, is always there. Trust, doubt, and staleness are applied as a lens at query time, never baked into the stored claim.

Read the whitepaper Install the SDK

Why Particles?

Ask an AI system a question and you want to know: Where did this come from? Is it still true? What does it actually believe, and what happens when two of its sources disagree? Two established approaches each give up on half of that.

  • Formalize everything. Cyc and the semantic web bet that machines could reason over knowledge once it was formalized. They stalled on the cost of formalizing it by hand.
  • Formalize nothing. Retrieval-augmented systems store raw text chunks and return whatever looks similar. Fast to build, but a chunk has no notion of a claim, a source's trustworthiness, or a belief that was later corrected.

Particles takes the path between them. An LLM extracts each claim as a plain sentence, bundled with confidence, provenance, and canonical subjects into a particle: the smallest self-contained unit of knowledge, its uncertainty grounded in the PSUM standard. Truth is scoped, not absolute; contested claims stay visible under an auditable trust policy. An agent's knowledge becomes something you can query, audit, and revise one belief at a time.

Three ideas carry the design

  • Nothing is overwritten


    A corrected claim supersedes the old one; retractions cascade as status changes; every lifecycle transition is validated and auditable. Version control for beliefs.

  • Trust is a read-time lens


    A particle's stored confidence is immutable. At query time it's modulated by extractor trust, source trust, and recency decay into an effective confidence used for ranking. Change your trust policy and nothing gets rewritten.

  • Contradictions are first-class


    When two sources disagree, the conflict becomes a visible inconsistency record to review, never a silent overwrite. Your rulings accumulate into a reusable source-trust policy.

See it in action

uv sync
export ANTHROPIC_API_KEY=sk-ant-...
uv run particles db init

# Deposit a source (file or URL): append-only, SHA-256 snapshotted
uv run particles deposit https://en.wikipedia.org/wiki/Douglas_Lenat

# Extract claim-granularity particles, then ask, showing the evidence
uv run particles extract --all-pending
uv run particles query "What is Cyc, and what was Lenat's role in building it?" \
  --show-particles
 CONF   EFF   EXTRACTOR          CONTENT
 1.00   0.49  general-extractor  Lenat worked on the Cyc program at MCC.
 1.00   0.49  general-extractor  Douglas Lenat was the founder and CEO of Cycorp, Inc. …
 1.00   0.49  general-extractor  In 1986, Lenat estimated the effort to complete Cyc …
 1.00   0.49  general-extractor  Lenat became principal scientist of MCC from 1984 to 1994.

## What is Cyc, and What Was Lenat's Role in Building It?

Cyc is a large-scale AI project aimed at building a comprehensive common
sense knowledge base. Douglas Lenat was the central figure behind it,
driving the work across two institutional phases: principal scientist at
MCC (1984-1994) and founder and CEO of Cycorp from 1994 onward …

--show-particles prints the retrieved claims ranked by effective confidence (the EFF column: each particle's immutable stored CONF modulated by source trust and recency at read time) above the synthesized answer, so every answer is traceable to the exact particles it was built from.

Full walkthrough: the SDK's getting-started guide.

And what did it believe in 2000?

That demo shows the loop. This one shows what makes it different. Because nothing is overwritten, a store can be asked what it used to hold — and be made to show its own revisions.

Below is a real store, exported to a single self-contained page. Two claims about Pluto were written into it: "Pluto is the ninth planet of the Solar System", learned in 1996, and the IAU's 2006 reclassification that replaced it. Both are still there.



Click either link between Pluto and Solar System to read the claim behind it. The dashed one is the retired belief; the panel names what replaced it and when. Uncheck show history to drop it from view — open it full-page.

The retired claim is not deleted and not edited. It keeps its source, its confidence, and its dates, and it gains one thing: a pointer to the claim that replaced it, stamped with the day that happened. So the store can answer a question two ways — with what it holds now, or with what it held on a given date:

particles query "How many planets are in the Solar System?" --as-of 2000-01-01
# → the planet belief, and one note line: now SUPERSEDED, retired 2006-08-24,
#   superseded by "Pluto is a dwarf planet (IAU 2006 reclassification)."

particles query "How many planets are in the Solar System?"
# → the dwarf-planet belief

One flag, and the same question answers from the beliefs held at that instant, each retired hit naming what replaced it and when.

What this does and does not claim

--as-of is an assertion-time lens: what did this store believe at that instant, and when did it stop? It is not a claim about the world. Pluto did not change in 2006 — the belief about it did, and this is the record of that revision.

Full walkthrough: as-of time travel.

The honest tradeoff

No free lunch. Choosing extraction over hand-formalization means no provable inference, some extraction noise, and ongoing curation. Particles doesn't hide that cost; it makes it visible and manageable: lint surfaces contradictions and staleness as they accumulate, and review turns source disagreements into a reusable trust policy.

The three repositories

  • The standard


    The whitepaper, the technical specification, the normative schema and SHACL artifacts, and the conformance fixtures — independent of any one implementation. This site is built from it.

    particles-standard →

  • The engine


    The reference implementation's state-holding half: corpus, extraction pipeline, belief store, the query/lint/review operations, and the API, CLI, MCP and web surfaces.

    particles-engine-py →

  • The client library


    The store-free half: schema models with their confidence invariants, candidate extraction, conformance validation, and the interchange codec. Depend on this to produce or validate particles.

    particles-core-py →

The standard

The machine-readable artifacts are served at the identifiers published data carries, byte-identical to the copies in the repository:

Reference