hudsongouge/microagent-sft-v1
microagent-sft-v1 6,884 procedurally generated SFT examples for training small reasoning agents. Built for models that need to think before answering, use tools honestly, and refuse when evidence is missing—without memorizing frontier-scale code dumps. What’s in the mix Track Examples What it teaches Reliability & agentic basics 3,964 Anti-hallucination, grounded retrieval/citation, tool epistemics, instruction lock, sycophancy resistance, entity… See the full description on the dataset page: https://huggingface.co/datasets/hudsongouge/microagent-sft-v1.
microagent-sft-v1
6,884 procedurally generated SFT examples for training small reasoning agents. Built for models that need to think before answering, use tools honestly, and refuse when evidence is missing—without memorizing frontier-scale code dumps.
What’s in the mix
Quality highlights (automated audit, seed 99):
- Zero exact
chatmlduplicates - No single think-opener phrase above 2% of the dataset
- 1,541 tool workflows with mixed surface formats (json, xml, markdown, shell, line, tags, yamlish—not XML-only)
- 6,404 samples with
<think>reasoning blocks - Math track includes 178 word-problem rows (inventory, queue, budget, distance, etc.)
Generation seed: 99 · Difficulty: medium · Builder: generators/build_tiny_model_bundle.py · Run: run-20260616-123408
Message format
Each row has a messages column: an ordered list of {role, content} dicts compatible with OpenAI-style trainers.
from datasets import load_dataset
ds = load_dataset("hudsongouge/microagent-sft-v1", split="train")
row = ds[0]
print(row["messages"])Roles: system, user, assistant, tool
Reasoning: Thinking stays inside assistant content as <think>…</think>. A separate thinking column concatenates extracted think text for analysis or masking.
Tools: Tool calls use varied surface syntax per sample (JSON objects, XML tags, markdown fences, shell-style flags, line records, etc.). System prompts declare the contract for that row. Multi-turn clusters preserve full conversation history.
ChatML: Original chatml string is included for trainers that consume ChatML directly (<|im_start|>role\n…<|im_end|>).
Columns
Loading
from datasets import load_dataset
ds = load_dataset("hudsongouge/microagent-sft-v1", split="train")
tools = ds.filter(lambda x: x["has_tools"])
math = ds.filter(lambda x: x["bundle"] == "math")
word_math = math.filter(lambda x: x.get("domain") == "math_word")import pandas as pd
df = pd.read_parquet("hf://datasets/hudsongouge/microagent-sft-v1/train.parquet")Intended use
Supervised fine-tuning of small models for:
- Epistemic humility (abstain / qualify instead of confabulate)
- Faithful chain-of-thought aligned with final answers
- Tool-calling discipline (call before claiming; respect empty results)
- Structured reasoning over rules, state, and documents
Not intended as a benchmark or for training models to quote scripture from memory without sources.
Citation
If you use this dataset, please cite the Procedural-Data project and note version microagent-sft-v1.
