Dragonscale kniv v7 Fills Runtime-Named Entity and Relation Schemas for Agent Memory Without an LLM Round-Trip
Dragonscale has released kniv v7, six Apache-2.0 ONNX encoders from 55M to 538M parameters that extract entities, relations, polarity, modality, holder, and time from a schema you name at run time. The team reports beating GPT-6 on document-level relations while running in under a second on a laptop CPU.
Dragonscale has released kniv v7, a family of six open encoders that extract the entities, relations, and fact attributes an agent memory needs—using schema names you supply at run time, with no LLM call and no retraining. The November 2, 2026 Hugging Face engineering post by Rohit Rai frames the release as the missing middle between a flexible but expensive API extraction call and a cheap local tagger that only finds what it was trained on.
Models range from kniv-v7-tiny-en at 55 million parameters to two xlarge teachers at roughly half a billion parameters. All ship Apache-2.0 with ONNX graphs in fp32, FP16, and INT8, plus a small kniv_v7 host runtime that depends only on onnxruntime, tokenizers, and numpy.
Two layers in one local call
Each request returns a fixed linguistic layer—part of speech, morphology, lemmas, named entities, dependencies, semantic roles, dialogue acts, sentiment, and coreference—paired with a knowledge layer whose entity types and relations are inputs. For every extracted fact the model also predicts polarity (positive or negated), modality (asserted, hypothetical, planned, desired, questioned, or reported), holder, and time. Conversations are first-class: speakers become entities, so “I live in Berlin” becomes a lives in fact attributed to the user.
Changing the relations list changes what the model looks for. No labelled examples are required for a new schema. That is the agent-memory pitch: store structured facts in the operator’s ontology without paying for a frontier completion on every turn.
Why a fixed Wikipedia schema was not enough
kniv v6 reached strong Re-DocRED numbers on a fixed set of 96 Wikipedia relations, which Dragonscale says was useless for a support desk, CRM, codebase, or personal memory. Early attempts to transplant a fixed head into a label-reading head recovered neither parity on Re-DocRED nor useful zero-shot FewRel scores. The finding that redirected the project, per the post, was that label variety beat architecture: pretraining on thousands of knowledge-base relations worded several ways moved unseen FewRel far more than head changes did. Stage A therefore pretrains the encoder for relations and entity types; Stage B trains every head on that encoder while gating linguistic scores.
Two teachers survived a bake-off. DeBERTa-v3-large leads linguistic tasks and fixed-schema relations; UltraBERT-380M leads open-schema and longer-window work. Those become xlarge-d and xlarge-u. Smaller sizes are distilled students that learn from a mixture of both teachers’ rankings, not just hard labels—critical for negation, which collapsed when students saw only sparse hard negatives.
Document windows, calibration, and incomplete labels
Most open extractors score one sentence or one entity pair. Dragonscale notes that about half of Re-DocRED gold facts span sentences. kniv reads a whole window—up to a page—as one unit, with coreference and a marker pass that pools evidence across mentions. Facts are not linked across windows; stitching sessions is left to the memory layer above.
Training uses positive-unlabelled learning throughout because teacher LLM labels were precise but incomplete (0.71 precision, 0.31 recall with gold entities in the team’s measurement). Unlabelled pairs are down-weighted rather than treated as hard negatives. calibration.json ships with each model: per-relation thresholds, an offset for unseen relations, entity-span offsets, and coreference link bias. The post says early thresholded zero-shot F1 was zero even when ranking was already correct—one held-out offset fixed the scale.
INT8 uses SmoothQuant after plain INT8 destroyed UltraBERT’s relation scores. On an M2 Max laptop CPU, UltraBERT INT8 is reported at 0.47 seconds per 200 words versus 1.07 seconds in fp32, with relations nearly unchanged.
Against hosted LLM extraction on a memory job
On a matched Re-DocRED comparison with gold entities supplied, Dragonscale reports kniv at 0.733 versus GPT-6 at 0.477. On a LongMemEval-style timing job—60 user messages with the prior turn, a 30-relation / 15-type memory schema—GPT-6’s median was 31.4 seconds with billed tokens, while UltraBERT INT8 on the same laptop CPU took 0.35 seconds with no API tokens. Those bake-off figures are self-reported; linguistic rows for GPT-6 used 300-item samples while kniv used full test sets, which the post flags.
Limits are listed plainly: English only; facts stay per window; near-synonym relations confuse the model; negation and reported speech are the weakest attributes; smaller students emit more low-margin facts and need margin filtering. For agent builders who want structured memory updates without sending every conversation turn to a hosted LLM, kniv v7 is a concrete local alternative with an open schema contract and an honest failure guide in each repository.
- #Dragonscale
- #Agent Memory
- #Information Extraction
- #ONNX
- #Open Source
Author
Raj M
Contributor
AI Systems Architect is a seasoned technology leader with over 15 years of experience in the IT industry working with Fortune 500 companies. With a solid foundation in multi-agent systems, open-source LLM infrastructure, and enterprise deployment, he excels at building scalable production-grade AI platforms.