Only One Task

community
Activity Feed

AI & ML interests

None defined yet.

Recent Activity

drodin  updated a model 1 day ago
oot-ai/oot-oneliner-GGUF
drodin  updated a model 1 day ago
oot-ai/oot-oneliner
drodin  updated a model 1 day ago
oot-ai/oot-oneliner-lora
View all activity

Organization Card

OOT — Only One Task

Small models that each do exactly one job, and do it predictably.

Most AI features inside a product are one narrow job repeated millions of times: name a conversation, say what a command does, flag a risky action. A frontier model is overkill for that, and it drifts: it adds quotes, explanations, markdown, or answers the wrong question. OOT models are trained to do one task under a strict output contract, so the result can be used directly with no parsing and no prompt tricks.

Where OOT fits best

1. Conversation titles at scale

Chat apps create millions of new sessions every day, and most of them get their title from a call to the same large model that answers the user. That spends frontier-model tokens, latency and GPU time on a 5-word string. A title is also a small, closed task: read the first message and name the topic, in the user's language.

oot-oneliner does this on a 1.7B base, on CPU if needed, and keeps to the format. On our 100-case arena, 100% of its outputs follow the title/intent contract, against 78% for Claude Haiku 5.5 and 55% for Claude Sonnet 5.5 prompted with the same contract. Your app gets a clean title it can show as-is, and the big model's capacity goes to the answer.

2. Intents for every agent action, without asking the agent

Agent harnesses often make the main model write a human-readable description next to each tool call ("Run the tests", "Check git status") so the user can follow along or approve the step. The large model pays for those tokens on every step, and the description is written by the same model that chose the action. It says what the agent meant to do, not always what the command does.

With OOT, the harness drops that field and sends the action itself (the shell command, SQL, diff or JSON tool call) to oot-oneliner, which returns the intent:

Action Intent
rm -rf build/ Deletes the build directory and its contents
DELETE FROM sessions Deletes every row from the sessions table
git reset --hard HEAD~3 && git push --force origin main Hard-resets to three commits back and force-pushes main
  • Cheaper agent turns: the main model emits only the action.
  • Independent of the agent: the intent is derived from the action itself, so it can be used to log steps, review them, or gate approvals.
  • Destructive effects stated: in our own agent traces, only 41% of agent-written descriptions of destructive commands mentioned the destruction. oot-oneliner states the destructive effect in 99.0% of a 399-case held-out destructive slice.

How it works

  • One shared base, one adapter per task. Every OOT model is a LoRA adapter on the same unmodified base model (LoRA rank 32 everywhere). One server can host all OOT tasks at once, and the client picks the task with the model field.
  • OpenAI-compatible. If your app already calls chat.completions, switching to an OOT model means changing base_url and model.
  • Output contract first. Each task has a written output contract. Training data is distilled from a strong teacher, filtered against the contract, and the models are evaluated on held-out sets that are never used for training.
  • Built for agents and chat apps. Inputs are the messy real thing: user messages, shell commands, SQL, diffs and JSON tool calls, often wrapped in the client's own prompts.

Models

Model Task Base Status
oot-oneliner One-line summary of any input: a title for chat, an intent for commands, SQL, file edits and tool calls LFM3-1.7B-Base ✅ v0 (public)

Each model ships in three formats:

  • -lora: the adapter, the canonical artifact for shared-base serving.
  • merged bf16 weights: standalone use with 🤗 Transformers.
  • -GGUF (Q8_0, Q4_K_M): local and CPU serving with llama.cpp.

oot-oneliner at a glance

The input type decides the output style. There is no mode switch.

Input Output
My Docker build keeps reinstalling all npm packages even when package.json didn't change Docker reinstalling npm packages unnecessarily
Comment configurer un reverse proxy nginx pour plusieurs sous-domaines ? Reverse proxy nginx pour plusieurs sous-domaines
git reset --hard HEAD~3 && git push --force origin main Hard-resets to three commits back and force-pushes main
SELECT customer_id, COUNT(*) FROM orders WHERE year = 2025 GROUP BY 1 Counts orders per customer for 2025
{"name": "send_invoice", "arguments": {"customer_id": "c_812", "amount": 1200}} Sends invoice for 1200 to customer c_812

Real outputs of oot-oneliner v0 (Q8_0 GGUF, temperature 0).

Output is one line of plain text with no quotes, prefix or trailing period. Destructive actions (rm, force push, DROP, deletes, payments…) are trained to state the destructive effect explicitly.

On held-out test sets (Q8_0 GGUF), oot-oneliner scores:

  • 99.5% mode accuracy: the title-vs-intent style matches the input type.
  • 98.5% format compliance with the output contract.
  • 99.0% of destructive actions state their destructive effect.

Licensing

OOT adapters inherit their base model's license. oot-oneliner is derived from LiquidAI/LFM3-1.7B-Base and is released under the LFM Open License v1.0, which allows free commercial use only below Liquid AI's revenue threshold. See each model card for details.

Roadmap

New tasks are new adapters on the same base. Candidates include tag extraction, risk classification for agent actions, and structured extraction. Each one ships only after it meets its contract on held-out data.

OOT — Only One Task. One model, one job, one predictable line.

datasets 0

None public yet