Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 50/100

arize-evaluator

ArizeプラットフォームにおけるLLM-as-judgeの評価ワークフローを管理します。評価器の作成・更新、スパンや実験への評価実行、タスク管理、トリガー実行、カラムマッピング、継続的モニタリングなどに対応します。「evaluatorを作成したい」「ハルシネーション・忠実性・正確性・関連性を評価したい」「スパンや実験にスコアを付けたい」「継続的モニタリングを設定したい」といった場面でご利用ください。

description の原文を見る

Handles LLM-as-judge evaluation workflows on Arize including creating/updating evaluators, running evaluations on spans or experiments, managing tasks, trigger-run operations, column mapping, and continuous monitoring. Use when the user mentions create evaluator, LLM judge, hallucination, faithfulness, correctness, relevance, run eval, score spans, score experiment, trigger-run, column mapping, continuous monitoring, or improve evaluator prompt.

SKILL.md 本文

Arize Evaluator Skill

SPACE — すべての --space フラグと ARIZE_SPACE 環境変数は、スペースの名前(例:my-workspace)またはBase64エンコードされたスペースID(例:U3BhY2U6...)を受け入れます。ax spaces list で確認できます。

このスキルは、ArizeでLLM-as-judge evaluatorsを設計、作成、実行することを扱います。evaluatorはjudgeを定義し、taskはそれを実データに対して実行する方法です。


前提条件

必要な ax コマンドを直接実行してください。バージョン確認、環境変数、またはプロフィールを事前にチェックしないでください。

ax コマンドが失敗した場合、エラーに基づいてトラブルシューティングしてください:

  • command not found またはバージョンエラー → references/ax-setup.md を参照
  • 401 Unauthorized / APIキーの欠落 → ax profiles show を実行して現在のプロフィールを確認してください。プロフィールが見つからないか APIキーが間違っている場合は、references/ax-profiles.md に従って作成/更新してください。ユーザーがキーを持っていない場合は https://app.arize.com/admin > API Keys に誘導してください
  • スペース不明 → ax spaces list を実行して名前で選択するか、ユーザーに確認してください
  • LLMプロバイダー呼び出し失敗(OPENAI_API_KEY / ANTHROPIC_API_KEY 欠落)→ ax ai-integrations list --space SPACE を実行してプラットフォーム管理の認証情報を確認してください。存在しない場合は、ユーザーにキーの提供またはarise-ai-provider-integrationスキルを使用した統合作成を依頼してください
  • セキュリティ: .env ファイルを読み取ったり、ファイルシステムから認証情報を検索したりしないでください。Arizeの認証情報には ax profiles を、LLMプロバイダーキーには ax ai-integrations を使用してください。認証情報がこれらのチャネルを通じて利用できない場合は、ユーザーに依頼してください。
  • 重大 — evaluation結果を捏造しないでください: evaluationタスクが失敗した場合、キャンセルされた場合、またはスコアを生成しなかった場合、失敗を明確に報告し、何が間違っていたかを説明してください。「手動evaluation」を実行したり、品質スコアを捏造したり、パーセンテージを推定したり、Arize evaluationシステムから出た如何なるエージェント生成分析も提示してください。代わりに、(1) 特定された問題を修正して再試行する、(2) Arize UIから実行してみる、(3) ax ai-integrations list で統合認証情報を確認する、(4) https://arize.com/support でサポートに連絡する、のいずれかを提案してください

概念

Evaluatorとは何か?

evaluatorはLLM-as-judge定義です。以下を含みます:

フィールド説明
Templatejudgeプロンプト。{variable} プレースホルダー(例:{input}{output}{context})を使用します。これはタスクのカラムマッピング経由で実行時に埋められます。
Classification choices許可された出力ラベルのセット(例:factual / hallucinated)。バイナリがデフォルトで最も一般的です。各選択肢は、オプションで数値スコアを含むことができます。
AI Integrationevaluatorがjudgeモデルを呼び出すために使用する保存されたLLMプロバイダー認証情報(OpenAI、Anthropic、Bedrockなど)。
Model特定のjudgeモデル(例:gpt-4oclaude-sonnet-4-5)。
Invocation paramsモデル設定の任意JSON(例:{"temperature": 0})。再現性のため、低温度が推奨されます。
Optimization directionスコアが高いほど良いか(maximize)、悪いか(minimize)。UIでのトレンド描画方法を設定します。
Data granularityevaluatorがspantrace、またはsessionレベルで実行されるかどうか。ほとんどのevaluatorはスパンレベルで実行されます。

Evaluatorはバージョン管理されます — プロンプトまたはモデルの変更があるたびに、新しい不変バージョンが作成されます。最新バージョンはアクティブです。

Taskとは何か?

taskは1つ以上のevaluatorを実データに対して実行する方法です。タスクはプロジェクト(ライブトレース/スパン)またはデータセット(experiment実行)に添付されます。タスクには以下が含まれます:

フィールド説明
Evaluators実行するevaluatorのリスト。1つのタスクで複数を実行できます。
Column mappings各evaluatorのテンプレート変数を、スパンまたはexperiment実行の実際のフィールドパスに対応付けます(例:"input" → "attributes.input.value")。これにより、evaluatorを複数のプロジェクトとexperiment間でポータブルにします。
Query filterSQLスタイルの式で、評価するスパン/実行を選択します(例:"span_kind = 'LLM'")。オプションですが、精度のため重要です。
Continuousプロジェクトタスクの場合:新しいスパンが到着したときに自動的にスコアするかどうか。
Sampling rate連続プロジェクトタスクの場合:評価する新しいスパンの割合(0~1)。

データGranularity

--data-granularity フラグは、evaluatorがスコアするデータユニットを制御します。デフォルトは span であり、プロジェクトタスク(データセット/experimentタスクではなく)にのみ適用されます。

レベル評価対象用途結果カラムプレフィックス
span(デフォルト)個々のスパンQ&Aの正確性、hallucination、関連性eval.{name}.label / .score / .explanation
traceトレース内のすべてのスパン、context.trace_id でグループ化エージェントの軌跡、タスク正確性 — 完全な呼び出しチェーンが必要なものtrace_eval.{name}.label / .score / .explanation
sessionセッション内のすべてのトレース、attributes.session.id でグループ化し、開始時刻で順序付けマルチターン一貫性、全体的なトーン、会話品質session_eval.{name}.label / .score / .explanation

traceおよびsession集約のしくみ

trace granularityの場合、同じ context.trace_id を共有するスパンがグループ化されます。evaluatorテンプレートで使用されるカラム値は、judgeモデルに渡す前に、単一文字列にコンマで結合されます(各値は100Kバイトに切り詰められます)。

session granularityの場合、同じトレースレベルのグループ化が最初に発生し、その後トレースが start_time で順序付けされ、attributes.session.id でグループ化されます。セッションレベルの値は合計100Kバイトに制限されます。

{conversation} テンプレート変数

セッション granularityでは、{conversation} は特別なテンプレート変数であり、セッション内のすべてのトレースにわたる {input, output} ターンのJSON配列としてレンダリングされます。これは attributes.input.value / attributes.llm.input_messages(入力側)と attributes.output.value / attributes.llm.output_messages(出力側)から構築されます。

スパンまたはトレース granularityでは、{conversation} は通常のテンプレート変数として扱われ、他のカラムマッピングと同様に解決されます。

マルチevaluatorタスク

タスクは異なるgranularityのevaluatorを含むことができます。実行時、システムは最高の granularity(session > trace > span)をデータ取得に使用し、自動的にevaluatorごとに1つの子実行に分割します。タスクのevaluators JSONの evaluatorごとの query_filter は、さらに含まれるスパンを制限します(例:セッション内のツール呼び出しスパンのみ)。


基本的なCRUD

AI Integrations

AI統合は、evaluatorが使用するLLMプロバイダー認証情報を保存します。完全なCRUD — リスト表示、すべてのプロバイダー(OpenAI、Anthropic、Azure、Bedrock、Vertex、Gemini、NVIDIA NIM、カスタム)の作成、更新、削除 — には、arize-ai-provider-integrationスキルを使用してください。

一般的なケース(OpenAI)の簡潔なリファレンス:

# 既存の統合を最初に確認する
ax ai-integrations list --space SPACE

# 存在しない場合は作成
ax ai-integrations create \
  --name "My OpenAI Integration" \
  --provider openAI \
  --api-key $OPENAI_API_KEY

返された統合IDをコピーしてください — ax evaluators create --ai-integration-id に必要です。

Evaluators

# リスト / 取得
ax evaluators list --space SPACE
ax evaluators get ID                    # 名前またはIDを受け入れます
ax evaluators get NAME --space SPACE   # IDの代わりに名前を使用する場合は必須
ax evaluators list-versions NAME_OR_ID
ax evaluators get-version VERSION_ID

# 作成(evaluatorとその最初のバージョンを作成)
ax evaluators create \
  --name "Answer Correctness" \
  --space SPACE \
  --description "Judges if the model answer is correct" \
  --template-name "correctness" \
  --commit-message "Initial version" \
  --ai-integration-id INT_ID \
  --model-name "gpt-4o" \
  --include-explanations \
  --use-function-calling \
  --classification-choices '{"correct": 1, "incorrect": 0}' \
  --template 'You are an evaluator. Given the user question and the model response, decide if the response correctly answers the question.

User question: {input}

Model response: {output}

Respond with exactly one of these labels: correct, incorrect'

# 新しいバージョンを作成(プロンプトまたはモデルの変更用 — バージョンは不変)
ax evaluators create-version NAME_OR_ID \
  --commit-message "Added context grounding" \
  --template-name "correctness" \
  --ai-integration-id INT_ID \
  --model-name "gpt-4o" \
  --include-explanations \
  --classification-choices '{"correct": 1, "incorrect": 0}' \
  --template 'Updated prompt...

{input} / {output} / {context}'

# メタデータのみを更新(プロンプトではなく、名前、説明)
ax evaluators update NAME_OR_ID \
  --name "New Name" \
  --description "Updated description"

# 削除(永続的 — すべてのバージョンを削除)
ax evaluators delete NAME_OR_ID

create の主要フラグ:

フラグ必須説明
--nameはいEvaluator名(スペース内で一意)
--spaceはい作成するスペースの名前またはID
--template-nameはいEvalカラム名 — 英数字、スペース、ハイフン、アンダースコア
--commit-messageはいこのバージョンの説明
--ai-integration-idはいAI統合ID(上記参照)
--model-nameはいJudgeモデル(例:gpt-4o
--templateはい{variable} プレースホルダーを含むプロンプト(bash では単一引用符)
--classification-choicesはい選択肢ラベルを数値スコアにマッピングするJSON オブジェクト(例:'{"correct": 1, "incorrect": 0}'
--descriptionいいえ人間が読める説明
--include-explanationsいいえラベルとともに推論を含める
--use-function-callingいいえ構造化関数呼び出し出力を優先
--invocation-paramsいいえモデルパラメータのJSON(例:'{"temperature": 0}'
--data-granularityいいえspan(デフォルト)、trace、または session。プロジェクトタスクにのみ関連し、データセット/experimentタスクではありません。「Data Granularity」セクションを参照してください。
--directionいいえ最適化方向:maximize または minimize。UIでのトレンド描画方法を設定します。
--provider-paramsいいえプロバイダー固有パラメータのJSONオブジェクト

Tasks

PROJECT_NAMEDATASET_NAME、および evaluator_id はすべて名前またはBase64 IDを受け入れます。

# リスト / 取得
ax tasks list --space SPACE
ax tasks list --project PROJECT_NAME
ax tasks list --dataset DATASET_NAME --space SPACE
ax tasks get TASK_ID

# 作成(プロジェクト — 連続)
ax tasks create \
  --name "Correctness Monitor" \
  --task-type template_evaluation \
  --project PROJECT_NAME \
  --evaluators '[{"evaluator_id": "EVAL_ID", "column_mappings": {"input": "attributes.input.value", "output": "attributes.output.value"}}]' \
  --is-continuous \
  --sampling-rate 0.1

# 作成(プロジェクト — ワンタイム / backfill)
ax tasks create \
  --name "Correctness Backfill" \
  --task-type template_evaluation \
  --project PROJECT_NAME \
  --evaluators '[{"evaluator_id": "EVAL_ID", "column_mappings": {"input": "attributes.input.value", "output": "attributes.output.value"}}]' \
  --no-continuous

# 作成(experiment / dataset)
ax tasks create \
  --name "Experiment Scoring" \
  --task-type template_evaluation \
  --dataset DATASET_NAME --space SPACE \
  --experiment-ids "EXP_ID_1,EXP_ID_2" \   # `ax experiments list --space SPACE -o json` からのBase64 ID
  --evaluators '[{"evaluator_id": "EVAL_ID", "column_mappings": {"output": "output"}}]' \
  --no-continuous

# 実行をトリガー(プロジェクトタスク — データウィンドウを使用)
ax tasks trigger-run TASK_ID \
  --data-start-time "2026-03-20T00:00:00" \
  --data-end-time "2026-03-21T23:59:59" \
  --wait

# 実行をトリガー(experimentタスク — experiment IDを使用)
ax tasks trigger-run TASK_ID \
  --experiment-ids "EXP_ID_1" \   # `ax experiments list --space SPACE -o json` からのBase64 ID
  --wait

# 監視
ax tasks list-runs TASK_ID
ax tasks get-run RUN_ID
ax tasks wait-for-run RUN_ID --timeout 300
ax tasks cancel-run RUN_ID --force

trigger-run の時間形式: 2026-03-21T09:00:00 — 末尾の Z なし。

追加的なtrigger-run フラグ:

フラグ説明
--max-spans処理されるスパンを制限(デフォルト 10,000)
--override-evaluations既にラベルを持つスパンを再スコア
--wait / -w実行が終了するまでブロック
--timeout--wait で待機する秒数(デフォルト 600)
--poll-interval待機時のポーリング間隔(秒)(デフォルト 5)

実行ステータスガイド:

ステータス意味
completed、0スパンEvalインデックスに1~2時間の遅延があります — 最近取り込まれたスパンはまだインデックスされていない可能性があります。ウィンドウを少なくとも2時間前のデータにシフトさせるか、時間範囲を拡大して、より多くの履歴データをカバーしてください。
cancelled ~1秒統合認証情報が無効です
cancelled ~3分スパンが見つかりましたが、LLM呼び出しが失敗しました — モデル名またはキーを確認してください
completed、N > 0成功 — UI でスコアを確認してください

ワークフローA:プロジェクト用のevaluatorを作成する

ユーザーが「Playground Tracesプロジェクト用のevaluatorを作成する」のような発言をする場合に使用します。

ステップ1:プロジェクト名を確認する

ax spans export はプロジェクト名を直接受け入れます — ID検索は必要ありません。プロジェクト名がわからない場合は、利用可能なプロジェクトをリストしてください:

ax projects list --space SPACE -o json

"name" が一致する(大文字小文字を区別しません)エントリを見つけ、その名前を後続のコマンドで PROJECT として使用してください。後で名前の検証エラーが発生した場合は、プロジェクトの "id"(Base64文字列)を使用することにフォールバックしてください。

ステップ2:評価対象を理解する

ユーザーがevaluatorタイプ(hallucination、correctness、relevance など)を指定した場合 → ステップ3にスキップしてください。

そうでない場合、実データに基づくevaluatorを使用するため、最近のスパンをサンプリングしてください:

ax spans export PROJECT --space SPACE -l 10 --days 30 --stdout

attributes.inputattributes.output、スパン種類、および既存の注釈を検査します。失敗モード(例:幻覚的な事実、トピック外の回答、コンテキストの欠落)を特定し、具体的な1~3つのevaluatorアイデアを提案してください。ユーザーに選ばせてください。

各提案には、evaluator名(太字)、評価対象の1文の説明、括弧内のバイナリラベルペアが含まれている必要があります。各項目を以下のようにフォーマットしてください:

  1. 名前 — 評価対象の説明。(label_a / label_b

例:

  1. Response Correctness — エージェントの応答はユーザーの財務クエリに正確に対応していますか?(correct / incorrect
  2. Hallucination — 応答は取得したコンテキストに根拠のない事実を作成していますか?(factual / hallucinated

ステップ3:AI統合を確認または作成する

ax ai-integrations list --space SPACE -o json

適切な統合が存在する場合、そのIDをメモしてください。存在しない場合は、arize-ai-provider-integrationスキルを使用して作成します。judgeにどのプロバイダー/モデルを使用したいかをユーザーに尋ねてください。

ステップ4:evaluatorを作成する

以下のテンプレート設計ベストプラクティスを使用してください。evaluator名と変数を汎用的に保ちます — タスク(ステップ6)は column_mappings 経由でプロジェクト固有の配線を処理します。

ax evaluators create \
  --name "Hallucination" \
  --space SPACE \
  --template-name "hallucination" \
  --commit-message "Initial version" \
  --ai-integration-id INT_ID \
  --model-name "gpt-4o" \
  --include-explanations \
  --use-function-calling \
  --classification-choices '{"factual": 1, "hallucinated": 0}' \
  --template 'You are an evaluator. Given the user question and the model response, decide if the response is factual or contains unsupported claims.

User question: {input}

Model response: {output}

Respond with exactly one of these labels: hallucinated, factual'

ステップ5:尋ねる — backfill、continuous、またはその両方?

推奨されるアプローチ: 常に小規模なbackfill(~100の過去のスパン)で開始して、継続的な監視を有効にする前にevaluatorを検証します。これにより、本番環境のすべてのスパンをスコアする前に、既知のデータでカラムマッピングエラー、間違ったスパン種類、テンプレート問題を検出できます。backfillが正確なスコアリングを確認した後にのみcontinuousを有効にします。

タスクを作成する前に、尋ねてください:

"以下のどちらをしたいですか? (a) 過去のスパンでbackfillを実行する(ワンタイム)? (b) 今後の新しいスパンでcontinuous evaluationを設定する? (c) 両方 — backfillで検証してから、自動的に新しいスパンのスコアリングを継続する?(推奨)"

ステップ6:実スパンデータからカラムマッピングを決定する

パスを推測しないでください。サンプルをプルして、実際にどのフィールドが存在するかを検査してください:

ax spans export PROJECT --space SPACE -l 5 --days 7 --stdout

各テンプレート変数({input}{output}{context})について、一致するJSONパスを見つけてください。一般的な開始点 — 実装する前に常に実データで検証してください

テンプレート変数LLMスパンCHAINスパン
inputattributes.input.valueattributes.input.value
outputattributes.llm.output_messages.0.message.contentattributes.output.value
contextattributes.retrieval.documents.contents
tool_outputattributes.input.value(フォールバック)attributes.output.value

スパン種類のアライメントを検証してください: evaluatorプロンプトがLLM最終テキストを想定していますが、タスクがCHAINスパンをターゲットしている場合(またはその逆)、実行がキャンセルされたり、間違ったテキストをスコアしたりすることがあります。タスクの query_filter がマップされたスパン種類と一致していることを確認してください。

query_filter はインデックス付き属性でのみ機能します: タスクのevaluators JSONの query_filter は、rawスパンストアではなく、evalインデックスに対して評価されます。attributes.metadata.* またはカスタムキー下の属性はインデックスされていない可能性があり、サイレントにマッチなしになります。span_kindattributes.llm.model_name などのよく知られたインデックス付き属性をフィルタリングに使用してください。フィルターがデータが存在するにもかかわらず0スパンを返す場合は、診断ステップとしてフィルターを削除してみてください。

完全な例 --evaluators JSON:

[
  {
    "evaluator_id": "EVAL_ID",
    "query_filter": "span_kind = 'LLM'",
    "column_mappings": {
      "input": "attributes.input.value",
      "output": "attributes.llm.output_messages.0.message.content",
      "context": "attributes.retrieval.documents.contents"
    }
  }
]

テンプレートが参照するすべての変数のマッピングを含めてください。1つを省略すると、実行は有効なスコアを生成しません。

ステップ7:タスクを作成する

Backfillのみ(a):

ax tasks create \
  --name "Hallucination Backfill" \
  --task-type template_evaluation \
  --project PROJECT \
  --evaluators '[{"evaluator_id": "EVAL_ID", "column_mappings": {"input": "attributes.input.value", "output": "attributes.output.value"}}]' \
  --no-continuous

Continuousのみ(b):

ax tasks create \
  --name "Hallucination Monitor" \
  --task-type template_evaluation \
  --project PROJECT \
  --evaluators '[{"evaluator_id": "EVAL_ID", "column_mappings": {"input": "attributes.input.value", "output": "attributes.output.value"}}]' \
  --is-continuous \
  --sampling-rate 0.1

両方(c): 作成時に --is-continuous を使用し、ステップ8でもbackfill実行をトリガーします。

ステップ8:backfill実行をトリガーする(要求された場合)

Evalインデックスの遅延: evalインデックスはプライマリトレースストアから非同期に構築され、1~2時間の遅延がある可能性があります。最初のテスト実行では、少なくとも2時間前のデータで終了する時間ウィンドウを使用してください。--data-end-time を「今」に設定し、最後の1時間に取り込まれたスパンの場合、実行は成功しますが、0スパンがスコアされます。

まずデータがある時間範囲を見つけてください:

ax spans export PROJECT --space SPACE -l 100 --days 1 --stdout   # 最初に過去24時間を試す
ax spans export PROJECT --space SPACE -l 100 --days 7 --stdout   # 空の場合は拡大

実スパンからの start_time / end_time フィールドを使用してウィンドウを設定します。最初の検証実行では、--max-spans を~100に制限してクイックフィードバックを得てください:

ax tasks trigger-run TASK_ID \
  --data-start-time "2026-03-20T00:00:00" \
  --data-end-time "2026-03-21T23:59:59" \
  --max-spans 100 \
  --wait

スコアと説明を確認してから、完全なbackfillを拡大するか、continuousを有効にしてください。


ワークフローB:experimentのためのevaluatorを作成する

ユーザーが「experimentの用にevaluatorを作成する」または「dataset実行を評価する」のような発言をする場合に使用します。

ユーザーが「dataset」と言うが、experimentはない場合: タスクはdataset(単独ではなく)に対してターゲットする必要があります。尋ねてください:

"Evaluationタスクはdataset直接ではなく、experiment実行に対して実行されます。最初にそのdatasetでexperimentを作成するのを支援しましょうか?"

yesの場合、arize-experimentスキルを使用して1つを作成し、ここに戻ってきてください。

ステップ1:datasetとexperiment名を見つける

ax datasets list --space SPACE
ax experiments list --dataset DATASET_NAME --space SPACE -o json

datasetの名前と、スコアするexperiment名をメモしてください。これらは後続のコマンドで名前またはIDを受け入れます — 名前が推奨されます。

ステップ2:評価対象を理解する

ユーザーがevaluatorタイプを指定した場合 → ステップ3にスキップしてください。

そうでない場合は、最近のexperiment実行を検査してevaluatorをベースにしてください:

ax experiments export EXPERIMENT_NAME --dataset DATASET_NAME --space SPACE --stdout | python3 -c "import sys,json; runs=json.load(sys.stdin); print(json.dumps(runs[0], indent=2))"

outputinputevaluationsmetadata フィールドを確認します。ギャップ(ユーザーが気にするが、まだ持っていないメトリック)を特定し、具体的な1~3つのevaluatorアイデアを提案します。各提案は、evaluator名(太字)、1文の説明、括弧内のバイナリラベルペアを含む必要があります — ワークフローA、ステップ2と同じ形式。

ステップ3:AI統合を確認または作成する

ワークフローA、ステップ3と同じです。

ステップ4:evaluatorを作成する

ワークフローA、ステップ4と同じです。変数を汎用的に保ちます。

ステップ5:実実行データからカラムマッピングを決定する

実行データシェイプはスパンデータと異なります。検査してください:

ax experiments export EXPERIMENT_NAME --dataset DATASET_NAME --space SPACE --stdout | python3 -c "import sys,json; runs=json.load(sys.stdin); print(json.dumps(runs[0], indent=2))"

experiment実行の一般的なマッピング:

  • output"output"(各実行のトップレベルフィールド)
  • input → 実行上にあるか、リンクされたdataset例に埋め込まれているかを確認

input が実行JSONに含まれていない場合は、dataset例をエクスポートしてパスを見つけてください:

ax datasets export DATASET_NAME --space SPACE --stdout | python3 -c "import sys,json; ex=json.load(sys.stdin); print(json.dumps(ex[0], indent=2))"

ステップ6:タスクを作成する

ax tasks create \
  --name "Experiment Correctness" \
  --task-type template_evaluation \
  --dataset DATASET_NAME --space SPACE \
  --experiment-ids "EXP_ID" \   # `ax experiments list --space SPACE -o json` からのBase64 ID
  --evaluators '[{"evaluator_id": "EVAL_ID", "column_mappings": {"output": "output"}}]' \
  --no-continuous

ステップ7:トリガーして監視する

ax tasks trigger-run TASK_ID \
  --experiment-ids "EXP_ID" \   # `ax experiments list --space SPACE -o json` からのBase64 ID
  --wait

ax tasks list-runs TASK_ID
ax tasks get-run RUN_ID

テンプレート設計のベストプラクティス

1. 汎用的でポータブルな変数名を使用する

{input}{output}{context} を使用します — 特定のプロジェクトまたはスパン属性に関連する名前ではなく(例:{attributes_input_value} を使用しません)。evaluator自体は抽象的のままです。タスクの column_mappings は、特定のプロジェクトまたはexperimentの実際のフィールドにそれを配線する場所です。これにより、同じevaluatorを複数のプロジェクトとexperiment間で修正なしで実行できます。

2. デフォルトでバイナリラベルを使用する

2つの明確な文字列ラベルを正確に使用します(例:hallucinated / factualcorrect / incorrectpass / fail)。バイナリラベルは:

  • judgeモデルが一貫して生成するのが最も簡単
  • 業界で最も一般的
  • ダッシュボードで最も簡単に解釈

ユーザーが2つ以上の選択肢を主張する場合、それで問題ありません — ただし最初にバイナリを推奨し、トレードオフを説明してください(より多くのラベル → より多くの曖昧性 → より低い相互評価者信頼性)。

3. モデルが返すべきものについて明示的である

テンプレートは、judge モデルにラベル文字列のみを返すことを明確に指示する必要があります — 何もしません。プロンプト内のラベル文字列は、--classification-choices のラベルと正確に一致する必要があります(同じ綴り、同じケース)。

良い例:

Respond with exactly one of these labels: hallucinated, factual

悪い例(開放的すぎます):

Is this hallucinated? Answer yes or no.

4. 温度を低く保つ

再現可能なスコアリングのため --invocation-params '{"temperature": 0}' を渡します。高い温度は評価結果にノイズを導入します。

5. デバッグに --include-explanations を使用する

初期設定中は、常に説明を含めて、大規模にラベルを信頼する前に、judge が正しく推論しているかを検証できます。

6. bashでプロンプトを単一引用符で渡す

単一引用符は、シェルが {variable} プレースホルダーを解釈するのを防ぎます。二重引用符は問題を引き起こします:

# 正しい
--template 'Judge this: {input} → {output}'

# 間違い — シェルは { } を解釈するか、失敗する可能性があります
--template "Judge this: {input} → {output}"

7. 常に --classification-choices をテンプレートラベルに一致させるように設定する

--classification-choices のラベルは、--template で参照されるラベルと正確に一致する必要があります(同じ綴り、同じケース)。--classification-choices を省略すると、タスク実行は「rails と classification choices がない」というエラーで失敗します。


トラブルシューティング

問題解決方法
ax: command not foundreferences/ax-setup.md を参照
401 UnauthorizedAPIキーがこのスペースにアクセスできない可能性があります。https://app.arize.com/admin > API Keys で確認してください
Evaluator not foundax evaluators list --space SPACE
Integration not foundax ai-integrations list --space SPACE
Task not foundax tasks list --space SPACE
project and dataset-id are mutually exclusiveタスク作成時は1つのみを使用
experiment-ids required for dataset taskscreatetrigger-run--experiment-ids を追加
sampling-rate only valid for project tasksdataset タスクから --sampling-rate を削除
ax spans export の検証エラープロジェクト名は通常機能します。それでも検証エラーが発生した場合は、ax projects list --space SPACE -o json 経由でBase64プロジェクトIDを検索し、id フィールドを使用してください
テンプレート検証エラーbash で単一引用符付きの --template '...' を使用してください。単一中括弧 {var}、二重ではなく {{var}}
実行が pending で停止ax tasks get-run RUN_ID を実行してから、ax tasks cancel-run RUN_ID を実行してください
実行 cancelled ~1秒統合認証情報が無効です — AI統合を確認してください
実行 cancelled ~3分スパンが見つかりましたが、LLM呼び出しが失敗しました — モデル名またはキーが悪いです
実行 completed、0スパン時間ウィンドウを拡大します。evalインデックスは古いデータをカバーしない可能性があります
UI でスコアなしcolumn_mappings を修正して、スパン/実行上の実際のパスと一致させてください
スコアが間違って見える--include-explanations を追加して、数個のサンプルでjudgeの推論を検査してください
Evaluatorが間違ったスパン種類でキャンセルquery_filtercolumn_mappings をLLM vs CHAINスパンに一致させてください
trigger-run で時間形式エラー2026-03-21T09:00:00 を使用してください — 末尾の Z なし
実行失敗:「rails と classification choices がない」ax evaluators create--classification-choices '{"label_a": 1, "label_b": 0}' を追加します — ラベルはテンプレートと一致する必要があります
実行 completed、すべてのスパンスキップクエリフィルターはスパンと一致しましたが、カラムマッピングが間違っているか、テンプレート変数が解決されません — サンプルスパンをエクスポートしてパスを確認してください
query_filter が設定されていますが、0スパン がスコアされましたフィルター属性はevalインデックスでインデックスされていない可能性があります。attributes.metadata.* およびカスタム属性は頻繁にインデックスされません。代わりに span_kind または attributes.llm.model_name を使用するか、フィルターを削除してスパンがウィンドウに存在することを確認します。

キャンセルされた実行の診断

タスク実行がキャンセルされた場合(ステータス cancelled)、以下のチェックリストを順序付けて従ってください:

1. 統合認証情報を確認

ax ai-integrations list --space SPACE -o json

evaluatorによって使用される統合IDが存在し、有効な認証情報を持つことを確認してください。統合が削除されたか、APIキーが期限切れの場合、実行は~1秒以内にキャンセルされます。

2. モデル名を検証

ax evaluators get EVALUATOR_NAME --space SPACE -o json

model_name フィールドを確認してください。タイプミスまたは非推奨モデルにより、LLM呼び出しが失敗し、実行が~3分後にキャンセルされます。

3. サンプルスパン/実行をエクスポートし、パスをcolumn_mappings と比較

プロジェクトタスクの場合:

ax spans export PROJECT --space SPACE -l 1 --days 7 --stdout | python3 -m json.tool

experimentタスクの場合:

ax experiments export EXPERIMENT_NAME --dataset DATASET_NAME --space SPACE --stdout | python3 -c "import sys,json; runs=json.load(sys.stdin); print(json.dumps(runs[0], indent=2)) if runs else print('No runs')"

エクスポートされたJSONパスをタスクの column_mappings と比較します。各テンプレート変数について、マップされたパスが実際に存在することを確認します。一般的な不一致:

  • experiment実行上の attributes.output.value へのマッピング outputoutput のみであるべき)
  • CHAINスパンで attributes.input.value にマッピング input(実際のパスは attributes.llm.input_messages
  • スパン種類に存在しないパスへのマッピング context

4. data_start_time がエポックではないことを確認

trigger-run01970-01-01、または空の文字列の開始時刻を使用した場合、時間ウィンドウは無効です。常に実スパンタイムスタンプから導出してください:

ax spans export PROJECT --space SPACE -l 5 --days 30 --stdout | python3 -c "
import sys, json
spans = json.load(sys.stdin)
for s in spans:
    print(s.get('start_time', 'N/A'), s.get('end_time', 'N/A'))
"

5. スパン種類が evaluator スコープと一致することを確認

evaluator が --data-granularity trace で作成され、タスクの query_filterspan_kind = 'LLM' の場合、実行は適格なデータを見つけず、キャンセルされる可能性があります。granularityとフィルターが一貫していることを確認します。

6. すべてのテンプレート変数が解決されることを確認

evaluatorテンプレートのすべての {variable} は、非null値に解決する対応する column_mappings エントリを持つ必要があります。実スパンに対して解決をテストしてください:

ax spans export PROJECT --space SPACE -l 3 --days 7 --stdout | python3 -c "
import sys, json
spans = json.load(sys.stdin)
# これらのパスを実際のcolumn_mappings値に置き換えます
mappings = {'input': 'attributes.input.value', 'output': 'attributes.output.value'}
for i, span in enumerate(spans):
    print(f'--- Span {i} ---')
    for var, path in mappings.items():
        parts = path.split('.')
        val = span
        for p in parts:
            val = val.get(p) if isinstance(val, dict) else None
        status = 'FOUND' if val else 'MISSING'
        print(f'  {var} ({path}): {status} — {str(val)[:80] if val else \"null\"}')
"

すべてのスパンで変数がMISSINGを表示する場合は、カラムマッピングを修正するか、query_filter を別のスパン種類をターゲットするように調整します。


関連スキル

  • arize-ai-provider-integration: LLMプロバイダー統合の完全なCRUD(認証情報の作成、更新、削除)
  • arize-trace: スパンをエクスポートしてカラムパスと時間範囲を検出
  • arize-experiment: experimentを作成し、experiment カラムマッピング用に実行をエクスポート
  • arize-dataset: 実行がそれらを省略するときの入力フィールドを見つけるためにdatasetの例をエクスポート
  • arize-link: Arize UI内のevaluatorおよびタスクへのディープリンク

将来の使用のための認証情報を保存する

references/ax-profiles.md § Save Credentials for Future Use を参照してください。

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
github
リポジトリ
github/awesome-copilot
ライセンス
MIT
最終更新
不明

Source: https://github.com/github/awesome-copilot / ライセンス: MIT

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: github · github/awesome-copilot · ライセンス: MIT