When to use JEV vs LLM vs JEPA. Cost model. Reliability. Migration patterns.
JEPA is the id. Gestalt, embodied, spatial, fast. One forward pass through the world model gives you a direction without needing to count anything. JEPA
LLM is the ego. Verbal, analytical, communicable, slow. Generates tokens one at a time, builds up an explanation, can read or write. LLM
JEV is the superego. Constrained, principled, schema-bound, decision-oriented. Returns calibrated probabilities, not text. Cannot hallucinate outside your schema. JEV
Quilt cells use all three. Most substrates use one and bolt on the others. We use the psyche frame because it explains why cellular logic works: every cell needs an instinct, a voice, and a conscience.
| Axis | JEV | LLM | JEPA |
|---|---|---|---|
| Output type | Typed choice / score / noul + probabilities | Generated text tokens | Latent vector |
| Hallucination risk | Zero (schema-constrained) | High (open-ended) | Medium (vector-level) |
| Latency p50 | 150-300ms | 1.5-3s | 50-200ms |
| Latency p99 | 800ms | 30s+ | 500ms |
| Cost per call | ~$0.000025 | ~$0.025 | ~$0.001 |
| Schema enforcement | Hard (parallel sampler) | None (you parse) | None |
| Training data req | Question schemas | Prompt engineering | Embeddings corpus |
| Auditability | Probabilities + confidence | None (free text) | None (latent space) |
| Skill floor (junior eng) | Define questions, read answers | Prompt engineering | Vector DB + retrieval |
| Sovereignty | TypeSafe cloud (US) | Various (US, EU, Asia) | Often self-hosted |
| Use case | Best fit | Why |
|---|---|---|
| Spam detection | JEV | Schema is {spam, not-spam}, high-volume, low-cost |
| Email triage | JEV | Pick folder from known set |
| Lead scoring | JEV | Score 1-5 on rubric |
| Form validation | JEV | Decision with confidence |
| Creative writing | LLM | Open-ended generation |
| Image generation | FLUX/DALL-E | Not a decision |
| Translation | LLM | Long context + fluency |
| Sentiment analysis | JEV | Choice or score |
| Image classification | JEPA | Vector-based similarity |
| Audio transcription | Whisper | Not a decision |
| Routing/triage | JEV | Pick from handlers, low cost |
| Code review (linting) | JEV | Pass/fail decisions |
| Code review (style) | LLM | Subjective |
| Search relevance | JEPA + JEV | JEPA finds candidates, JEV ranks |
| Customer support routing | JEV | Pick team from known set |
| Fraud detection | JEV | Yes/no with confidence |
| Model | Avg input tokens | Avg cost |
|---|---|---|
| JEV | 600 | $0.0000253 |
| GPT-4 (input only) | 800 | $0.0020 |
| DeepSeek V4-Flash (DeepInfra) | 800 | $0.000023 |
| JEPA self-hosted | n/a | ~$0.001 |
| Pattern | Cost | Quality |
|---|---|---|
| JEV only (no fallback) | $25 | Medium (low-confidence routes to human) |
| JEV (95%) + LLM (5%) | $75 | High |
| JEPA + JEV (70%) + LLM (30%) | $300 | Highest |
| LLM only (baseline) | $25,000 | High but slow |
JEV-augmented stacks are 100-1000x cheaper than LLM-only for typed decisions.
| Component | SLA |
|---|---|
| Cloudflare Pages (static) | 99.99% |
| Cloudflare Pages Worker | 99.95% |
| TypeSafe JEV (current) | Best effort, 250k tok/s, 1200 req/min |
| Combined (worst case) | ~99.9% (multiply) |
// Before: prompt-engineered classifier
const r = await openai.complete(
"Classify this email as spam or not-spam. Email: ..."
);
if (r.includes("spam")) block();
// After: JEV-decision + LLM escalation
const jev = await jev.decide(state, {
is_spam: {type: "noul", question: "Is this spam?", instructions: "..."}
});
if (jev.is_spam.noul > 0.9) block();
else if (jev.is_spam.noul > 0.6) return await llm.review(jev);
else deliver();
Regex catches format errors. JEV catches semantic errors (e.g., "555-01-0234 is a fake SSN that passes the regex").
Replace 5000-line rules engine with 20 questions. Output the rules as LLM narrative for audit logs.
JEV replaces the score function. JEPA replaces cluster features. LLM generates the sales email.
JEV picks the right model per request (vs always calling all of them).