configs-create について
AI 設定と最初のバリエーションを作成し、モデルやプロンプトの内容を確認する LaunchDarkly のスキルです。SDK で利用するには、後からターゲティングを設定する必要がある点も説明します。
主な機能
- 01Agent モードと completion モードの選択
- 02設定と最初のバリエーションの作成
- 03モデルと指示またはメッセージの設定
- 04設定とバリエーションの検証
- 05ターゲティング設定の案内
活用シーン
- 01Agent やテキスト生成用の設定作成
- 02設定への最初のモデルバリエーション追加
- 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 ステップでの作成
ユーザーがより細かい制御やステップバイステップのアプローチを求めた場合は、個別のツールを使用します:
create-ai-config-- 設定のシェルを作成しますcreate-ai-config-variation-- モデル、プロンプト、パラメーターを含むバリエーションを追加しますget-ai-config-- 結果を検証します
詳細を尋ねるために停止することなく、3 つのステップすべてを実行してください。 ユーザーのリクエストのコンテキストから、バリエーションキー(default)、名前(Default)、instructions/messages、およびモデルを推測してください。ユーザーが GPT-4o のエージェントモードを求めたのであれば、フロー全体を完了するのに十分な情報があります。モードまたはモデルが本当に曖昧な場合にのみ、明確化のための質問をしてください。
ステップ 4: 検証
setup-ai-config を使用した場合、検証は自動です。レスポンスにはバリエーションを含む完全な設定が含まれます。次を確認してください:
- 設定が正しいモードで存在している
- バリエーションにモデルが割り当てられている(「NO MODEL」ではない)
- instructions または messages が存在している
- 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}(このスキルが作成したもの)ターゲティングの切り替え後、以下で確認します:
- LD UI でコンフィグを開き、正しい環境に切り替え、「デフォルトルールで提供:
{variationName}」がターゲティング オン で表示されることを確認します。- 簡単なテストを実行します:
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-4oOpenAI.gpt-4o-miniAnthropic.claude-sonnet-4-5Anthropic.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 の設定方法の詳細については、以下をお読みください:
- .NET AI SDK リファレンス
- Go AI SDK リファレンス
- Node.js(サーバーサイド)SDK AI リファレンス
- Python AI SDK リファレンス
- Ruby AI SDK リファレンス
関連スキル
tools-- アタッチする前にツールを作成しますconfigs-variations-- 実験用にさらにバリエーションを追加しますconfigs-update-- 学びに基づいて設定を修正します