mcpField
A
abtesting-design

abtesting-design

github.com/alphaonedevデータ・データベース48 回インストール
リポジトリ

abtesting-design について

OpenClaw向けのA/Bテスト設計スキルです。実験の仮説やグループを定め、ハッシュによる割り当てと層化で偏りを抑えます。

主な機能

  1. 01帰無仮説と対立仮説の設定
  2. 02対照群とバリアント群の構成
  3. 03ハッシュによるランダム割り当て
  4. 04ユーザー属性による層化抽出

活用シーン

  1. 01メール件名の開封率比較
  2. 02アプリ機能の変更テスト
  3. 03ユーザー層ごとの実験群の均衡化

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill abtesting-design

インストール後、Claude Code で/abtesting-designを入力して読み込まれたか確認します。

詳細

abtesting-design

目的

このスキルでは、OpenClaw 向けに精密な A/B テストを設計できます。仮説の定式化(帰無仮説や対立仮説など)、対照群とバリアント群の設定、ハッシュベースのランダム化、バランスの取れた実験を実現するための層化を扱います。

使用する場面

ウェブサイトのレイアウト、アプリの機能、マーケティングキャンペーンなどを比較する実験を設計し、統計的な厳密さをもって仮説を検証し、バイアスを最小限に抑える場合に使用します。

主な機能

  • 仮説を定式化する:帰無仮説(例:「クリック率に差はない」)と対立仮説(例:「バリアントによってクリック数が 10%増加する」)を定義します。
  • グループを設定する:サンプルサイズや指標などのパラメーターを指定して、対照群とバリアント群を構成します。
  • ランダム化を実装する:選択バイアスを減らすため、ユーザー ID に対する SHA-256 などのハッシュベースの方法で割り当てます。
  • 層化を適用する:層化サンプリングなどのアルゴリズムを使い、ユーザーを(属性などに基づいて)層に分けてグループのバランスを取ります。

使用パターン

まず仮説とグループを定義してください。簡単に設計する場合は CLI を、プログラムから統合する場合は API を使用します。必要な入力(仮説文字列やバリアント名など)は、1 つのコマンドまたはリクエストにまとめて指定します。繰り返し使用する場合は、設定を JSON ファイルに保存し、フラグから参照してください。実行時エラーを避けるため、実行前に入力を検証します。

主なコマンド/API

  • CLI コマンド:openclaw abtesting-design --hypothesis-null "No effect on conversion" --hypothesis-alt "Variant increases conversion" --variants control,variantA --randomize hash --stratify age,gender を実行してテストを設計します。{"variants": ["control", "variantA"], "strata": ["age", "gender"]} のような JSON 設定には、--config path/to/config.json を使用します。
  • API エンドポイント:JSON ボディ(例:{"hypothesis_null": "No difference", "hypothesis_alt": "Increase in engagement", "variants": ["control", "variantB"], "randomization": "hash", "stratification": ["device_type"]})を指定して、/api/abtesting/design に POST リクエストを送信します。ヘッダーで認証を設定します:Authorization: Bearer $OPENCLAW_API_KEY。
  • コードスニペット(Python):
    import requests
    headers = {'Authorization': f'Bearer {os.environ["OPENCLAW_API_KEY"]}'}
    data = {"hypothesis_null": "No effect", "variants": ["control", "variant"]}
    response = requests.post('https://api.openclaw.com/api/abtesting/design', json=data, headers=headers)
    
  • コードスニペット(スクリプト内の CLI):
    export OPENCLAW_API_KEY=your_key_here
    openclaw abtesting-design --hypothesis-null "Baseline equal" --variants control,testVariant --output results.json
    

統合に関する注意

認証には、環境変数として $OPENCLAW_API_KEY を設定して統合します。複数のサービスを使用する構成では、このスキルをデータツールと連携させます(例:OpenClaw のワークフロー API の /api/workflows/add 経由)。一貫性を保つため、{"api_endpoint": "/api/abtesting/design", "auth_env": "OPENCLAW_API_KEY"} のような JSON 設定を使用します。アプリケーションで、/api/abtesting/status/{job_id} をポーリングして非同期レスポンスを処理できるようにしてください。

エラー処理

レスポンスコードを解析してエラーを確認します。無効な入力(仮説の欠落など)では HTTP 400、認証の失敗では 401 が返されます。コードでは try-except ブロックを使用します:

try:
    response = requests.post(url, json=data, headers=headers)
    response.raise_for_status()
except requests.exceptions.HTTPError as e:
    print(f"Error: {e.response.status_code} - {e.response.text}")
    # Retry with corrected inputs, e.g., add missing fields

CLI では、出力を取得し、"Error: Invalid hypothesis format" のような文字列を確認してから、必要に応じてフラグを調整します。

具体的な使用例

  1. メール件名のテスト:2 つのメール件名を比較するには、openclaw abtesting-design --hypothesis-null "Open rates are equal" --hypothesis-alt "Subject B increases opens" --variants control,subjectB --randomize hash --stratify location を実行し、出力された JSON を使って、メールシステム内でユーザー ID に基づきユーザーを割り当てます。
  2. アプリ機能の A/B テスト:新しいログインボタンをテストするには、API を使用します。{"hypothesis_null": "No change in login time", "variants": ["old_button", "new_button"], "stratification": ["user_type"]} を指定して /api/abtesting/design に POST リクエストを送信し、返されたランダム化関数(ハッシュベースなど)をアプリのコードに適用してユーザーをセグメント化します。

グラフの関係

  • 関連クラスター:abtesting(設計後の手順に使用する abtesting-analysis などのスキルへのリンク)。
  • 関連タグ:experiment-design(データ収集スキルと連携)、hypothesis(統計モデリングツールと関連)、randomization(ユーザーセグメンテーションユーティリティと連携)。

コメント