Agent skill · data analytics · github
arize-prompt-optimization
Optimizes, improves, and debugs LLM prompts using production trace data, evaluations, and annotations. Extracts prompts from spans, gathers performance signal, and runs a data-driven optimization loop using the ax CLI. Use when the user mentions optimize prompt, improve prompt, make AI respond better, improve output quality, prompt engineering, prompt tuning, or system prompt improvement.
Why this skill is useful
Adds domain-specific knowledge on optimizing LLM prompts using production trace data and the ax CLI commands.
What it needs
Requires ax installed locally. About 11k tokens when loaded. Last updated 2026-08-07. 37,534 stars on the source repository.
What this skill does
Arize Prompt Optimization Skill SPACE — All --space flags and the ARIZESPACE env var accept a space name (e.g., my-workspace) or a base64 space ID (e.g., U3BhY2U6...). Find yours with ax spaces list. Concepts Where Prompts Live in Trace Data LLM applications emit spans following OpenInference semantic conventions. Prompts are stored in different span attributes depending on the span kind and instrumentation: Column What it contains When to use -------- ----------------- ------------- attributes.llm.inputmessages Structured chat messages (system, user, assistant, tool) in role-based format Primary source for chat-based LLM prompts attributes.llm.inputmessages.roles Array of roles: system, user, assistant, tool Extract individual message roles attributes.llm.inputmessages.contents Array of message content strings Extract message text attributes.input.value Serialized prompt or user question (generic, all span kinds) Fallback when structured messages are not available attributes.llm.prompttemplate.template Template with {variable} placeholders (e.g., "Answer {question} using {context}") When the app uses prompt templates attributes.llm.prompttemplate.variables Template variable values (JSON object) See what values were substituted into the template attributes.output.value Model response text See what the LLM produced attributes.llm.outputmessages Structured model output (including tool calls) Inspect tool-calling responses Finding Prompts by Span Kind LLM span (attributes.openinference.span.kind = 'LLM'): Check attributes.llm.inputmessages for structured chat messages, OR attributes.input.value for a serialized prompt. Check attributes.llm.prompttemplate.template for the template. Chain/Agent span: attributes.input.value contains the user's question. The actual LLM prompt lives on child LLM spans -- navigate down the trace tree. Tool span: attributes.input.value has tool input, attributes.output.value has tool result. Not typically where prompts live. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills github/arize-prompt-optimization