·
Last changedVersion:
This version passed the hardening gate. Hardening applied 13 targeted changes and preserved all other text. Classified findings before hardening: 8. Classified findings closed: 5. Classified findings remaining: 3. Unclassified scanner findings remaining: 0. Review findings closed: 12. Review findings remaining: 9.
2
6
1
2
Expand | File | Group | Subtype | Severity | Status |
|---|---|---|---|---|---|
references/ax-profiles.md | Excessive Agency & Rogue Autonomy | — | Medium | Open | |
SKILL.md | Excessive Agency & Rogue Autonomy | — | Medium | Closed | |
SKILL.md | Malicious Code & Command Execution | — | Low | Closed | |
references/ax-setup.md | Supply Chain & Install-Time Trust | Install-time download and execute | Low | Open | |
SKILL.md | Supply Chain & Install-Time Trust | Install-time download and execute | Low | Closed | |
references/ax-profiles.md | Supply Chain & Install-Time Trust | Install-time download and execute | Low | Closed | |
references/ax-setup.md | Malicious Code & Command Execution | — | Low | Open | |
references/ax-profiles.md | Malicious Code & Command Execution | — | Low | Closed |
8 findings
correctness, relevance), with optional label, score, and explanationThe typical flow: export a dataset → process each example → collect outputs and evaluations → create an experiment with the runs.
Proceed directly with the task — run the ax command you need.
If an ax command fails, troubleshoot based on the error:
command not found or version error → see references/ax-setup.md401 Unauthorized / missing API key → run ax profiles show to inspect the current profile. If the profile is missing or the API key is wrong, follow references/ax-profiles.md to create/update it. If the user doesn't have their key, direct them to https://app.arize.com/admin > API Keysax spaces list to pick by name, or ask the userax projects list -o json --limit 100 and present as selectable options.env files or search the filesystem for credentials. Use ax profiles for Arize credentials and ax ai-integrations for LLM provider keys. If credentials are not available through these channels, ask the user.ax experiments listBrowse experiments, optionally filtered by dataset. Output goes to stdout.
| Flag | Type | Default | Description |
|---|---|---|---|
| string | none | Filter by dataset |
| int | 15 | Max results (1-100) |
| string | none | Pagination cursor from previous response |
| string | table | Output format: table, json, csv, parquet, or file path |
| string | default | Configuration profile |
ax experiments getQuick metadata lookup -- returns experiment name, linked dataset/version, and timestamps.
| Flag | Type | Default | Description |
|---|---|---|---|
| string | required | Experiment name or ID (positional) |
| string | none | Dataset name or ID (required if using experiment name instead of ID) |
| string | none | Space name or ID (required if using dataset name instead of ID) |
| string | table | Output format |
| string | default | Configuration profile |
| Field | Type | Description |
|---|---|---|
| string | Experiment ID |
| string | Experiment name |
| string | Linked dataset ID |
| string | Specific dataset version used |
| string | Project where experiment traces are stored |
| datetime | When the experiment was created |
| datetime | Last modification time |
ax experiments exportDownload all runs to a file. By default uses the REST API; pass --all to use Arrow Flight for bulk transfer.
| Flag | Type | Default | Description |
|---|---|---|---|
| string | required | Experiment name or ID (positional) |
| string | none | Dataset name or ID (required if using experiment name instead of ID) |
| string | none | Space name or ID (required if using dataset name instead of ID) |
| bool | false | Use Arrow Flight for bulk export (see below) |
| string |
| Output directory |
| bool | false | Print JSON to stdout instead of file |
| string | default | Configuration profile |
--all)--all): Required for experiments with more than 500 runs. Uses gRPC+TLS on a separate host/port (flight.arize.com:443) which some corporate networks may block.If a REST export returns exactly 500 runs, the result is likely truncated.
Output is a JSON array of run objects:
ax experiments createCreate a new experiment with runs from a data file.
| Flag | Type | Required | Description |
|---|---|---|---|
| string | yes | Experiment name |
| string | yes | Dataset to run the experiment against |
| string | no | Space name or ID (required if using dataset name instead of ID) |
| path | yes | Data file with runs: CSV, JSON, JSONL, or Parquet |
| string | no | Output format |
| string | no | Configuration profile |
Use --file - to pipe data directly — no temp file needed:
| Column | Type | Required | Description |
|---|---|---|---|
| string | yes | ID of the dataset example this run corresponds to |
| string | yes | The model/system output for this example |
Additional columns are passed through as additionalProperties on the run.
ax experiments delete| Flag | Type | Default | Description |
|---|---|---|---|
| string | required | Experiment name or ID (positional) |
| string | none | Dataset name or ID (required if using experiment name instead of ID) |
| string | none | Space name or ID (required if using dataset name instead of ID) |
| string | default | Configuration profile |
Each run corresponds to one dataset example:
| Field | Type | Required | Description |
|---|---|---|---|
| string | no | Categorical classification (e.g., |
| number | no | Numeric quality score (e.g., 0.0 - 1.0) |
| string | no | Freeform reasoning for the evaluation |
At least one of label, score, or explanation should be present per evaluation.
Find or create a dataset:
Export the dataset examples:
Call the real model API for each example and collect outputs. Use ax datasets export --stdout to pipe examples directly into an inference script:
Write infer.py to read examples from stdin, call the target model, and write runs JSON to stdout. The script below is a template — first inspect the exported dataset JSON to find the correct input field name, then uncomment the provider block the user wants:
Before running: ensure the API key is set as an environment variable in your shell. If you cannot access the API, stop and tell the user what is needed.
Verify the runs file:
Each run must have example_id and output. Optional fields: evaluations, metadata.
Create the experiment:
Verify: ax experiments get "gpt-4o-baseline" --dataset DATASET_NAME --space SPACE
example_id:
Statistical significance note: Score comparisons are most reliable with ≥ 30 examples per evaluator. With fewer examples, treat the delta as directional only — a 5% difference on n=10 may be noise. Report sample size alongside scores: jq 'length' a.json.
ax experiments list --dataset DATASET_NAME --space SPACE -- find experimentsax experiments export EXPERIMENT_NAME --dataset DATASET_NAME --space SPACE -- download to filejq '.[] | {example_id, score: .evaluations.correctness.score}' experiment_*/runs.jsonarize-dataset firstarize-prompt-optimizationarize-tracearize-link| Problem | Solution |
|---|---|
| See references/ax-setup.md |
| API key is wrong, expired, or doesn't have access to this space. Fix the profile using references/ax-profiles.md. |
| No profile is configured. See references/ax-profiles.md to create one. |
| Verify experiment name with |
| Each run must have |
| Ensure |
| Export returned empty -- verify experiment has runs via |
| The linked dataset may have been deleted; check with |
See references/ax-profiles.md § Save Credentials for Future Use.
Get started with chainctlchainctl skill install public/github/arize-experiment:latest
Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.
skills.cgr.dev/public/github.com/github/skills/arize-experiment:latest
MIT
HARDENING.md
LICENSE
SKILL.md
references/ax-profiles.md
references/ax-setup.md