mcpField
C
configs-create

configs-create

github.com/launchdarklyエージェントワークフロー281.8k 回インストール1 日前に更新
リポジトリ

configs-create について

AI 設定と最初のバリエーションを作成し、モデルやプロンプトの内容を確認する LaunchDarkly のスキルです。SDK で利用するには、後からターゲティングを設定する必要がある点も説明します。

主な機能

  1. 01Agent モードと completion モードの選択
  2. 02設定と最初のバリエーションの作成
  3. 03モデルと指示またはメッセージの設定
  4. 04設定とバリエーションの検証
  5. 05ターゲティング設定の案内

活用シーン

  1. 01Agent やテキスト生成用の設定作成
  2. 02設定への最初のモデルバリエーション追加
  3. 03モデルと指示の設定確認

MCP 対応

LaunchDarkly MCP ツールで設定を作成、検証する方法を優先します。その後、SDK がバリエーションを配信できるようターゲティングを設定します。

インストール

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

$npx skills add https://github.com/launchdarkly/ai-tooling --skill configs-create

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

同梱ファイルREADME.md

詳細

Config の作成

あなたは、LaunchDarkly で Config を作成する手順を案内するスキルを使用しています。あなたの役割は、ユースケースを理解し、適切なモードを選択し、Config とそのバリエーションを作成し、すべてが正しく設定されていることを検証することです。

⚠️ このスキルは Config を作成しますが、それを配信可能にするわけではありません。 作成直後の Config は、フォールスルーが自動生成された無効なバリエーションを指しており、あなたが今作成したバリエーションを指していません。ターゲティングを有効にしてフォールスルーを新しいバリエーションに向けるまで、SDK は評価のたびに ai_config.enabled=False を返します。これはバグではなく、デフォルトの状態です。SDK に対して検証を行う前に /configs-targeting(またはステップ 5 に示す同等の REST / CLI 呼び出し)を実行する必要があります。そうしないと、LD から配信される経路が壊れているわけではないのに、壊れているように見えてしまいます。このスキルでユーザーが遭遇する最も一般的な失敗パターンは、ターゲティングのステップを飛ばし、アプリケーションコードで enabled=False をデバッグする時間を費やしてしまうことです。

前提条件

このスキルを使用するには、リモートでホストされている LaunchDarkly MCP サーバーが環境内で設定されている必要があります。

主要な MCP ツール:

  • setup-ai-config -- Config とその最初のバリエーションを 1 ステップで作成します(推奨)

代替の MCP ツール(より細かい制御が必要な場合):

  • create-ai-config -- Config のシェルのみを作成します(キー、名前、モード)
  • create-ai-config-variation -- モデル、プロンプト、パラメーターを含むバリエーションを追加します
  • get-ai-config -- Config が正しく作成されたことを検証します

オプションの MCP ツール(ワークフローを強化):

  • list-ai-configs -- 既存の Config を参照して命名規則を把握します
  • create-project -- プロジェクトがまだ存在しない場合に作成します

重要: 行動を優先する

ユーザーが十分なコンテキスト(ユースケース、モデル、モード)を提供した場合、推測できる詳細を尋ねるために停止することなく、ワークフロー全体を進めてください。指定されていないフィールドには妥当なデフォルトを使用します。バリエーションキーには default、instructions/messages の基礎にはユースケース、Config キーには kebab-case を使用します。すべてのステップ(作成 + 検証)を 1 回のパスで完了してください。

ワークフロー

ステップ 1: ユースケースを理解する

作成する前に、何を構築するのかを明確にします:

  • どのフレームワークですか? LangGraph、LangChain、CrewAI、Strands、OpenAI SDK、Anthropic SDK、カスタム
  • エージェントに必要なものは何ですか? テキスト生成だけですか、それともツール/関数呼び出しですか?
  • エージェントですか、それとも完了ですか? 以下の判断マトリックスを参照してください
ステップ 2: エージェントモードと完了モードの選択

この選択は、実行時の動作ではなく、入力スキーマとフレームワークの互換性に関するものです。エージェントモードは instructions 文字列を返し、完了モードは messages 配列を返します。どちらもプロバイダーの抽象化、A/B テスト、メトリクスの追跡を提供します。

あなたのニーズモード理由
LangGraph、CrewAI、Strands、AutoGen フレームワークエージェントフレームワークは goal/instruction 入力を期待します
やり取りをまたいで持続する instructionsエージェント単一の instructions 文字列、SDK メソッド: agent_config()(Python)/ agentConfig()(Node)
直接の OpenAI/Anthropic API 呼び出し完了messages 配列がプロバイダー API に直接対応します
メッセージ構造の完全な制御完了system/user/assistant のロールベースのメッセージ
単発のテキスト生成完了標準的なチャット形式
オンライン評価(LLM-as-judge)が必要完了オンライン評価は完了モードでのみ利用可能です

どちらのモードもツールをサポートします。 すべてのモデルがエージェントモードをサポートしているわけではありません。エージェントモードを使用する場合はモデルの互換性を確認してください。不明な場合は、完了モードから始めてください(API のデフォルトであり、より柔軟です)。

ステップ 3: 設定を作成する(推奨: 1 ステップ)

setup-ai-config を使用すると、設定とその最初のバリエーションを 1 回の呼び出しで作成できます。これが推奨されるアプローチです。作成、バリエーションの設定、検証を自動的に処理します。

設定フィールド:

  • key -- 一意の識別子(小文字、ハイフン)
  • name -- 人間が読める名前
  • mode -- "agent" または "completion"
  • 任意: description、tags

バリエーションフィールド:

  • variationKey、variationName -- 最初のバリエーションの識別子
  • modelConfigKey -- Provider.model-id 形式である必要があります(例: OpenAI.gpt-4o、Anthropic.claude-sonnet-4-5)
  • modelName -- モデルの識別子(例: gpt-4o)。必ず最初の呼び出しでこれを渡してください — 省略すると、「NO MODEL」と表示されるバリエーションが生成され、設定するために 2 回目の PATCH が必要になります。フィールドは modelName であり、このエンドポイントでは name や model.name ではありません。

エージェントモードの場合、次を指定します:

  • instructions -- エージェントのシステム指示を含む文字列

エージェントモードの呼び出し例:

{
  "projectKey": "my-project", "key": "support-agent", "name": "Support Agent",
  "mode": "agent", "variationKey": "default", "variationName": "Default",
  "modelConfigKey": "OpenAI.gpt-4o", "modelName": "gpt-4o",
  "instructions": "You are a customer support agent. Help users resolve their issues."
}

completion モードの場合、次を指定します:

  • messages -- {role, content} オブジェクトの配列(system、user、assistant)

completion モードの呼び出し例:

{
  "projectKey": "my-project", "key": "product-descriptions", "name": "Product Descriptions",
  "mode": "completion", "variationKey": "default", "variationName": "Default",
  "modelConfigKey": "Anthropic.claude-sonnet-4-5", "modelName": "claude-sonnet-4-5",
  "messages": [
    {"role": "system", "content": "You are a product copywriter. Write compelling descriptions."},
    {"role": "user", "content": "Write a description for: {{product_name}}"}
  ]
}

任意:

  • parameters -- {temperature: 0.7, max_tokens: 2000} のようなモデルパラメーター(UI の snake_case キーに合わせてください)

ツールは、バリエーションが付属した完全な検証済み設定の詳細を返します。

ステップ 3(代替): 2 ステップでの作成

ユーザーがより細かい制御やステップバイステップのアプローチを求めた場合は、個別のツールを使用します:

  1. create-ai-config -- 設定のシェルを作成します
  2. create-ai-config-variation -- モデル、プロンプト、パラメーターを含むバリエーションを追加します
  3. get-ai-config -- 結果を検証します

詳細を尋ねるために停止することなく、3 つのステップすべてを実行してください。 ユーザーのリクエストのコンテキストから、バリエーションキー(default)、名前(Default)、instructions/messages、およびモデルを推測してください。ユーザーが GPT-4o のエージェントモードを求めたのであれば、フロー全体を完了するのに十分な情報があります。モードまたはモデルが本当に曖昧な場合にのみ、明確化のための質問をしてください。

ステップ 4: 検証

setup-ai-config を使用した場合、検証は自動です。レスポンスにはバリエーションを含む完全な設定が含まれます。次を確認してください:

  1. 設定が正しいモードで存在している
  2. バリエーションにモデルが割り当てられている(「NO MODEL」ではない)
  3. instructions または messages が存在している
  4. parameters が設定されている

検証の呼び出しには get-ai-config を使用してください — 生の curl + jq に落とし込まないでください。 MCP ツールは、直接検査できる型付きオブジェクトを返します。REST レスポンスに対して手作業で書いた jq フィルターは頻繁に壊れます。設定詳細エンドポイントは expand に応じて異なるキーの下でバリエーションリストを返し、.variations.items[] のようなフィルターは、レスポンスの形状が素の配列である場合に Cannot index array with string "items" で失敗します。REST API を呼び出す必要がある場合は、掘り下げる前にまず jq -e . を使用して実際の形状を検査してください。

結果を報告する:

  • 設定が正しい構造で作成された
  • バリエーションにモデルが割り当てられている
  • 欠落しているモデルやパラメーターがあれば指摘する
  • 設定 URL を提供する: https://app.launchdarkly.com/projects/{projectKey}/ai-configs/{configKey}
ステップ 5: バリエーションを配信可能にする

setup-ai-config と create-ai-config-variation はバリエーションを作成しますが、それをフォールスルーに昇格させません。ターゲティングが更新されるまで、新しい設定はすべてのコンシューマーに対して enabled=False を返します。これは、最もよくある「設定を作成したのに SDK が依然としてフォールバックを受け取る」という失敗です。このステップが完了するまで、ワークフローは完了しません。

ユーザーに伝える内容

ステップ 4 の後、このチェックリストをそのままユーザーに出力し、確認を待ちます。ユーザーがフォールスルーが切り替わったことを確認するまで、スキルが成功したと主張しないでください。

✅ コンフィグとバリエーションが作成されました。

🔴 ターゲティングをオンに切り替えるまで、SDK は enabled=False を返します。 フォールスルーは現在、自動作成された無効なバリエーションを指しており、あなたが作成した {variationKey} を指していません。

次のステップ — /configs-targeting を実行し、以下の入力を指定します:

  • プロジェクトキー: {projectKey}
  • コンフィグキー: {configKey}
  • 環境キー: .env 内に SDK キーがある環境(通常は test または production)
  • フォールスルーバリエーション: {variationKey}(このスキルが作成したもの)

ターゲティングの切り替え後、以下で確認します:

  1. LD UI でコンフィグを開き、正しい環境に切り替え、「デフォルトルールで提供: {variationName}」がターゲティング オン で表示されることを確認します。
  2. 簡単なテストを実行します: ai_config = ai_client.{completion|agent}_config(...) を実行し、ai_config.enabled is True をアサートします。
兄弟スキルを呼び出さずにターゲティングを切り替えたい場合の直接ショートカット

configs-targeting が正規のパスです — パーセンテージロールアウト、ターゲットルール、バリエーション ID の検索を処理します。しかし最も単純なケース(「新しいバリエーションを 1 つの環境のフォールスルーに昇格させる」)では、新しいバリエーションの _id がわかれば、基盤となるセマンティック PATCH を自分で実行できます。

バリエーション ID を取得します(get-ai-config MCP を使用するか、以下を実行):

curl -s "https://app.launchdarkly.com/api/v2/projects/$PROJECT/ai-configs/$CONFIG_KEY/targeting?env=$ENV" \
  -H "Authorization: {api_token}" -H "LD-API-Version: beta" \
  | jq '.variations[] | {key, _id}'

フォールスルーをそれを指すように切り替えます:

curl -X PATCH "https://app.launchdarkly.com/api/v2/projects/$PROJECT/ai-configs/$CONFIG_KEY/targeting?env=$ENV" \
  -H "Authorization: {api_token}" \
  -H "Content-Type: application/json; domain-model=launchdarkly.semanticpatch" \
  -H "LD-API-Version: beta" \
  -d '{"instructions":[{"kind":"updateFallthroughVariationOrRollout","variationId":"<id-from-step-above>"}]}'

または、LD CLI がローカルにインストールされている場合は同じことを CLI で実行します:

ldcli resources ai-configs update-ai-config-targeting \
  --projectKey $PROJECT --configKey $CONFIG_KEY --envKey $ENV \
  --data '{"instructions":[{"kind":"updateFallthroughVariationOrRollout","variationId":"<id>"}]}'

turnTargetingOn は使用しないでください — そのセマンティックパッチ命令はコンフィグに対しては 機能しません。updateFallthroughVariationOrRollout が実際にフォールスルーを切り替える唯一の命令です。

modelConfigKey の形式

UI でモデルを表示するために必要です。形式: {Provider}.{model-id}

  • OpenAI.gpt-4o
  • OpenAI.gpt-4o-mini
  • Anthropic.claude-sonnet-4-5
  • Anthropic.claude-3-5-sonnet

create-ai-config-variation ツールはこの形式を検証し、無効な値を拒否します。

エッジケース

状況対応
コンフィグがすでに存在する代わりに更新するかどうかをユーザーに確認します
バリエーションが「NO MODEL」と表示されるupdate-ai-config-variation を使用して modelConfigKey を設定します
ツールをアタッチする必要があるまずツールを作成し(tools スキル)、その後でバリエーションを更新します

やってはいけないこと

  • ユースケースを理解せずにコンフィグを作成しないでください
  • 2 段階のプロセス(コンフィグ、次にバリエーション)を省略しないでください
  • 初回作成時にツールをアタッチしようとしないでください -- 後でバリエーションを更新します
  • modelConfigKey を忘れないでください(モデルが UI に表示されません)
  • 初回のバリエーション呼び出しから modelName を省略しないでください。これは作成時に必須です。フォローアップの PATCH で設定するのはバグの回避策であり、意図されたフローではありません。PATCH のフィールドも name ではなく modelName です。
  • 検証のために生の curl + jq に頼らないでください。get-ai-config(MCP)を使用してください — 型付きオブジェクトを返し、レスポンス形状の変動で壊れる脆い jq フィルターを避けられます。
  • ユーザーに configs-targeting の実行を伝えるまで、ワークフローが完了したとみなさないでください。フォールスルーに昇格されていない作成済みのバリエーションは、すべてのコンシューマーに enabled=False を返します。

その他のリソース

LaunchDarkly UI でコンフィグを作成する方法の詳細については、コンフィグの作成をお読みください。

SDK の設定方法の詳細については、以下をお読みください:

関連スキル

  • tools -- アタッチする前にツールを作成します
  • configs-variations -- 実験用にさらにバリエーションを追加します
  • configs-update -- 学びに基づいて設定を修正します

コメント