metajev
Records the full distribution of every Jev answer by state, question and model, so thresholds can move over history with no new calls.
Overview
metajev separates decisions from policy. A decision model returns a probability distribution in one pass, but most integrations write a threshold right next to the API call, such as escalating when probability exceeds 0.8. That makes the threshold invisible and load-bearing: changing it means re-running the model over everything, comparing two thresholds means two full runs, and the probability is discarded, so you cannot later check whether the model was right.
metajev stores the full distribution under a key built from the state, the question, the provider and the model, and nothing else, since a decision is a pure function of those. Thresholds, review bands, routing and spending limits live in a separate policy object that reads the stored records. Moving an accept boundary then costs a pass over stored numbers with no further model calls, and stored probabilities remain available for later evaluation. Providers include TypeSafe, SGLang, OpenAI-compatible endpoints and a mock. It installs from the cloned repository, with PyPI release pending, and a design write-up explains the reasoning.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Does this ticket need a person? (example) | — |
| Other | Policy bands over stored distributions (accept, review, reject) | — |
How it works
- Ask a question through the metajev client
- Store the full distribution keyed by state, question, provider and model
- Policy reads the record and applies bands
- Change thresholds and replay over stored history
- Evaluate past decisions without new calls
Strengths
- Threshold changes need no new model calls
- Probabilities retained for later evaluation
- Multiple providers including local
Caveats
- Not yet on PyPI
- Storage grows with decisions
- Cache invalidates if model or question changes
Getting started
git clone https://github.com/YYTbit/metajev && cd metajev && pip install -e .At a glance
- Type
- Library
- Status
- beta
- Language
- Python
- Runtime
- library with SQLite store
- Has code
- yes
Use cases and integrations
How curated lists describe it
Decision infrastructure: keeps the full distribution behind each Jev `Noul`, `Choice`, or `Score` answer under a key of state, question, and model, so an accept boundary can be moved across the whole recorded history with no further Jev calls.
yibie/awesome-jev
Frequently asked questions
Why separate policy from decisions?
So thresholds can change and be compared over stored history without re-running the model.
What is the cache key?
A hash of the state, question, provider and model.
Which providers are supported?
TypeSafe, SGLang, OpenAI-compatible endpoints and a mock.
Related projects
Monitoring proxy and client that records Jev answer probabilities and alerts on version changes, drift, edge crowding or accuracy drops.
ProxybetaPythonChinese-documented LLM gateway with virtual model routing, protocol conversion and a transparent Jev System One proxy.
ServicebetaTypeScriptOpenTelemetry Collector processor that asks Jev how useful each metric is from its metadata and applies keep/drop policy.
ServiceprototypeGoOpenTelemetry trace processor that asks Jev whether an operation is diagnostic, business-critical and worth keeping, and annotates spans.
ProjectprototypeGoLocal Jev-compatible proxy that records an app's typed decisions, distils a head per decision site on Laya, and answers when confident.
ProxybetaPythonCommunity Rails integration for System One with configuration, persisted usage and cost telemetry, and fail-closed confidence policies.
LibrarybetaRuby