CoolFace
Datasetpublic

junlin-modal/k3-toolcall-turn1

k3-toolcall-turn1 191,072 deduplicated tool-calling contexts, normalized to the OpenAI messages + tools schema. Each row is a conversation prefix that stops right before the first assistant turn — a context ready for a model to generate at, not a finished conversation. Built to generate on-policy targets for speculative-decoding draft training: a target model generates at each context, and the draft learns to copy that model's next tokens. The dataset ships contexts, not labels.… See the full description on the dataset page: https://huggingface.co/datasets/junlin-modal/k3-toolcall-turn1.

sourceHugging Facecc-by-4.0updated 2mo agoView on Hugging Face
0likes23downloads
Dataset Card

k3-toolcall-turn1

191,072 deduplicated tool-calling contexts, normalized to the OpenAI messages + tools schema. Each row is a conversation prefix that stops right before the first assistant turn — a context ready for a model to generate at, not a finished conversation.

Built to generate on-policy targets for speculative-decoding draft training: a target model generates at each context, and the draft learns to copy that model's next tokens. The dataset ships contexts, not labels.

Composition

sourcerowsupstream licensewhat it adds
Agent-Ark/Toucan-1.5M (Kimi-K2)80,000Apache-2.0real MCP-server tools (2,000+), agentic queries
minpeter/xlam-function-calling-60k-parsed59,616CC-BY-4.0single-turn calls, many parallel-call examples
glaiveai/glaive-function-calling-v239,664Apache-2.0volume, "tools present but answer directly" cases
Team-ACE/ToolACE10,692Apache-2.0high API diversity (16k+ tools)
NousResearch/hermes-function-calling-v11,100Apache-2.0multi-turn reasoning + tool use
total191,07224,818 distinct tools

License is CC-BY-4.0 (the most restrictive among the sources; xlam is CC-BY-4.0, the rest Apache-2.0). Commercial use is allowed with attribution.

Format

One JSON object per line:

json
{
  "id": "toucan/12#t1",
  "source": "toucan",
  "tools": [ { "type": "function", "function": { "name": "...", "parameters": { ... } } } ],
  "messages": [ { "role": "user", "content": "..." } ],
  "n_tools": 6,
  "has_system": false,
  "reference_output": { "content": "", "tool_calls": [ { "name": "...", "arguments": "{...}" } ] }
}
  • messages — the context. Has at least one user message and stops before the first assistant turn.
  • tools — OpenAI-format declarations. Every tool called later in the source conversation is declared here.
  • reference_output — the source dataset's original first assistant turn, kept for reference only. Another model wrote it; it is not a training label.

Construction & validation

Source conversations were parsed out of four different in-band formats (glaive's ASSISTANT: <functioncall> text, Hermes' <tool_call> XML, ToolACE's [Fn(arg=...)] strings, Toucan's legacy function_call field with a Kimi-K2 template system message) into a single messages + tools schema. A conversation was dropped, never repaired, when a tool result could not be matched to a preceding call, a call named an undeclared tool, or a payload failed to parse. Sampled rows all render under apply_chat_template(messages, tools=tools, add_generation_prompt=True) on a production tokenizer.

Not included: Salesforce/APIGen-MT-5k (CC-BY-NC-4.0, non-commercial) and Salesforce/xlam-function-calling-60k (gated; the ungated minpeter re-parse is used instead).

Attribution

Derived from the datasets listed above; please cite their original authors (Agent-Ark, Salesforce/minpeter, GlaiveAI, Team-ACE, NousResearch).