Meristem

Slow brain · Gemma 4 E4B · llama.cpp · jurisdiction: days

DEMO with deterministic mocks. The real Meristem runs on the farmer's home laptop with Gemma 4 E4B fully local via llama.cppno cloud roundtrip, ever. The deterministic Evaluator (4 rules of precedence + tool calling) you see below is identical to what runs offline; it's just the Gemma 4 rationale that comes from a mock instead of a live model. Mock code in js/api.js — transparent, no magic. To see the real Meristem with Gemma 4 E4B writing rationales, run make run in code/meristem_node/.

Two simulated Rhizomes report in

Meristem receives bundles from Pollen at the end of the day — collected receipts, alerts, weather digests from each Rhizome. Below: a synthetic dashboard with two plots reporting their last 7 days. Choose a scenario and ask Meristem to evaluate.

Each scenario triggers a different rule of the Evaluator (stable / alert / conservative).

rhizome_01 (with weather station)

scenario: stable
last 7 days:
  decisions: 28 irrigate, 4 skip, 0 block
  avg confidence: 0.91
  alerts persistent: 0
weather_digest: ok

rhizome_02 simulated host-side

scenario: stable
last 7 days:
  decisions: 24 irrigate, 6 skip, 1 block
  avg confidence: 0.88
  alerts persistent: 0
weather_digest: from_rhizome_01 (ferry by Pollen)

Meristem says

idle

PolicyPacket emitted

Awaiting bundle...

Rationale (LLM)

The deterministic Evaluator decides. Gemma 4 E4B writes the rationale via tool calling.

decisions_by_rule — traceability as product

The system exposes how often each rule of the Evaluator has fired in the last day. This is not debugging metadata; it's visible accountability of the decision logic. A judge or a farmer can see, at a glance, which rule fires most often and whether the system is operating in stable, conservative or alert mode.

stable: —
alert: —
conservative: —
refuse: —