Datasets logo

Datasets

OrganizationPopular
Arize-ai
datasets

Understand what a Phoenix dataset is and reason well about its examples, outputs, splits, and how it feeds evaluators and experiments. Load this whenever a dataset is in view or the user asks what a dataset is, how splits work, what an output "means", or how datasets relate to experiments and evals. This skill governs the judgment; any tool descriptions govern the mechanics.

Overview

PublisherArize-ai
Repositoryphoenix
Skill namedatasets
Stars
11.5K
Forks
1.1K
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by Arize-ai on GitHub. Read the source before you install it.

Installation

Install the Datasets AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Arize-ai/phoenix.git /tmp/phoenix
mkdir -p .claude/skills
cp -r /tmp/phoenix/src/phoenix/server/agents/prompts/skills/datasets .claude/skills/datasets
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Datasets in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Datasets on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Datasets is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Datasets

A dataset is a table of examples. Each example (row) has an input, an optional output, and optional metadata. A dataset is the unit you evaluate a prompt or application against: you run something over every example and compare what comes out against what the example says.

Rows in one dataset should look roughly alike — the same shape of input, the same shape of output, the same metadata keys. The dataset has no enforced schema, so this consistency is a convention you maintain, not something the system guarantees. When you add or edit rows, match the shape of the rows already there; a dataset where row 3 has a question field and row 4 has a prompt field is harder to evaluate and harder to reason about.

What an output actually means

The most common mistake is to treat a saved output as "the correct answer." It usually is not.

An output on a row is a reference, not a verdict. Treat it as "an answer that was recorded for this input," and ask where it came from before trusting it:

  • A dataset is golden only when its outputs are genuinely ideal — hand-written or hand-verified to be the answer you want. Here the output really is the target.
  • Far more often, outputs are baselines: captured from whatever produced them when the dataset was built (a model run, a production trace, an import). A baseline output records what the system did, which may be mediocre, outdated, or wrong. It is a point of comparison, not a goal.

So: never assume an output is right because it is present. If the user implies the dataset is golden, you can lean on the outputs as targets; if you don't know its provenance, say so and treat outputs as references. A row with no output at all is normal and fine — it just means "we have an input to run, but no recorded answer to compare against."

How datasets feed evaluators and experiments

  • Evaluators are attached to a dataset to judge outputs along a dimension (correctness, relevance, format, and so on).
  • Running a prompt or application over every example is an experiment. Each example produces an experiment output, and the evaluators score those outputs — often against the example's reference output. This is why the reference/golden distinction matters: an experiment compared against weak baselines tells you "did this change behavior," while an experiment compared against golden outputs tells you "is this correct."
  • Every example-level change creates a new dataset version, recording who made it. Experiments are run against a specific version, so the dataset's history is part of the evidence.

Matching a dataset to the prompt you run over it

When you run a prompt over a dataset in the playground, each prompt template variable {{x}} is filled from the matching example field input.xbound by name. So the dataset's input keys have to cover the prompt's template variables, or the run produces nothing useful.

Reconcile the two before you run (or before you build a dataset for a run):

  • List the prompt's template variables and the dataset's input keys and make them line up. A {{customer_message}} variable needs an input.customer_message field — not input.message or input.question. A field that matches no variable is unused; a variable with no matching field renders empty.
  • Cover every variable the prompt uses. A prompt with five variables run over a dataset that only carries one field fills one variable and blanks the other four.
  • A playground run that finishes with empty output and no error almost always means this binding did not match — treat that as a misconfiguration to fix (align the field names, or map them), not as success.

If you are creating a dataset specifically to exercise a prompt, read the prompt's variables first and name the example input keys to match them from the start.

Splits

A split is a named slice of the examples. The same mechanism serves three distinct purposes — know which one the user means before acting:

  1. Honest measurement (train / validation / test). The classic ML division. A held-out test split that you never tune against gives a trustworthy estimate of real performance; tuning until the test numbers look good (overfitting) destroys that. If the user is optimizing a prompt or a model, respect the test split as blind.
  2. Facets (category / difficulty / type). Splits like single-hop vs. multi-hop, easy vs. hard, or by topic let you break an experiment down and see where a task is weak instead of reading one aggregate number. Use these when the user asks "where is it failing," not just "how well does it do."
  3. Quick iteration (small chunks). A small split is useful for a fast pass in the playground before committing to a full regression run over the whole dataset. Cheaper and faster to learn from while iterating.

A single example can belong to more than one split, and a split is just a label on rows — moving a row between splits doesn't change the row's input or output.

How to work with datasets well

  • Look before you change. Read existing rows before adding — to match their shape — and before editing or deleting — to act on the real current content, not an assumption. This is the same habit the prompt tools follow.
  • Be honest about outputs. When you add a row, only present its output as the right answer if it genuinely is; otherwise call it a baseline/reference.
  • Keep rows uniform. New and edited rows should match the field names and structure of the rest of the dataset.
  • Respect splits. Don't blur a held-out test split into training material, and surface per-split breakdowns when the user wants to know where a task is weak.
  • Treat changes as versioned and attributable. Edits and deletes are real mutations to a shared artifact others may be using, and each creates a new dataset version. Preview and confirm before applying.

Frequently asked questions

What does the Datasets AI skill do?

Understand what a Phoenix dataset is and reason well about its examples, outputs, splits, and how it feeds evaluators and experiments. Load this whenever a dataset is in view or the user asks what a dataset is, how splits work, what an output "means", or how datasets relate to experiments and evals. This skill governs the judgment; any tool descriptions govern the mechanics.

Why use Datasets on TypingMind?

Because you install it once and use it with any model. Datasets is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Datasets in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Arize-ai/phoenix/tree/main/src/phoenix/server/agents/prompts/skills/datasets. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Datasets?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Datasets?

As many as you like. As long as a model supports skills, you can use Datasets with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Datasets AI skill free?

It is published on GitHub by Arize-ai. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇