LFM2.5-350M CURSOR Agent — English meeting-notes editor
A fine-tuned Liquid LFM2.5-350M (linear-attention, 350M params, ~215 MB at Q4_K_M) that
runs an agentic meeting-summarization protocol (CURSOR): it streams a meeting
transcript chunk-by-chunk and emits edit operations that curate one evolving set of
structured, timestamp-anchored meeting notes — instead of passively summarizing a window.
This is the English model of a per-language pair; the Chinese-Traditional model is at
Luigi/lfm2.5-350m-cursor-zh.
The task: CURSOR, not map-reduce
Classic map-reduce summarization (independent per-window digests → merge → shrink) produces
locally-correct but globally-disconnected notes: it cannot say how a decision evolved.
CURSOR streams the transcript and gives the model exactly one job per step: look at the
current notes (STATE) and the next transcript block (CHUNK), and revise:
per step i:
input: SYS + STATE (current notes) + CHUNK_i (transcript block)
output: edit ops — ADD / UPD / DEL / NOP / TITLE
harness: validates, applies, caps, advances
end: optional VERIFY/ANCHOR sweep (judge-backed faithfulness backstop) → render
Because STATE is the only memory (no conversation history crosses steps), temporal
integration becomes revising a visible earlier bullet (UPD) — the property that makes the
protocol learnable at sub-1B scale. The deterministic harness owns the final word.
Output format (NOTES v2)
TITLE: Office move decision
SUMMARY:
- Move to Building B agreed after discussion [5:10]
DECISIONS:
- Relocate the office to Building B [5:10]
ACTIONS:
- S2: circulate the move checklist (due: Friday) [6:02]
OPEN:
- Parking allocation for Building B [7:40]
TOPICS:
- Office move [0:00]
Every bullet ends with the [m:ss] of the transcript line that supports it.
Training
stage
data
purpose
SFT
teacher traces (Gemma-4-31B replaying the real harness, judge-filtered), screen-structured synthetic meetings (revision chains, deadlines, trap topics), real transcripts (QMSum, MeetingBank) at 2048 and 128-token chunks
learn the protocol: op grammar, state-gated UPD/DEL, anchor copying, content selection
phase-2
real-transcript traces upsampled ×3 (the evaluation distribution), low LR (2e-5), 2 epochs, continuing from the G1-passing checkpoint
fix fabrication on real meetings (the synthetic/real distribution gap)
Full fine-tune, bf16, completion-only loss, 4096 context. The per-language split exists
because a 350M model holds one language's full protocol at a time (measured seesaw); the
composite (en + zh, ~430 MB total) stays inside the on-device envelope.
Evaluation (T1 tier, n=20, paired vs a 9B map-reduce baseline)
INVERT (notes stating the opposite of the transcript)
0 / 20 (baseline: 3)
FAITH-anchor
+0.40
SYNTH (meeting-level insight)
+0.50 (at the +0.5 gate)
prefill vs baseline
0.51x
Judges: local gpt-oss-20b (FAITH/INVERT, 3× majority), qwen3.6-35B (COVER/SYNTH) — judge
family ∉ {student, teacher}. The VERIFY/ANCHOR sweep (harness-side, judge-backed) is part
of the deployed pipeline and is what turns 12/20 raw inversions into 0/20.
Quick start (with the project harness)
The model is a component of the CURSOR pipeline in
agentic-summarizer; it speaks the harness's
op grammar. Minimal use:
python
1# via the project's eval/screen.py (text grammar, greedy)2python eval/screen.py --base-url http://127.0.0.1:8080--lang en
The GGUF (Q4_K_M) and the HF safetensors are both in this repo.
Intended use
Meeting/transcript → structured, timestamp-anchored notes (decisions, actions, open
questions, topics)
On-device: 350M params, ~215 MB Q4_K_M, 4k context — fits a 785 MB envelope with room
for a bigger sweep budget
Limitations
English only (see the zh model for Chinese-Traditional); each language model holds
one language's protocol
4k context per step: ~2048-token chunks with a ≤600-token state
Trained with synthesized clocks (150 wpm): anchors are internally consistent but the
wall-clock values are not real; FAITH-anchor on real audio is unmeasured
zh training data is synthetic-only (VCSum unobtainable); contested zh is unmeasured
The base model's license is the LFM Open License v1.0 — redistribution requires the
license text and attribution (included in this repo)
This model is a derivative of LFM2.5-350M under the LFM Open License
v1.0 (included in this
repo). Training data is synthetic and public-corpus derived (QMSum, MeetingBank); no
personal data. Distributed under the same license with attribution to Liquid AI, Inc.