Score boolean, choice and ordered decisions with AgentJev v1 on an owned CPU desktop
Serve the complete trained AgentJev v1 backbone and decision head in CPU float32. A private serial endpoint checks a fictional library schedule with all three native primitives and full relative probability distributions. Each complete causal candidate path is bounded at 2048 tokenizer positions; there is no language decoding or generated output budget. Native calibration is preserved. Memory fit, speed and domain accuracy remain unmeasured.
- Hardware
- Intel Core i5-12400 desktop, 4 inference threads, 32 GiB RAM
- Runtime
- Native AgentJev v1 complete CPU FP32 decision backbone and head Source3b0042a; Torch2.6.0CPU; Transformers4.57.6; Python3.12 · CPU
- Model format
- safetensors · CPU FP32, strict complete state; exact v1 size/hash/BF16 header required despite HF F32 summary. · Native v1 serialized BF16 per publisher verifier; explicit CPU FP32 execution
- Workload
- 2,048 token context · 1 concurrent
Based on source documentation; this setup has not been executed by OpenTools. Memory: unknown. No compatible measurement available.
Read the complete setup guide
Before you start
- Use an owned Intel Core i5-12400 Ubuntu 24.04 x86_64 workstation with 32 GiB RAM and 40 GiB free disk; allocate four CPU threads. Verify actual installed resources.
- Read the pinned native Apache 2.0 source license and v1 card plus upstream notice. Retain notices and review applicable conditions; no legal clearance is asserted.
- Use the complete exact v1 checkpoint, calibration and tokenizer assets. Do not substitute the later default-branch F32 checkpoint, a language decoder, separate base weights, adapters or a routing-only fine-tune.
- Python 3.12, CPU Torch 2.6.0 and Transformers 4.57.6 are explicit source-qualified reader choices. Native pyproject requires Torch at least 2.5 despite older README wording; resolved transitive packages must be recorded. No installation or model execution was performed by the author.
- This private educational workflow accepts bounded text states and all three decision primitives. The supplied original fictional library fixture is low stakes; probabilities do not establish domain calibration, truth, safety or permission to automate actions.
Exact model and requirements
- Artifact:
- aimeigaoshou (native release), malevrigns (official source) / AgentJev v1 complete trained Qwen3 backbone and candidate decision head · checkpoint aimeigaoshou/agent-jev v1
- Publisher revision:
- 7d433994fbde17a3f0993c2f2b02fe8ca1370db1
- Artifact digest:
- sha256:8166e46dc6019ae13f0d8fc97d603cdbcc2d20eb1882c7350c8deb9fc6bae215
- Download size:
- 1.11 GiB
- Memory requirement (unknown):
- Unknown — No measured peak for both networks, CPU tensors, native decoding, dependencies and serialization.
- System RAM / disk:
- Unknown / Unknown
- Placement:
- single device. One CPU host; path microbatch one, serial HTTP request handling. Complete trained backbone and head on CPU; no separate language decoder, base weights, GPU or offload.
- KV cache:
- Complete independent causal paths use native backbone use_cache=False; no autoregressive output decoding or shared-prefix compute is requested.
- Workload:
- 2,048 token context; Unknown; Not applicable; concurrency 1; batch 1; cache unknown; repetitions Unknown.
- Tokenizer:
- Exact v1 local Qwen3 tokenizer, native path framing without added special tokens · 7d433994fbde17a3f0993c2f2b02fe8ca1370db1
- Sampling / reasoning:
- No autoregressive sampler. Exact pinned boolean, choice and score temperature scalars are loaded and checked against the complete native calibration file; these are relative head distributions, not arbitrary-domain calibration or action-success probabilities. Each candidate is a complete causal [STATE], [QUESTION], [CANDIDATE] path. The bare v1 strict safetensors route has no training config and rejects paths beyond 2048 rather than truncating. Native config positional capacity 32768 is distinct from this service bound. Boolean returns true mass and threshold; choice returns relative argmax, top probability and margin; score returns ordered expected level plus argmax. Transport identifiers are not semantic inputs; no tool or action executes.
- Runtime prerequisites:
- Ubuntu24.04 x86_64; See prerequisites above.
The native source contains Apache 2.0 and the exact v1 model card declares Apache 2.0; the snapshot lists no separate license file. Retain applicable copyright, license, notices and modification notices; Apache trademark and patent conditions apply. The identified Qwen3 upstream currently publishes Apache 2.0 too, but its training revision and Base versus non-Base labeling are not proven by these sources. Source access is not legal clearance or permission for unrelated data. No decision accuracy or fitness guarantee.
- temperatures.json · 0 GiB · revision 7d433994fbde17a3f0993c2f2b02fe8ca1370db1
- config.json · 0 GiB · revision 7d433994fbde17a3f0993c2f2b02fe8ca1370db1
- tokenizer.json · 0.01 GiB · revision 7d433994fbde17a3f0993c2f2b02fe8ca1370db1
- tokenizer_config.json · 0 GiB · revision 7d433994fbde17a3f0993c2f2b02fe8ca1370db1
- vocab.json · 0 GiB · revision 7d433994fbde17a3f0993c2f2b02fe8ca1370db1
- merges.txt · 0 GiB · revision 7d433994fbde17a3f0993c2f2b02fe8ca1370db1
- Native model file is 1,196,881,242 bytes; all seven required release assets total 1,208,372,367 bytes. These are artifact sizes, not RAM requirements.
- Publisher verifier counts 598,418,689 parameter elements; their FP32 storage lower bound is 2,393,674,756 bytes before loading copies, activations, masks, tokenizer, libraries and OS. Peak and fit remain unknown.
- Four CPU threads, 32 GiB RAM and 40 GiB free disk are planning allocations, not measured minima.
One-time setup and hardware
- hardware
- Unknown — Existing desktop purchase price and incremental hardware cost depend on the reader; unknown.
- Existing desktop purchase price and incremental hardware cost depend on the reader; unknown. Tax: unknown.
- setup
- Unknown — Initial provisioning/build time and labor cost are unknown.
- Initial provisioning/build time and labor cost are unknown. Tax: unknown.
Recurring costs
- electricity
- Unknown — Actual wall power, electricity rate and powered hours are unknown; no TDP-to-wall-power conversion.
- Actual wall power, electricity rate and powered hours are unknown; no TDP-to-wall-power conversion. Tax: unknown.
- storage
- Unknown — Incremental cost of local disk capacity is unknown. The 40 GiB free-disk walkthrough allocation is an author choice, not a measured requirement.
- Incremental cost of local disk capacity is unknown. The 40 GiB free-disk walkthrough allocation is an author choice, not a measured requirement. Tax: unknown.
- egress
- Unknown — Data transfer price, allowances and traffic volume are unknown.
- Data transfer price, allowances and traffic volume are unknown. Tax: unknown.
- administration
- Unknown — Maintenance labor rate and hours are unknown.
- Maintenance labor rate and hours are unknown. Tax: unknown.
Install the runtime
1. Install the exact native CPU dependency path
Use the official hashed CPU wheel and complete pinned source package without stripping dependencies. The imported native losses, data, model, encoders and service path are source-audited. Eager Qwen3 attention is selected through the released Transformers API; no CUDA driver or flash-attention package is required. Record the resolved environment; target execution remains unverified.
Commandset -e sudo apt-get update sudo apt-get install -y python3.12 python3.12-venv git curl ca-certificates openssl mkdir -p "$HOME/agentjev-v1-hosting/model" cd "$HOME/agentjev-v1-hosting" python3.12 -m venv .venv .venv/bin/python -m pip install 'https://download.pytorch.org/whl/cpu/torch-2.6.0%2Bcpu-cp312-cp312-linux_x86_64.whl#sha256=59e78aa0c690f70734e42670036d6b541930b8eabbaa18d94e090abf14cc4d91' git clone https://github.com/malevrigns/agent-jev.git runtime git -C runtime checkout --detach 3b0042a6171124c5d2942748ae01f453ed2cce61 test "$(git -C runtime rev-parse HEAD)" = '3b0042a6171124c5d2942748ae01f453ed2cce61' .venv/bin/python -m pip install 'transformers==4.57.6' 'numpy==1.26.4' 'PyYAML==6.0.2' 'tqdm==4.67.1' 'safetensors==0.6.2' -e ./runtime .venv/bin/python -m pip check .venv/bin/python -m pip freeze > resolved-environment.txtExpected result: Pinned source checkout, direct package versions and pip check succeed; resolved environment saved. Stop on any dependency failure.
Download the model
1. Download all seven exact v1 assets and notices
All hashes and sizes come from the native release verifier and pinned public metadata. Download no alternate branch. The wrapper checks every size and digest and the publisher BF16 header composition before importing the native loader. HF API F32 summary disagrees with the verifier; a mismatch is a stop, not permission to relabel the release.
Commandset -e cd "$HOME/agentjev-v1-hosting" curl --fail --location --output model/model.safetensors 'https://huggingface.co/aimeigaoshou/agent-jev/resolve/7d433994fbde17a3f0993c2f2b02fe8ca1370db1/model.safetensors' curl --fail --location --output model/temperatures.json 'https://huggingface.co/aimeigaoshou/agent-jev/resolve/7d433994fbde17a3f0993c2f2b02fe8ca1370db1/temperatures.json' curl --fail --location --output model/config.json 'https://huggingface.co/aimeigaoshou/agent-jev/resolve/7d433994fbde17a3f0993c2f2b02fe8ca1370db1/config.json' curl --fail --location --output model/tokenizer.json 'https://huggingface.co/aimeigaoshou/agent-jev/resolve/7d433994fbde17a3f0993c2f2b02fe8ca1370db1/tokenizer.json' curl --fail --location --output model/tokenizer_config.json 'https://huggingface.co/aimeigaoshou/agent-jev/resolve/7d433994fbde17a3f0993c2f2b02fe8ca1370db1/tokenizer_config.json' curl --fail --location --output model/vocab.json 'https://huggingface.co/aimeigaoshou/agent-jev/resolve/7d433994fbde17a3f0993c2f2b02fe8ca1370db1/vocab.json' curl --fail --location --output model/merges.txt 'https://huggingface.co/aimeigaoshou/agent-jev/resolve/7d433994fbde17a3f0993c2f2b02fe8ca1370db1/merges.txt' sha256sum --check <<'SHA256' 8166e46dc6019ae13f0d8fc97d603cdbcc2d20eb1882c7350c8deb9fc6bae215 model/model.safetensors 5e5032896d77c72feb86b4725abe418488b8a1c7476014c706bd8215eb43c86c model/temperatures.json 504a6b58c4271583724e66584b6b7698aea18450209df6b2f7582df0e89cee59 model/config.json c0382117ea329cdf097041132f6d735924b697924d6f6fc3945713e96ce87539 model/tokenizer.json 3c04ed3ca964ea2f6b2b5faf0dc4d31aec1cb1e8b4bcf63f402d295046b422b5 model/tokenizer_config.json ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910 model/vocab.json 8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5 model/merges.txt SHA256 curl --fail --location --output AGENTJEV-LICENSE 'https://raw.githubusercontent.com/malevrigns/agent-jev/3b0042a6171124c5d2942748ae01f453ed2cce61/LICENSE' printf '%s %s\n' 'f4d9b0aad8ff9e650f5890fa3eeb7c1311479cab901f8a9b416a2d9acaf54266' 'AGENTJEV-LICENSE' | sha256sum --check curl --fail --location --output QWEN-UPSTREAM-LICENSE 'https://huggingface.co/Qwen/Qwen3-0.6B-Base/resolve/da87bfb608c14b7cf20ba1ce41287e8de496c0cd/LICENSE' printf '%s %s\n' '832dd9e00a68dd83b3c3fb9f5588dad7dcf337a0db50f7d9483f310cd292e92e' 'QWEN-UPSTREAM-LICENSE' | sha256sum --checkExpected result: Every asset and both retained notices pass SHA checks. Native weights have not been fetched by the author.
Configure
1. Write the manifest, original fixture and persistent key
Create a key only when absent; an empty existing key must fail rather than silently rotate. Protect files and review the original synthetic state and criteria.
Commandset -e cd "$HOME/agentjev-v1-hosting" cat > release-manifest.json <<'MANIFEST' { "repository": "aimeigaoshou/agent-jev", "revision": "7d433994fbde17a3f0993c2f2b02fe8ca1370db1", "files": [ { "path": "model.safetensors", "bytes": 1196881242, "sha256": "8166e46dc6019ae13f0d8fc97d603cdbcc2d20eb1882c7350c8deb9fc6bae215" }, { "path": "temperatures.json", "bytes": 389, "sha256": "5e5032896d77c72feb86b4725abe418488b8a1c7476014c706bd8215eb43c86c" }, { "path": "config.json", "bytes": 727, "sha256": "504a6b58c4271583724e66584b6b7698aea18450209df6b2f7582df0e89cee59" }, { "path": "tokenizer.json", "bytes": 7031645, "sha256": "c0382117ea329cdf097041132f6d735924b697924d6f6fc3945713e96ce87539" }, { "path": "tokenizer_config.json", "bytes": 9678, "sha256": "3c04ed3ca964ea2f6b2b5faf0dc4d31aec1cb1e8b4bcf63f402d295046b422b5" }, { "path": "vocab.json", "bytes": 2776833, "sha256": "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910" }, { "path": "merges.txt", "bytes": 1671853, "sha256": "8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5" } ] } MANIFEST cat > fixture.json <<'FIXTURE' { "id": "original-library-schedule", "state": "A fictional community library opens weekdays 9am–6pm, Saturday 10am–4pm, and is closed Sunday. These are original synthetic facts for a low-stakes demonstration.", "questions": [ { "id": "sunday", "type": "boolean", "question": "Is the library open on Sunday according to this state?", "criteria": { "true": "The supplied state says it is open Sunday.", "false": "The supplied state says it is closed Sunday." } }, { "id": "saturday-hours", "type": "choice", "question": "How many hours is the library open on Saturday?", "options": { "four": "Four hours.", "six": "Six hours.", "nine": "Nine hours." } }, { "id": "weekday-duration", "type": "score", "question": "Rate the weekday opening duration by the ordered definitions.", "levels": [ "At most four hours open per weekday.", "More than four but at most eight hours open per weekday.", "More than eight hours open per weekday." ] } ] } FIXTURE if [ ! -e .api-key ]; then (umask 077; openssl rand -hex 32 > .api-key); fi test -s .api-key chmod 600 .api-keyExpected result: Manifest and fictional fixture saved; private nonempty key retained.
2. Write request and result boundaries
Reader-authored service code is independent of publisher HTTP serving code. It rejects unknown fields, duplicate JSON keys, unsupported content framing and malformed probability algebra. No publisher model code executes while writing this file.
Commandset -e cd "$HOME/agentjev-v1-hosting" cat > reader-decision-server.py <<'PYWRAPPER' """Reader-authored serial private AgentJev decision service; no native imports at import time.""" import hashlib,hmac,json,math,pathlib,re,socket,struct from http.server import HTTPServer,BaseHTTPRequestHandler PORT=8999 EXPECTED_WEIGHT='8166e46dc6019ae13f0d8fc97d603cdbcc2d20eb1882c7350c8deb9fc6bae215' def digest(path): h=hashlib.sha256() with open(path,'rb')as f: for b in iter(lambda:f.read(4*1024*1024),b''):h.update(b) return h.hexdigest() def verify_files(root,manifest): for row in manifest: f=root/row['path'] if not f.is_file()or f.stat().st_size!=row['bytes']or digest(f)!=row['sha256']:raise ValueError('Pinned release asset mismatch') def header_check(path): with open(path,'rb')as f: raw=f.read(8) if len(raw)!=8:raise ValueError('Missing safetensors header') n=struct.unpack('<Q',raw)[0] if not 1<=n<=1048576:raise ValueError('Header bound') h=json.loads(f.read(n)) tensors=[v for k,v in h.items()if k!='__metadata__'] if len(tensors)!=343 or any(v.get('dtype')!='BF16'for v in tensors):raise ValueError('Expected exact publisher v1 BF16 header; metadata discrepancy is not waived') total=0 for v in tensors: shape=v.get('shape') if not isinstance(shape,list)or any(type(x)is not int or x<0 for x in shape):raise ValueError('Invalid shape') total+=math.prod(shape) if total!=598418689:raise ValueError('Full parameter composition mismatch') def parse_request(raw): def unique(pairs): d={} for k,v in pairs: if k in d:raise ValueError('Duplicate field') d[k]=v return d p=json.loads(raw.decode('utf-8'),object_pairs_hook=unique,parse_constant=lambda _:(_ for _ in()).throw(ValueError('Nonfinite JSON'))) if not isinstance(p,dict)or set(p)!={'id','state','questions'}:raise ValueError('Exact state request schema') def text(v,limit): if not isinstance(v,str)or not v.strip()or len(v.encode())>limit or any(x in v for x in ['[STATE]','[QUESTION]','[CANDIDATE]']):raise ValueError('Bounded plain text required') text(p['id'],80);text(p['state'],4096) if not isinstance(p['questions'],list)or not 1<=len(p['questions'])<=3:raise ValueError('One to three questions required') ids=set() for q in p['questions']: if not isinstance(q,dict):raise ValueError('Question object required') t=q.get('type') if not isinstance(t,str):raise ValueError('Typed primitive string required') extra={'boolean':'criteria','choice':'options','score':'levels'}.get(t) if extra is None or set(q)!={'id','type','question',extra}:raise ValueError('Exact typed question schema') text(q['id'],80);text(q['question'],1024) if q['id']in ids:raise ValueError('Duplicate question id') ids.add(q['id']);v=q[extra] if t=='boolean': if not isinstance(v,dict)or set(v)!={'true','false'}:raise ValueError('Both boolean criteria required') vals=list(v.values()) elif t=='choice': if not isinstance(v,dict)or not 2<=len(v)<=8:raise ValueError('Two to eight choice options') for k in v:text(k,80) vals=list(v.values()) else: if not isinstance(v,list)or not 2<=len(v)<=5:raise ValueError('Two to five ordered score levels') vals=v for v in vals:text(v,1024) if len(set(vals))!=len(vals):raise ValueError('Distinct descriptions required') return p def request_length(headers): vals=headers.get_all('Content-Length',[]) if headers.get('Transfer-Encoding')is not None or len(vals)!=1 or not re.fullmatch('[0-9]{1,5}',vals[0]):raise ValueError('One bounded decimal length') n=int(vals[0]) if not 1<=n<=16384:raise ValueError('Body outside limit') return n def validate_result(request,result): if result.get('api_version')!='agentjev.decision.v1':raise ValueError('Native API version mismatch') usage=result.get('usage',{}) if any(type(usage.get(k))is not int or usage[k]!=0 for k in ['generated_tokens','truncated_inputs']):raise ValueError('No decoding or truncation allowed') rows=result.get('results');questions=request['questions'] if not isinstance(rows,list)or len(rows)!=1 or rows[0].get('id')!=request['id']:raise ValueError('Native state identity mismatch') answers=rows[0].get('answers') if not isinstance(answers,list)or len(answers)!=len(questions):raise ValueError('Missing typed answers') paths=0 for q,a in zip(questions,answers): t=q['type'];keys=['true','false']if t=='boolean'else list(q['options'])if t=='choice'else[str(i)for i in range(len(q['levels']))];paths+=len(keys) dist=a.get('distribution') if a.get('id')!=q['id']or a.get('type')!=t or not isinstance(dist,dict)or list(dist)!=keys:raise ValueError('Typed answer identity mismatch') probs=list(dist.values()) if any(type(x)not in(int,float)or not math.isfinite(x)or not 0<=x<=1 for x in probs)or abs(sum(probs)-1)>1e-4:raise ValueError('Invalid finite distribution') best=max(range(len(probs)),key=probs.__getitem__) def close(a,b):return type(a)in(int,float)and math.isfinite(a)and abs(a-b)<=1e-6 if t=='boolean': if type(a.get('value'))is not bool or a['value']!=(probs[0]>=.5)or not close(a.get('probability'),probs[0]):raise ValueError('Boolean semantics mismatch') elif t=='choice': ranked=sorted(probs,reverse=True) if a.get('value')!=keys[best]or a.get('description')!=q['options'][keys[best]]or not close(a.get('top_probability'),probs[best])or not close(a.get('margin'),ranked[0]-ranked[1]):raise ValueError('Relative choice semantics mismatch') elif type(a.get('level'))is not int or a['level']!=best or a.get('legend')!=q['levels']or not close(a.get('score'),sum(i*x for i,x in enumerate(probs))):raise ValueError('Ordered expected-score semantics mismatch') if usage.get('questions')!=len(questions)or usage.get('candidate_paths')!=paths or type(usage.get('input_path_tokens'))is not int or not paths<=usage['input_path_tokens']<=paths*2048:raise ValueError('Native path usage mismatch') return result PYWRAPPERExpected result: First wrapper portion saved.
3. Write strict native loading and serial loopback HTTP
Startup verifies every native file and header before loading the complete trained state with strict=True. It checks CPU FP32, all three calibration scalars and native identity/path mode. It has a 30 second socket-read timeout, no native inference deadline and no public-service hardening.
Commandset -e cd "$HOME/agentjev-v1-hosting" cat >> reader-decision-server.py <<'PYWRAPPER' class Engine: def __init__(self,root): import os manifest=json.loads((root/'release-manifest.json').read_text())['files'];verify_files(root/'model',manifest);header_check(root/'model/model.safetensors') os.environ.update(HF_HUB_OFFLINE='1',TRANSFORMERS_OFFLINE='1') import torch from jev_service.engine import DecisionEngine from jev_service.contract import prepare,encode_paths torch.set_default_dtype(torch.float32);torch.set_num_threads(4);torch.set_num_interop_threads(1) self.engine=DecisionEngine(root/'model/model.safetensors',str(root/'model'),device='cpu',max_tokens=2048,path_batch=1,encoder='path',temperatures=root/'model/temperatures.json') self.engine.model.path_encoder.backbone.set_attn_implementation('eager') if self.engine.model.path_encoder.backbone.config._attn_implementation!='eager':raise ValueError('Explicit eager attention required') if any(p.is_floating_point()and p.dtype!=torch.float32 for p in self.engine.model.parameters()):raise ValueError('CPU FP32 parameters required') info=self.engine.info();expected=json.loads((root/'model/temperatures.json').read_text());temps={k:v['temperature']for k,v in expected.items()} if set(temps)!={'boolean','choice','score'}or temps!={'boolean':1.0717734625362931,'choice':1.0352649238413776,'score':1.0717734625362931}:raise ValueError('Complete exact calibration required') if info['api_version']!='agentjev.decision.v1'or info['checkpoint_sha256']!=EXPECTED_WEIGHT or info['encoder']!='path'or info['max_path_tokens']!=2048 or info['temperatures']!=temps or info['types']!=['boolean','choice','score']or info['output_token_decoding']is not False or info['shared_prefix_compute']is not False:raise ValueError('Native release/calibration identity mismatch') self.prepare=prepare;self.encode_paths=encode_paths;self.info=info def evaluate(self,request): paths,_,_=self.encode_paths(self.prepare(request),self.engine.tokenizer,2048) if not paths or any(not p or len(p)>2048 for p in paths):raise ValueError('Complete per-path bound') return validate_result(request,self.engine.evaluate(request)) def serve(engine,key): class Handler(BaseHTTPRequestHandler): protocol_version='HTTP/1.0' def setup(self):super().setup();self.connection.settimeout(30) def log_message(self,*a):pass def reply(self,status,obj): b=json.dumps(obj,ensure_ascii=False,allow_nan=False).encode();self.send_response(status);self.send_header('Content-Type','application/json');self.send_header('Content-Length',str(len(b)));self.end_headers();self.wfile.write(b) def auth(self): v=self.headers.get_all('Authorization',[]) try:return len(v)==1 and hmac.compare_digest(v[0].encode('ascii'),('Bearer '+key).encode('ascii')) except UnicodeError:return False def do_GET(self): if not self.auth():return self.reply(401,{'error':'Unauthorized'}) if self.path!='/health':return self.reply(404,{'error':'Not found'}) return self.reply(200,{'ready':True,'native':engine.info,'reader_path_microbatch':1,'reader_context_per_path':2048}) def do_POST(self): if not self.auth():return self.reply(401,{'error':'Unauthorized'}) if self.path!='/api/evaluate':return self.reply(404,{'error':'Not found'}) try: if self.headers.get('Content-Type')!='application/json':raise ValueError('JSON required') n=request_length(self.headers);b=self.rfile.read(n) if len(b)!=n:raise ValueError('Incomplete body') req=parse_request(b) except(ValueError,UnicodeError,socket.timeout):return self.reply(400,{'error':'Invalid bounded request'}) try:out=engine.evaluate(req) except Exception:return self.reply(422,{'error':'Native path or finite-distribution check failed; no action executed'}) return self.reply(200,out) server=HTTPServer(('127.0.0.1',PORT),Handler) try:server.serve_forever() finally:server.server_close() if __name__=='__main__': root=pathlib.Path(__file__).resolve().parent;key=(root/'.api-key').read_text().strip() if not re.fullmatch('[a-f0-9]{64}',key):raise ValueError('Restore private service key') serve(Engine(root),key) PYWRAPPER printf '%s %s\n' 'a997d981592ccc21575be799483bf41f65ce43990175e579936cc643d5d59cce' 'reader-decision-server.py' | sha256sum --check .venv/bin/python -m py_compile reader-decision-server.pyExpected result: Exact wrapper SHA and Python syntax pass; no inference has run.
Start the model
1. Start the private CPU decision service
Run in a foreground shell. Four intra-op threads and one inter-op thread are explicit CPU settings. Complete independent candidate paths use native path microbatch one and no shared-prefix compute. Health means initialized and checked, not successful model inference.
Commandset -e cd "$HOME/agentjev-v1-hosting" export OMP_NUM_THREADS=4 MKL_NUM_THREADS=4 HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 .venv/bin/python reader-decision-server.pyExpected result: Exact native checkpoint/calibration identity checks pass and port 8999 binds only to loopback. Any size, hash, header, state-key, dtype or attention failure aborts startup.
Connect to your endpoint
http://127.0.0.1:8999/api/evaluate
Trusted workstation loopback only; supplied verification runs on that workstation.
Access: loopback. A locally generated private Bearer key is required for health and evaluation. Requests contain one state and one to three typed questions. Complete native answer distributions and zero decoding usage are returned. This serial reader wrapper has no TLS, public exposure or multiuser isolation; protect host files and SSH credentials.
Verify the setup
1. Verify authentication, native algebra and grounded fixture
Run in a second shell on the same host. Require unauthorized health to return 401, then check native identity and all three primitives. The checker independently revalidates complete distributions and manual fixture answers: Sunday closed, Saturday six hours, weekday duration above eight hours. Score is the probability-weighted ordinal expectation, not forced to its argmax. Wrong preferred alternatives fail; passing one fixture is not accuracy evidence.
Commandset -e cd "$HOME/agentjev-v1-hosting" .venv/bin/python - <<'PYVERIFY' import json,urllib.request,urllib.error,pathlib root=pathlib.Path.cwd();key=(root/'.api-key').read_text().strip();base='http://127.0.0.1:8999' try:urllib.request.urlopen(base+'/health',timeout=10) except urllib.error.HTTPError as e:assert e.code==401 else:raise AssertionError('Missing authentication rejection') h=json.load(urllib.request.urlopen(urllib.request.Request(base+'/health',headers={'Authorization':'Bearer '+key}),timeout=30)) assert h['ready']is True and h['native']['types']==['boolean','choice','score'] assert h['native']['output_token_decoding']is False and h['native']['shared_prefix_compute']is False assert h['native']['checkpoint_sha256']=='8166e46dc6019ae13f0d8fc97d603cdbcc2d20eb1882c7350c8deb9fc6bae215' request=json.loads((root/'fixture.json').read_text());body=json.dumps(request).encode() r=urllib.request.Request(base+'/api/evaluate',data=body,headers={'Authorization':'Bearer '+key,'Content-Type':'application/json'}) out=json.load(urllib.request.urlopen(r,timeout=900));(root/'result.json').write_text(json.dumps(out,indent=2)+'\n') from importlib.util import spec_from_file_location,module_from_spec s=spec_from_file_location('reader',root/'reader-decision-server.py');module=module_from_spec(s);s.loader.exec_module(module) module.validate_result(request,out) a=out['results'][0]['answers'];assert a[0]['value']is False and a[1]['value']=='six' and a[2]['level']==2 assert out['usage']['generated_tokens']==0 and out['usage']['truncated_inputs']==0 print(json.dumps(out,indent=2));print('Fixture structure and grounded preferred alternatives pass; no domain accuracy guarantee.') PYVERIFYExpected result: Complete native result is saved. All native probabilities are finite, normalized and consistent with boolean mass, choice argmax/margin and ordinal expectation; eight candidate paths and zero generated tokens are checked.
Performance evidence
No compatible measurement available. Documented support and estimated memory do not establish response speed.
Limits and troubleshooting
- Documentation and source checks only: no weights, native model imports, tokenizer execution, installation, build, inference, fit, latency or quality measurements were performed.
- Native v1 verifier expects 343 BF16 tensors while HF API safetensors summary says F32. Exact release size, SHA and header composition must all pass before strict whole-state loading; do not replace with the later checkpoint.
- The integrated model is a trained Qwen3 backbone plus candidate head, not a language decoder or adapter. CPU defaults and this explicit reader path use FP32; README BF16 examples do not establish CPU dtype.
- Native path limit is 2048 positions including complete state/question/candidate framing. Sums across eight fixture paths do not share this context bound. The service refuses overlength paths and reports truncated_inputs zero; there is no generated output budget.
- Native source accepts larger candidate counts; this reader boundary allows at most three questions, eight choice candidates or five ordered score levels, a 16 KiB body and bounded UTF-8 fields. Requests are serial and there is no inference deadline.
- The native calibration file is preserved and all three scalars checked. Boolean and relative choice probabilities and ordered expected scores are model distributions; arbitrary-domain calibration, action success and correctness are unknown. No external action executes.
- The original fictional fixture checks meaningful outputs for all three native primitives. A protocol pass or preferred answer is not a general model accuracy benchmark.
- Native source package metadata says version 1.0.0 while its module reports 0.1.0; exact source commit governs. Training upstream revision and Base versus non-Base model-card labeling remain unresolved provenance details.
- 32 GiB RAM and 40 GiB disk are planning allocations. Full load copies, CPU activations and scratch add to the FP32 parameter lower bound; actual required memory, fit, speed, quality and task spend are unknown.
- Larger batches, shared-prefix encoders, routing-only checkpoints, GPU execution and other native workflows remain open. Required family guide total is null; this pair is not exhaustive.
- Native asset, header or strict state load fails
- Stop. Restore the exact seven v1 files and inspect actual diagnostics; do not waive missing keys, switch to another checkpoint or conceal the dtype discrepancy.
- Path too long or invalid native distribution
- Treat the request as failed. Shorten the complete state/question/candidate paths deliberately; do not truncate or clamp probabilities, margins or ordinal scores.
- HTTP 401 or loopback connection failure
- Check the exact service key, foreground process and intended workstation loopback port.
- Out of memory or very slow inference
- Stop and preserve actual logs. Planning allocations and parameter storage do not prove fit or latency. Any larger resource choice needs its own reviewed configuration.
Stop the model
1. Stop the foreground service
Press Ctrl+C in the server shell, then confirm the intended listener is gone.
Commandcurl --max-time 3 --fail http://127.0.0.1:8999/healthExpected result: Connection is refused after shutdown. A 401 indicates the service is still running; an auth rejection is not stopped proof.
Uninstall
1. Remove the dedicated files
Preserve desired result, environment record and notices first. Verify the exact dedicated path before removing its private key, assets, source and environment. Shared Ubuntu packages remain.
Commandrm -r -- "$HOME/agentjev-v1-hosting"Expected result: Dedicated source, model, virtual environment, fixture, results and key removed.
Sources and verification
Sources checked Oct 17, 2026. Verification source
- https://api.github.com/repos/malevrigns/agent-jevpublisher · retrieved Oct 17, 2026
- https://huggingface.co/api/models/aimeigaoshou/agent-jev?blobs=truepublisher · retrieved Oct 17, 2026
- https://api.github.com/repos/malevrigns/agent-jev/commits/mainpublisher · retrieved Oct 17, 2026
- https://api.github.com/repos/malevrigns/agent-jev/git/trees/3b0042a6171124c5d2942748ae01f453ed2cce61?recursive=1publisher · retrieved Oct 17, 2026
- https://raw.githubusercontent.com/malevrigns/agent-jev/3b0042a6171124c5d2942748ae01f453ed2cce61/README.mdpublisher · retrieved Oct 17, 2026 · revision 3b0042a
- https://raw.githubusercontent.com/malevrigns/agent-jev/3b0042a6171124c5d2942748ae01f453ed2cce61/LICENSEpublisher · retrieved Oct 17, 2026 · revision 3b0042a
- https://raw.githubusercontent.com/malevrigns/agent-jev/3b0042a6171124c5d2942748ae01f453ed2cce61/fetch_v1_weights.pypublisher · retrieved Oct 17, 2026 · revision 3b0042a
- https://raw.githubusercontent.com/malevrigns/agent-jev/3b0042a6171124c5d2942748ae01f453ed2cce61/requirements.txtpublisher · retrieved Oct 17, 2026 · revision 3b0042a
- https://raw.githubusercontent.com/malevrigns/agent-jev/3b0042a6171124c5d2942748ae01f453ed2cce61/pyproject.tomlpublisher · retrieved Oct 17, 2026 · revision 3b0042a
- https://raw.githubusercontent.com/malevrigns/agent-jev/3b0042a6171124c5d2942748ae01f453ed2cce61/agentjev/model.pypublisher · retrieved Oct 17, 2026 · revision 3b0042a
- https://raw.githubusercontent.com/malevrigns/agent-jev/3b0042a6171124c5d2942748ae01f453ed2cce61/jev_service/README.mdpublisher · retrieved Oct 17, 2026 · revision 3b0042a
- https://raw.githubusercontent.com/malevrigns/agent-jev/3b0042a6171124c5d2942748ae01f453ed2cce61/jev_service/server.pypublisher · retrieved Oct 17, 2026 · revision 3b0042a
- https://raw.githubusercontent.com/malevrigns/agent-jev/3b0042a6171124c5d2942748ae01f453ed2cce61/jev_service/engine.pypublisher · retrieved Oct 17, 2026 · revision 3b0042a
- https://raw.githubusercontent.com/malevrigns/agent-jev/3b0042a6171124c5d2942748ae01f453ed2cce61/jev_service/contract.pypublisher · retrieved Oct 17, 2026 · revision 3b0042a
- https://raw.githubusercontent.com/malevrigns/agent-jev/3b0042a6171124c5d2942748ae01f453ed2cce61/jev_service/prefix.pypublisher · retrieved Oct 17, 2026 · revision 3b0042a
- https://raw.githubusercontent.com/malevrigns/agent-jev/3b0042a6171124c5d2942748ae01f453ed2cce61/agentjev_client.pypublisher · retrieved Oct 17, 2026 · revision 3b0042a
- https://huggingface.co/api/models/aimeigaoshou/agent-jev/revision/7d433994fbde17a3f0993c2f2b02fe8ca1370db1?blobs=truepublisher · retrieved Oct 17, 2026
- https://huggingface.co/aimeigaoshou/agent-jev/resolve/7d433994fbde17a3f0993c2f2b02fe8ca1370db1/README.mdpublisher · retrieved Oct 17, 2026 · revision 7d43399
- https://huggingface.co/aimeigaoshou/agent-jev/resolve/7d433994fbde17a3f0993c2f2b02fe8ca1370db1/config.jsonpublisher · retrieved Oct 17, 2026 · revision 7d43399
- https://huggingface.co/aimeigaoshou/agent-jev/resolve/7d433994fbde17a3f0993c2f2b02fe8ca1370db1/temperatures.jsonpublisher · retrieved Oct 17, 2026 · revision 7d43399
- https://huggingface.co/aimeigaoshou/agent-jev/resolve/7d433994fbde17a3f0993c2f2b02fe8ca1370db1/tokenizer_config.jsonpublisher · retrieved Oct 17, 2026 · revision 7d43399
- https://raw.githubusercontent.com/malevrigns/agent-jev/3b0042a6171124c5d2942748ae01f453ed2cce61/agentjev/__init__.pypublisher · retrieved Oct 17, 2026 · revision 3b0042a
- https://raw.githubusercontent.com/malevrigns/agent-jev/3b0042a6171124c5d2942748ae01f453ed2cce61/agentjev/data.pypublisher · retrieved Oct 17, 2026 · revision 3b0042a
- https://raw.githubusercontent.com/malevrigns/agent-jev/3b0042a6171124c5d2942748ae01f453ed2cce61/agentjev/encoders.pypublisher · retrieved Oct 17, 2026 · revision 3b0042a
- https://raw.githubusercontent.com/malevrigns/agent-jev/3b0042a6171124c5d2942748ae01f453ed2cce61/agentjev/losses.pypublisher · retrieved Oct 17, 2026 · revision 3b0042a
- https://huggingface.co/api/models/Qwen/Qwen3-0.6B-Base?blobs=truepublisher · retrieved Oct 17, 2026
- https://huggingface.co/Qwen/Qwen3-0.6B-Base/resolve/da87bfb608c14b7cf20ba1ce41287e8de496c0cd/LICENSEpublisher · retrieved Oct 17, 2026 · revision da87bfb
- https://huggingface.co/Qwen/Qwen3-0.6B-Base/resolve/da87bfb608c14b7cf20ba1ce41287e8de496c0cd/README.mdpublisher · retrieved Oct 17, 2026 · revision da87bfb
- https://raw.githubusercontent.com/huggingface/transformers/v4.57.6/src/transformers/modeling_utils.pyruntime maintainer · retrieved Oct 17, 2026
- https://raw.githubusercontent.com/pytorch/pytorch/v2.6.0/torch/nn/attention/bias.pyruntime maintainer · retrieved Oct 17, 2026
- https://pypi.org/pypi/numpy/1.26.4/jsonruntime maintainer · retrieved Oct 17, 2026
- https://pypi.org/pypi/PyYAML/6.0.2/jsonruntime maintainer · retrieved Oct 17, 2026
- https://pypi.org/pypi/tqdm/4.67.1/jsonruntime maintainer · retrieved Oct 17, 2026
- https://pypi.org/pypi/safetensors/0.6.2/jsonruntime maintainer · retrieved Oct 17, 2026
- https://pypi.org/pypi/transformers/4.57.6/jsonruntime maintainer · retrieved Oct 17, 2026
- https://raw.githubusercontent.com/malevrigns/agent-jev/3b0042a6171124c5d2942748ae01f453ed2cce61/jev_service/__init__.pypublisher · retrieved Oct 17, 2026 · revision 3b0042a
- https://raw.githubusercontent.com/huggingface/transformers/v4.57.6/src/transformers/models/qwen3/modeling_qwen3.pyruntime maintainer · retrieved Oct 16, 2026 · revision v4.57.6
- https://raw.githubusercontent.com/huggingface/transformers/v4.57.6/src/transformers/models/qwen3/configuration_qwen3.pyruntime maintainer · retrieved Oct 16, 2026 · revision v4.57.6
- https://api.github.com/repos/huggingface/pytorch-image-models/git/ref/tags/v1.0.30runtime maintainer · retrieved Oct 16, 2026
- https://raw.githubusercontent.com/huggingface/pytorch-image-models/0df212b369a5385b16dfe513d5143a7311ea1ddc/timm/models/vision_transformer.pyruntime maintainer · retrieved Oct 16, 2026 · revision 0df212b369a5385b16dfe513d5143a7311ea1ddc
- https://raw.githubusercontent.com/huggingface/pytorch-image-models/0df212b369a5385b16dfe513d5143a7311ea1ddc/timm/models/vision_transformer_sam.pyruntime maintainer · retrieved Oct 16, 2026 · revision 0df212b369a5385b16dfe513d5143a7311ea1ddc
- https://raw.githubusercontent.com/huggingface/pytorch-image-models/0df212b369a5385b16dfe513d5143a7311ea1ddc/timm/models/_hub.pyruntime maintainer · retrieved Oct 16, 2026 · revision 0df212b369a5385b16dfe513d5143a7311ea1ddc
- https://raw.githubusercontent.com/huggingface/pytorch-image-models/0df212b369a5385b16dfe513d5143a7311ea1ddc/pyproject.tomlruntime maintainer · retrieved Oct 16, 2026 · revision 0df212b369a5385b16dfe513d5143a7311ea1ddc
- https://api.github.com/repos/huggingface/pytorch-image-models/git/trees/0df212b369a5385b16dfe513d5143a7311ea1ddc?recursive=1runtime maintainer · retrieved Oct 16, 2026 · revision 0df212b369a5385b16dfe513d5143a7311ea1ddc
- https://raw.githubusercontent.com/huggingface/pytorch-image-models/0df212b369a5385b16dfe513d5143a7311ea1ddc/timm/models/eva.pyruntime maintainer · retrieved Oct 16, 2026 · revision 0df212b369a5385b16dfe513d5143a7311ea1ddc
- https://raw.githubusercontent.com/huggingface/pytorch-image-models/0df212b369a5385b16dfe513d5143a7311ea1ddc/timm/layers/patch_embed.pyruntime maintainer · retrieved Oct 16, 2026 · revision 0df212b369a5385b16dfe513d5143a7311ea1ddc
- https://raw.githubusercontent.com/pytorch/vision/v0.21.0/torchvision/transforms/functional.pyruntime maintainer · retrieved Oct 16, 2026
- https://raw.githubusercontent.com/pytorch/vision/v0.21.0/torchvision/transforms/transforms.pyruntime maintainer · retrieved Oct 16, 2026
- https://raw.githubusercontent.com/huggingface/pytorch-image-models/0df212b369a5385b16dfe513d5143a7311ea1ddc/timm/version.pyruntime maintainer · retrieved Oct 16, 2026 · revision 0df212b369a5385b16dfe513d5143a7311ea1ddc
- https://download.pytorch.org/whl/cpu/torch/runtime maintainer · retrieved Oct 16, 2026
- https://download.pytorch.org/whl/cpu/torchvision/runtime maintainer · retrieved Oct 16, 2026
- https://raw.githubusercontent.com/pytorch/vision/v0.21.0/README.mdruntime maintainer · retrieved Oct 16, 2026
- https://opentools.ai/llms/agent-jevopentools · retrieved Oct 17, 2026 · revision private-native-author-v1
- https://www.intel.com/content/www/us/en/products/sku/134586/intel-core-i512400-processor-18m-cache-up-to-4-40-ghz/specifications.htmlmanufacturer · retrieved Oct 16, 2026
- https://raw.githubusercontent.com/ggml-org/llama.cpp/620d2225cc436ab0b001e3200e590e3b286ef9ab/ggml/src/ggml-cpu/CMakeLists.txtruntime maintainer · retrieved Oct 16, 2026 · revision 620d2225cc436ab0b001e3200e590e3b286ef9ab
- https://docs.liquid.ai/lfm/inference/llama-cppruntime maintainer · retrieved Oct 16, 2026
- https://raw.githubusercontent.com/ggml-org/llama.cpp/620d2225cc436ab0b001e3200e590e3b286ef9ab/docs/build.mdruntime maintainer · retrieved Oct 16, 2026 · revision 620d2225cc436ab0b001e3200e590e3b286ef9ab