[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-launchdarkly-configs-create":3,"mdc--wmigng-key":34,"related-org-launchdarkly-configs-create":2910,"related-repo-launchdarkly-configs-create":3042},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":29,"sourceUrl":32,"mdContent":33},"configs-create","create and configure LaunchDarkly configs","Create and configure configs in LaunchDarkly. Helps you choose between agent vs completion mode, create the config, add variations with models and prompts, and verify the setup.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"launchdarkly","LaunchDarkly","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Flaunchdarkly.png",[12,16,19],{"name":13,"slug":14,"type":15},"Configuration","configuration","tag",{"name":17,"slug":18,"type":15},"Feature Flags","feature-flags",{"name":9,"slug":8,"type":15},20,"https:\u002F\u002Fgithub.com\u002Flaunchdarkly\u002Fai-tooling","2026-07-28T05:33:35.70498","Apache-2.0",6,[26,27,28],"agent-skills","launchdarkly-ai","managed-by-terraform",{"repoUrl":21,"stars":20,"forks":24,"topics":30,"description":31},[26,27,28],"LaunchDarkly's official AI tooling","https:\u002F\u002Fgithub.com\u002Flaunchdarkly\u002Fai-tooling\u002Ftree\u002FHEAD\u002Fskills\u002Fagentcontrol\u002Fconfigs-create","---\nname: configs-create\ndescription: \"Create and configure configs in LaunchDarkly. Helps you choose between agent vs completion mode, create the config, add variations with models and prompts, and verify the setup.\"\nlicense: Apache-2.0\ncompatibility: Requires the remotely hosted LaunchDarkly MCP server\nmetadata:\n  author: launchdarkly\n  version: \"1.0.0-experimental\"\n---\n\n# Create Config\n\nYou're using a skill that will guide you through creating a config in LaunchDarkly. Your job is to understand the use case, choose the right mode, create the config and its variations, and verify everything is set up correctly.\n\n> **⚠️ This skill creates a config — it does not make it servable.** A freshly-created config has its **fallthrough pointing at an auto-generated disabled variation**, not at the variation you just created. The SDK will return `ai_config.enabled=False` on every evaluation until you flip targeting on and point the fallthrough at your new variation. This is not a bug — it's the default state. **You must run `\u002Fconfigs-targeting` (or the equivalent REST \u002F CLI call shown in Step 5) before verifying against the SDK**, or verification will look like the LD-served path is broken when it isn't. The single most common failure mode users hit with this skill is skipping the targeting step and spending time debugging `enabled=False` in their application code.\n\n## Prerequisites\n\nThis skill requires the remotely hosted LaunchDarkly MCP server to be configured in your environment.\n\n**Primary MCP tool:**\n- `setup-ai-config` -- create a config with its first variation in one step (recommended)\n\n**Alternative MCP tools (for more control):**\n- `create-ai-config` -- create just the config shell (key, name, mode)\n- `create-ai-config-variation` -- add a variation with model, prompts, and parameters\n- `get-ai-config` -- verify the config was created correctly\n\n**Optional MCP tools (enhance workflow):**\n- `list-ai-configs` -- browse existing configs to understand naming conventions\n- `create-project` -- create a project if one doesn't exist yet\n\n## Important: Bias Towards Action\n\nWhen the user provides enough context (use case, model, mode), proceed through the entire workflow without stopping to ask for details you can infer. Use reasonable defaults for unspecified fields: `default` for variation key, the use case as the basis for instructions\u002Fmessages, kebab-case for config keys. Complete all steps (create + verify) in one pass.\n\n## Workflow\n\n### Step 1: Understand the Use Case\n\nBefore creating, identify what you're building:\n\n- **What framework?** LangGraph, LangChain, CrewAI, Strands, OpenAI SDK, Anthropic SDK, custom\n- **What does the agent need?** Just text generation, or tools\u002Ffunction calling?\n- **Agent or completion?** See the decision matrix below\n\n### Step 2: Choose Agent vs Completion Mode\n\nThis choice is about **input schema and framework compatibility**, not execution behavior. Agent mode returns an `instructions` string; completion mode returns a `messages` array. Both provide provider abstraction, A\u002FB testing, and metrics tracking.\n\n| Your Need | Mode | Why |\n|-----------|------|-----|\n| LangGraph, CrewAI, Strands, AutoGen frameworks | **Agent** | Frameworks expect goal\u002Finstruction input |\n| Persistent instructions across interactions | **Agent** | Single instructions string, SDK method: `agent_config()` (Python) \u002F `agentConfig()` (Node) |\n| Direct OpenAI\u002FAnthropic API calls | **Completion** | Messages array maps directly to provider APIs |\n| Full control of message structure | **Completion** | System\u002Fuser\u002Fassistant role-based messages |\n| One-off text generation | **Completion** | Standard chat format |\n| Need online evaluations (LLM-as-judge) | **Completion** | Online evals are only available in completion mode |\n\n**Both modes support tools.** Not all models support agent mode -- check model compatibility if using agent mode. If unsure, start with completion mode (it's the API default and more flexible).\n\n### Step 3: Create the Config (Recommended: One Step)\n\nUse `setup-ai-config` to create the config and its first variation in one call. This is the recommended approach: it handles creation, variation setup, and verification automatically.\n\n**Config fields:**\n- `key` -- unique identifier (lowercase, hyphens)\n- `name` -- human-readable name\n- `mode` -- `\"agent\"` or `\"completion\"`\n- Optional: `description`, `tags`\n\n**Variation fields:**\n- `variationKey`, `variationName` -- identifiers for the first variation\n- `modelConfigKey` -- must be `Provider.model-id` format (e.g., `OpenAI.gpt-4o`, `Anthropic.claude-sonnet-4-5`)\n- `modelName` -- the model identifier (e.g., `gpt-4o`). **Always pass this in the initial call** — leaving it off produces a variation that displays \"NO MODEL\" and forces a second PATCH to set it. The field is `modelName`; it is **not** `name` or `model.name` on this endpoint.\n\n**For agent mode**, provide:\n- `instructions` -- a string with the agent's system instructions\n\nExample agent-mode call:\n```json\n{\n  \"projectKey\": \"my-project\", \"key\": \"support-agent\", \"name\": \"Support Agent\",\n  \"mode\": \"agent\", \"variationKey\": \"default\", \"variationName\": \"Default\",\n  \"modelConfigKey\": \"OpenAI.gpt-4o\", \"modelName\": \"gpt-4o\",\n  \"instructions\": \"You are a customer support agent. Help users resolve their issues.\"\n}\n```\n\n**For completion mode**, provide:\n- `messages` -- an array of `{role, content}` objects (system, user, assistant)\n\nExample completion-mode call:\n```json\n{\n  \"projectKey\": \"my-project\", \"key\": \"product-descriptions\", \"name\": \"Product Descriptions\",\n  \"mode\": \"completion\", \"variationKey\": \"default\", \"variationName\": \"Default\",\n  \"modelConfigKey\": \"Anthropic.claude-sonnet-4-5\", \"modelName\": \"claude-sonnet-4-5\",\n  \"messages\": [\n    {\"role\": \"system\", \"content\": \"You are a product copywriter. Write compelling descriptions.\"},\n    {\"role\": \"user\", \"content\": \"Write a description for: {{product_name}}\"}\n  ]\n}\n```\n\n**Optional:**\n- `parameters` -- model parameters like `{temperature: 0.7, max_tokens: 2000}` (match the UI's snake_case keys)\n\nThe tool returns the full verified config detail with the variation attached.\n\n### Step 3 (Alternative): Two-Step Creation\n\nIf the user asks for more control or a step-by-step approach, use the individual tools:\n\n1. `create-ai-config` -- create the config shell\n2. `create-ai-config-variation` -- add the variation with model, prompts, and parameters\n3. `get-ai-config` -- verify the result\n\n**Execute all three steps without stopping to ask for details.** Infer the variation key (`default`), name (`Default`), instructions\u002Fmessages, and model from the user's request context. If the user asked for GPT-4o agent mode, you have enough to complete the entire flow. Only ask clarifying questions if the mode or model is truly ambiguous.\n\n### Step 4: Verify\n\nIf you used `setup-ai-config`, verification is automatic: the response includes the full config with variations. Check:\n\n1. Config exists with the correct mode\n2. Variation has a model assigned (not \"NO MODEL\")\n3. Instructions or messages are present\n4. Parameters are set\n\n**Use `get-ai-config` for the verification call — do not drop to raw `curl` + `jq`.** The MCP tool returns a typed object you can inspect directly. Hand-rolled `jq` filters against the REST response routinely break: the configs detail endpoint returns the variation list under different keys depending on `expand`, and a filter like `.variations.items[]` will fail with `Cannot index array with string \"items\"` when the response shape is a bare array. If you must call the REST API, use `jq -e .` first to inspect the actual shape before drilling in.\n\n**Report results:**\n- Config created with correct structure\n- Variation has model assigned\n- Flag any missing model or parameters\n- Provide config URL: `https:\u002F\u002Fapp.launchdarkly.com\u002Fprojects\u002F{projectKey}\u002Fai-configs\u002F{configKey}`\n\n### Step 5: Make the variation servable\n\n`setup-ai-config` and `create-ai-config-variation` create the variation but **do not promote it to fallthrough**. The new config will return `enabled=False` to every consumer until targeting is updated. This is the single most common \"I created a config but my SDK still gets the fallback\" failure. **The workflow is not complete until this step is done.**\n\n#### What to tell the user\n\nPrint this checklist verbatim to the user after Step 4, then wait for confirmation. Do not claim the skill succeeded until the user confirms the fallthrough was flipped.\n\n> ✅ Config and variation are created.\n>\n> 🔴 **The SDK will return `enabled=False` until you flip targeting on.** The fallthrough is currently pointing at an auto-generated disabled variation, not at the `{variationKey}` you just created.\n>\n> **Next step — run `\u002Fconfigs-targeting`** with these inputs:\n> - Project key: `{projectKey}`\n> - Config key: `{configKey}`\n> - Environment key: the env whose SDK key is in your `.env` (usually `test` or `production`)\n> - Fallthrough variation: `{variationKey}` (the one this skill just created)\n>\n> Verify after targeting is flipped by:\n> 1. Opening the config in the LD UI, switching to the correct environment, and confirming \"Default rule serves: `{variationName}`\" is shown with targeting **On**.\n> 2. Running a quick test: `ai_config = ai_client.{completion|agent}_config(...)` and asserting `ai_config.enabled is True`.\n\n#### Direct shortcut if the user wants to flip targeting without invoking the sibling skill\n\n`configs-targeting` is the canonical path — it handles percentage rollouts, targeted rules, and variation-ID lookups. But for the simplest case (\"promote the new variation to fallthrough in one environment\"), you can run the underlying semantic PATCH yourself once you know the new variation's `_id`.\n\nGet the variation ID (use `get-ai-config` MCP, or):\n```bash\ncurl -s \"https:\u002F\u002Fapp.launchdarkly.com\u002Fapi\u002Fv2\u002Fprojects\u002F$PROJECT\u002Fai-configs\u002F$CONFIG_KEY\u002Ftargeting?env=$ENV\" \\\n  -H \"Authorization: $LD_API_KEY\" -H \"LD-API-Version: beta\" \\\n  | jq '.variations[] | {key, _id}'\n```\n\nFlip the fallthrough to point at it:\n```bash\ncurl -X PATCH \"https:\u002F\u002Fapp.launchdarkly.com\u002Fapi\u002Fv2\u002Fprojects\u002F$PROJECT\u002Fai-configs\u002F$CONFIG_KEY\u002Ftargeting?env=$ENV\" \\\n  -H \"Authorization: $LD_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson; domain-model=launchdarkly.semanticpatch\" \\\n  -H \"LD-API-Version: beta\" \\\n  -d '{\"instructions\":[{\"kind\":\"updateFallthroughVariationOrRollout\",\"variationId\":\"\u003Cid-from-step-above>\"}]}'\n```\n\nOr the same thing via the LD CLI if it's installed locally:\n```bash\nldcli resources ai-configs update-ai-config-targeting \\\n  --projectKey $PROJECT --configKey $CONFIG_KEY --envKey $ENV \\\n  --data '{\"instructions\":[{\"kind\":\"updateFallthroughVariationOrRollout\",\"variationId\":\"\u003Cid>\"}]}'\n```\n\nDo not use `turnTargetingOn` — that semantic-patch instruction does **not** work for configs. `updateFallthroughVariationOrRollout` is the only instruction that actually flips the fallthrough.\n\n## modelConfigKey Format\n\nRequired for models to display in the UI. Format: `{Provider}.{model-id}`\n\n- `OpenAI.gpt-4o`\n- `OpenAI.gpt-4o-mini`\n- `Anthropic.claude-sonnet-4-5`\n- `Anthropic.claude-3-5-sonnet`\n\nThe `create-ai-config-variation` tool validates this format and rejects invalid values.\n\n## Edge Cases\n\n| Situation | Action |\n|-----------|--------|\n| Config already exists | Ask if user wants to update instead |\n| Variation shows \"NO MODEL\" | Use `update-ai-config-variation` to set modelConfigKey |\n| Need to attach tools | Create tools first (`tools` skill), then update the variation |\n\n## What NOT to Do\n\n- Don't create configs without understanding the use case\n- Don't skip the two-step process (config then variation)\n- Don't try to attach tools during initial creation -- update the variation afterward\n- Don't forget modelConfigKey (models won't show in the UI)\n- Don't omit `modelName` from the initial variation call. It is required at create time; setting it via a follow-up PATCH is a workaround for a bug, not the intended flow. The PATCH field is also `modelName`, not `name`.\n- Don't drop to raw `curl` + `jq` for verification. Use `get-ai-config` (MCP) — it returns a typed object and avoids brittle `jq` filters that break on response-shape variation.\n- Don't consider the workflow complete until the user has been told to run `configs-targeting`. A created variation that isn't promoted to fallthrough returns `enabled=False` to every consumer.\n\n## More resources\n\nTo learn more about creating a config in the LaunchDarkly UI, read [Create configs](https:\u002F\u002Flaunchdarkly.com\u002Fdocs\u002Fhome\u002Fagentcontrol\u002Fcreate.md)\n\nTo learn more about configuring the SDK, read:\n\n* [.NET AI SDK reference](https:\u002F\u002Flaunchdarkly.com\u002Fdocs\u002Fsdk\u002Fai\u002Fdotnet.md)\n* [Go AI SDK reference](https:\u002F\u002Flaunchdarkly.com\u002Fdocs\u002Fsdk\u002Fai\u002Fgo.md)\n* [Node.js (server-side) SDK AI reference](https:\u002F\u002Flaunchdarkly.com\u002Fdocs\u002Fsdk\u002Fai\u002Fnode-js.md)\n* [Python AI SDK reference](https:\u002F\u002Flaunchdarkly.com\u002Fdocs\u002Fsdk\u002Fai\u002Fpython.md)\n* [Ruby AI SDK reference](https:\u002F\u002Flaunchdarkly.com\u002Fdocs\u002Fsdk\u002Fai\u002Fruby.md)\n\n## Related Skills\n\n- `tools` -- Create tools before attaching\n- `configs-variations` -- Add more variations for experimentation\n- `configs-update` -- Modify configs based on learnings\n",{"data":35,"body":39},{"name":4,"description":6,"license":23,"compatibility":36,"metadata":37},"Requires the remotely hosted LaunchDarkly MCP server",{"author":8,"version":38},"1.0.0-experimental",{"type":40,"children":41},"root",[42,51,57,111,118,123,131,147,155,191,199,224,230,243,249,256,261,294,300,328,499,509,515,527,535,604,612,721,731,744,749,1096,1105,1126,1131,1607,1615,1637,1642,1648,1653,1687,1711,1717,1729,1752,1823,1831,1860,1866,1902,1909,1914,2075,2081,2099,2111,2252,2257,2412,2417,2505,2532,2538,2549,2586,2598,2604,2680,2686,2785,2791,2805,2810,2863,2869,2904],{"type":43,"tag":44,"props":45,"children":47},"element","h1",{"id":46},"create-config",[48],{"type":49,"value":50},"text","Create Config",{"type":43,"tag":52,"props":53,"children":54},"p",{},[55],{"type":49,"value":56},"You're using a skill that will guide you through creating a config in LaunchDarkly. Your job is to understand the use case, choose the right mode, create the config and its variations, and verify everything is set up correctly.",{"type":43,"tag":58,"props":59,"children":60},"blockquote",{},[61],{"type":43,"tag":52,"props":62,"children":63},{},[64,70,72,77,79,86,88,101,103,109],{"type":43,"tag":65,"props":66,"children":67},"strong",{},[68],{"type":49,"value":69},"⚠️ This skill creates a config — it does not make it servable.",{"type":49,"value":71}," A freshly-created config has its ",{"type":43,"tag":65,"props":73,"children":74},{},[75],{"type":49,"value":76},"fallthrough pointing at an auto-generated disabled variation",{"type":49,"value":78},", not at the variation you just created. The SDK will return ",{"type":43,"tag":80,"props":81,"children":83},"code",{"className":82},[],[84],{"type":49,"value":85},"ai_config.enabled=False",{"type":49,"value":87}," on every evaluation until you flip targeting on and point the fallthrough at your new variation. This is not a bug — it's the default state. ",{"type":43,"tag":65,"props":89,"children":90},{},[91,93,99],{"type":49,"value":92},"You must run ",{"type":43,"tag":80,"props":94,"children":96},{"className":95},[],[97],{"type":49,"value":98},"\u002Fconfigs-targeting",{"type":49,"value":100}," (or the equivalent REST \u002F CLI call shown in Step 5) before verifying against the SDK",{"type":49,"value":102},", or verification will look like the LD-served path is broken when it isn't. The single most common failure mode users hit with this skill is skipping the targeting step and spending time debugging ",{"type":43,"tag":80,"props":104,"children":106},{"className":105},[],[107],{"type":49,"value":108},"enabled=False",{"type":49,"value":110}," in their application code.",{"type":43,"tag":112,"props":113,"children":115},"h2",{"id":114},"prerequisites",[116],{"type":49,"value":117},"Prerequisites",{"type":43,"tag":52,"props":119,"children":120},{},[121],{"type":49,"value":122},"This skill requires the remotely hosted LaunchDarkly MCP server to be configured in your environment.",{"type":43,"tag":52,"props":124,"children":125},{},[126],{"type":43,"tag":65,"props":127,"children":128},{},[129],{"type":49,"value":130},"Primary MCP tool:",{"type":43,"tag":132,"props":133,"children":134},"ul",{},[135],{"type":43,"tag":136,"props":137,"children":138},"li",{},[139,145],{"type":43,"tag":80,"props":140,"children":142},{"className":141},[],[143],{"type":49,"value":144},"setup-ai-config",{"type":49,"value":146}," -- create a config with its first variation in one step (recommended)",{"type":43,"tag":52,"props":148,"children":149},{},[150],{"type":43,"tag":65,"props":151,"children":152},{},[153],{"type":49,"value":154},"Alternative MCP tools (for more control):",{"type":43,"tag":132,"props":156,"children":157},{},[158,169,180],{"type":43,"tag":136,"props":159,"children":160},{},[161,167],{"type":43,"tag":80,"props":162,"children":164},{"className":163},[],[165],{"type":49,"value":166},"create-ai-config",{"type":49,"value":168}," -- create just the config shell (key, name, mode)",{"type":43,"tag":136,"props":170,"children":171},{},[172,178],{"type":43,"tag":80,"props":173,"children":175},{"className":174},[],[176],{"type":49,"value":177},"create-ai-config-variation",{"type":49,"value":179}," -- add a variation with model, prompts, and parameters",{"type":43,"tag":136,"props":181,"children":182},{},[183,189],{"type":43,"tag":80,"props":184,"children":186},{"className":185},[],[187],{"type":49,"value":188},"get-ai-config",{"type":49,"value":190}," -- verify the config was created correctly",{"type":43,"tag":52,"props":192,"children":193},{},[194],{"type":43,"tag":65,"props":195,"children":196},{},[197],{"type":49,"value":198},"Optional MCP tools (enhance workflow):",{"type":43,"tag":132,"props":200,"children":201},{},[202,213],{"type":43,"tag":136,"props":203,"children":204},{},[205,211],{"type":43,"tag":80,"props":206,"children":208},{"className":207},[],[209],{"type":49,"value":210},"list-ai-configs",{"type":49,"value":212}," -- browse existing configs to understand naming conventions",{"type":43,"tag":136,"props":214,"children":215},{},[216,222],{"type":43,"tag":80,"props":217,"children":219},{"className":218},[],[220],{"type":49,"value":221},"create-project",{"type":49,"value":223}," -- create a project if one doesn't exist yet",{"type":43,"tag":112,"props":225,"children":227},{"id":226},"important-bias-towards-action",[228],{"type":49,"value":229},"Important: Bias Towards Action",{"type":43,"tag":52,"props":231,"children":232},{},[233,235,241],{"type":49,"value":234},"When the user provides enough context (use case, model, mode), proceed through the entire workflow without stopping to ask for details you can infer. Use reasonable defaults for unspecified fields: ",{"type":43,"tag":80,"props":236,"children":238},{"className":237},[],[239],{"type":49,"value":240},"default",{"type":49,"value":242}," for variation key, the use case as the basis for instructions\u002Fmessages, kebab-case for config keys. Complete all steps (create + verify) in one pass.",{"type":43,"tag":112,"props":244,"children":246},{"id":245},"workflow",[247],{"type":49,"value":248},"Workflow",{"type":43,"tag":250,"props":251,"children":253},"h3",{"id":252},"step-1-understand-the-use-case",[254],{"type":49,"value":255},"Step 1: Understand the Use Case",{"type":43,"tag":52,"props":257,"children":258},{},[259],{"type":49,"value":260},"Before creating, identify what you're building:",{"type":43,"tag":132,"props":262,"children":263},{},[264,274,284],{"type":43,"tag":136,"props":265,"children":266},{},[267,272],{"type":43,"tag":65,"props":268,"children":269},{},[270],{"type":49,"value":271},"What framework?",{"type":49,"value":273}," LangGraph, LangChain, CrewAI, Strands, OpenAI SDK, Anthropic SDK, custom",{"type":43,"tag":136,"props":275,"children":276},{},[277,282],{"type":43,"tag":65,"props":278,"children":279},{},[280],{"type":49,"value":281},"What does the agent need?",{"type":49,"value":283}," Just text generation, or tools\u002Ffunction calling?",{"type":43,"tag":136,"props":285,"children":286},{},[287,292],{"type":43,"tag":65,"props":288,"children":289},{},[290],{"type":49,"value":291},"Agent or completion?",{"type":49,"value":293}," See the decision matrix below",{"type":43,"tag":250,"props":295,"children":297},{"id":296},"step-2-choose-agent-vs-completion-mode",[298],{"type":49,"value":299},"Step 2: Choose Agent vs Completion Mode",{"type":43,"tag":52,"props":301,"children":302},{},[303,305,310,312,318,320,326],{"type":49,"value":304},"This choice is about ",{"type":43,"tag":65,"props":306,"children":307},{},[308],{"type":49,"value":309},"input schema and framework compatibility",{"type":49,"value":311},", not execution behavior. Agent mode returns an ",{"type":43,"tag":80,"props":313,"children":315},{"className":314},[],[316],{"type":49,"value":317},"instructions",{"type":49,"value":319}," string; completion mode returns a ",{"type":43,"tag":80,"props":321,"children":323},{"className":322},[],[324],{"type":49,"value":325},"messages",{"type":49,"value":327}," array. Both provide provider abstraction, A\u002FB testing, and metrics tracking.",{"type":43,"tag":329,"props":330,"children":331},"table",{},[332,356],{"type":43,"tag":333,"props":334,"children":335},"thead",{},[336],{"type":43,"tag":337,"props":338,"children":339},"tr",{},[340,346,351],{"type":43,"tag":341,"props":342,"children":343},"th",{},[344],{"type":49,"value":345},"Your Need",{"type":43,"tag":341,"props":347,"children":348},{},[349],{"type":49,"value":350},"Mode",{"type":43,"tag":341,"props":352,"children":353},{},[354],{"type":49,"value":355},"Why",{"type":43,"tag":357,"props":358,"children":359},"tbody",{},[360,382,418,439,459,479],{"type":43,"tag":337,"props":361,"children":362},{},[363,369,377],{"type":43,"tag":364,"props":365,"children":366},"td",{},[367],{"type":49,"value":368},"LangGraph, CrewAI, Strands, AutoGen frameworks",{"type":43,"tag":364,"props":370,"children":371},{},[372],{"type":43,"tag":65,"props":373,"children":374},{},[375],{"type":49,"value":376},"Agent",{"type":43,"tag":364,"props":378,"children":379},{},[380],{"type":49,"value":381},"Frameworks expect goal\u002Finstruction input",{"type":43,"tag":337,"props":383,"children":384},{},[385,390,397],{"type":43,"tag":364,"props":386,"children":387},{},[388],{"type":49,"value":389},"Persistent instructions across interactions",{"type":43,"tag":364,"props":391,"children":392},{},[393],{"type":43,"tag":65,"props":394,"children":395},{},[396],{"type":49,"value":376},{"type":43,"tag":364,"props":398,"children":399},{},[400,402,408,410,416],{"type":49,"value":401},"Single instructions string, SDK method: ",{"type":43,"tag":80,"props":403,"children":405},{"className":404},[],[406],{"type":49,"value":407},"agent_config()",{"type":49,"value":409}," (Python) \u002F ",{"type":43,"tag":80,"props":411,"children":413},{"className":412},[],[414],{"type":49,"value":415},"agentConfig()",{"type":49,"value":417}," (Node)",{"type":43,"tag":337,"props":419,"children":420},{},[421,426,434],{"type":43,"tag":364,"props":422,"children":423},{},[424],{"type":49,"value":425},"Direct OpenAI\u002FAnthropic API calls",{"type":43,"tag":364,"props":427,"children":428},{},[429],{"type":43,"tag":65,"props":430,"children":431},{},[432],{"type":49,"value":433},"Completion",{"type":43,"tag":364,"props":435,"children":436},{},[437],{"type":49,"value":438},"Messages array maps directly to provider APIs",{"type":43,"tag":337,"props":440,"children":441},{},[442,447,454],{"type":43,"tag":364,"props":443,"children":444},{},[445],{"type":49,"value":446},"Full control of message structure",{"type":43,"tag":364,"props":448,"children":449},{},[450],{"type":43,"tag":65,"props":451,"children":452},{},[453],{"type":49,"value":433},{"type":43,"tag":364,"props":455,"children":456},{},[457],{"type":49,"value":458},"System\u002Fuser\u002Fassistant role-based messages",{"type":43,"tag":337,"props":460,"children":461},{},[462,467,474],{"type":43,"tag":364,"props":463,"children":464},{},[465],{"type":49,"value":466},"One-off text generation",{"type":43,"tag":364,"props":468,"children":469},{},[470],{"type":43,"tag":65,"props":471,"children":472},{},[473],{"type":49,"value":433},{"type":43,"tag":364,"props":475,"children":476},{},[477],{"type":49,"value":478},"Standard chat format",{"type":43,"tag":337,"props":480,"children":481},{},[482,487,494],{"type":43,"tag":364,"props":483,"children":484},{},[485],{"type":49,"value":486},"Need online evaluations (LLM-as-judge)",{"type":43,"tag":364,"props":488,"children":489},{},[490],{"type":43,"tag":65,"props":491,"children":492},{},[493],{"type":49,"value":433},{"type":43,"tag":364,"props":495,"children":496},{},[497],{"type":49,"value":498},"Online evals are only available in completion mode",{"type":43,"tag":52,"props":500,"children":501},{},[502,507],{"type":43,"tag":65,"props":503,"children":504},{},[505],{"type":49,"value":506},"Both modes support tools.",{"type":49,"value":508}," Not all models support agent mode -- check model compatibility if using agent mode. If unsure, start with completion mode (it's the API default and more flexible).",{"type":43,"tag":250,"props":510,"children":512},{"id":511},"step-3-create-the-config-recommended-one-step",[513],{"type":49,"value":514},"Step 3: Create the Config (Recommended: One Step)",{"type":43,"tag":52,"props":516,"children":517},{},[518,520,525],{"type":49,"value":519},"Use ",{"type":43,"tag":80,"props":521,"children":523},{"className":522},[],[524],{"type":49,"value":144},{"type":49,"value":526}," to create the config and its first variation in one call. This is the recommended approach: it handles creation, variation setup, and verification automatically.",{"type":43,"tag":52,"props":528,"children":529},{},[530],{"type":43,"tag":65,"props":531,"children":532},{},[533],{"type":49,"value":534},"Config fields:",{"type":43,"tag":132,"props":536,"children":537},{},[538,549,560,585],{"type":43,"tag":136,"props":539,"children":540},{},[541,547],{"type":43,"tag":80,"props":542,"children":544},{"className":543},[],[545],{"type":49,"value":546},"key",{"type":49,"value":548}," -- unique identifier (lowercase, hyphens)",{"type":43,"tag":136,"props":550,"children":551},{},[552,558],{"type":43,"tag":80,"props":553,"children":555},{"className":554},[],[556],{"type":49,"value":557},"name",{"type":49,"value":559}," -- human-readable name",{"type":43,"tag":136,"props":561,"children":562},{},[563,569,571,577,579],{"type":43,"tag":80,"props":564,"children":566},{"className":565},[],[567],{"type":49,"value":568},"mode",{"type":49,"value":570}," -- ",{"type":43,"tag":80,"props":572,"children":574},{"className":573},[],[575],{"type":49,"value":576},"\"agent\"",{"type":49,"value":578}," or ",{"type":43,"tag":80,"props":580,"children":582},{"className":581},[],[583],{"type":49,"value":584},"\"completion\"",{"type":43,"tag":136,"props":586,"children":587},{},[588,590,596,598],{"type":49,"value":589},"Optional: ",{"type":43,"tag":80,"props":591,"children":593},{"className":592},[],[594],{"type":49,"value":595},"description",{"type":49,"value":597},", ",{"type":43,"tag":80,"props":599,"children":601},{"className":600},[],[602],{"type":49,"value":603},"tags",{"type":43,"tag":52,"props":605,"children":606},{},[607],{"type":43,"tag":65,"props":608,"children":609},{},[610],{"type":49,"value":611},"Variation fields:",{"type":43,"tag":132,"props":613,"children":614},{},[615,633,667],{"type":43,"tag":136,"props":616,"children":617},{},[618,624,625,631],{"type":43,"tag":80,"props":619,"children":621},{"className":620},[],[622],{"type":49,"value":623},"variationKey",{"type":49,"value":597},{"type":43,"tag":80,"props":626,"children":628},{"className":627},[],[629],{"type":49,"value":630},"variationName",{"type":49,"value":632}," -- identifiers for the first variation",{"type":43,"tag":136,"props":634,"children":635},{},[636,642,644,650,652,658,659,665],{"type":43,"tag":80,"props":637,"children":639},{"className":638},[],[640],{"type":49,"value":641},"modelConfigKey",{"type":49,"value":643}," -- must be ",{"type":43,"tag":80,"props":645,"children":647},{"className":646},[],[648],{"type":49,"value":649},"Provider.model-id",{"type":49,"value":651}," format (e.g., ",{"type":43,"tag":80,"props":653,"children":655},{"className":654},[],[656],{"type":49,"value":657},"OpenAI.gpt-4o",{"type":49,"value":597},{"type":43,"tag":80,"props":660,"children":662},{"className":661},[],[663],{"type":49,"value":664},"Anthropic.claude-sonnet-4-5",{"type":49,"value":666},")",{"type":43,"tag":136,"props":668,"children":669},{},[670,676,678,684,686,691,693,698,700,705,707,712,713,719],{"type":43,"tag":80,"props":671,"children":673},{"className":672},[],[674],{"type":49,"value":675},"modelName",{"type":49,"value":677}," -- the model identifier (e.g., ",{"type":43,"tag":80,"props":679,"children":681},{"className":680},[],[682],{"type":49,"value":683},"gpt-4o",{"type":49,"value":685},"). ",{"type":43,"tag":65,"props":687,"children":688},{},[689],{"type":49,"value":690},"Always pass this in the initial call",{"type":49,"value":692}," — leaving it off produces a variation that displays \"NO MODEL\" and forces a second PATCH to set it. The field is ",{"type":43,"tag":80,"props":694,"children":696},{"className":695},[],[697],{"type":49,"value":675},{"type":49,"value":699},"; it is ",{"type":43,"tag":65,"props":701,"children":702},{},[703],{"type":49,"value":704},"not",{"type":49,"value":706}," ",{"type":43,"tag":80,"props":708,"children":710},{"className":709},[],[711],{"type":49,"value":557},{"type":49,"value":578},{"type":43,"tag":80,"props":714,"children":716},{"className":715},[],[717],{"type":49,"value":718},"model.name",{"type":49,"value":720}," on this endpoint.",{"type":43,"tag":52,"props":722,"children":723},{},[724,729],{"type":43,"tag":65,"props":725,"children":726},{},[727],{"type":49,"value":728},"For agent mode",{"type":49,"value":730},", provide:",{"type":43,"tag":132,"props":732,"children":733},{},[734],{"type":43,"tag":136,"props":735,"children":736},{},[737,742],{"type":43,"tag":80,"props":738,"children":740},{"className":739},[],[741],{"type":49,"value":317},{"type":49,"value":743}," -- a string with the agent's system instructions",{"type":43,"tag":52,"props":745,"children":746},{},[747],{"type":49,"value":748},"Example agent-mode call:",{"type":43,"tag":750,"props":751,"children":756},"pre",{"className":752,"code":753,"language":754,"meta":755,"style":755},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"projectKey\": \"my-project\", \"key\": \"support-agent\", \"name\": \"Support Agent\",\n  \"mode\": \"agent\", \"variationKey\": \"default\", \"variationName\": \"Default\",\n  \"modelConfigKey\": \"OpenAI.gpt-4o\", \"modelName\": \"gpt-4o\",\n  \"instructions\": \"You are a customer support agent. Help users resolve their issues.\"\n}\n","json","",[757],{"type":43,"tag":80,"props":758,"children":759},{"__ignoreMap":755},[760,772,884,986,1054,1088],{"type":43,"tag":761,"props":762,"children":765},"span",{"class":763,"line":764},"line",1,[766],{"type":43,"tag":761,"props":767,"children":769},{"style":768},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[770],{"type":49,"value":771},"{\n",{"type":43,"tag":761,"props":773,"children":775},{"class":763,"line":774},2,[776,781,787,792,797,802,808,812,817,821,825,829,833,837,842,846,850,854,858,862,866,870,875,879],{"type":43,"tag":761,"props":777,"children":778},{"style":768},[779],{"type":49,"value":780},"  \"",{"type":43,"tag":761,"props":782,"children":784},{"style":783},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[785],{"type":49,"value":786},"projectKey",{"type":43,"tag":761,"props":788,"children":789},{"style":768},[790],{"type":49,"value":791},"\"",{"type":43,"tag":761,"props":793,"children":794},{"style":768},[795],{"type":49,"value":796},":",{"type":43,"tag":761,"props":798,"children":799},{"style":768},[800],{"type":49,"value":801}," \"",{"type":43,"tag":761,"props":803,"children":805},{"style":804},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[806],{"type":49,"value":807},"my-project",{"type":43,"tag":761,"props":809,"children":810},{"style":768},[811],{"type":49,"value":791},{"type":43,"tag":761,"props":813,"children":814},{"style":768},[815],{"type":49,"value":816},",",{"type":43,"tag":761,"props":818,"children":819},{"style":768},[820],{"type":49,"value":801},{"type":43,"tag":761,"props":822,"children":823},{"style":783},[824],{"type":49,"value":546},{"type":43,"tag":761,"props":826,"children":827},{"style":768},[828],{"type":49,"value":791},{"type":43,"tag":761,"props":830,"children":831},{"style":768},[832],{"type":49,"value":796},{"type":43,"tag":761,"props":834,"children":835},{"style":768},[836],{"type":49,"value":801},{"type":43,"tag":761,"props":838,"children":839},{"style":804},[840],{"type":49,"value":841},"support-agent",{"type":43,"tag":761,"props":843,"children":844},{"style":768},[845],{"type":49,"value":791},{"type":43,"tag":761,"props":847,"children":848},{"style":768},[849],{"type":49,"value":816},{"type":43,"tag":761,"props":851,"children":852},{"style":768},[853],{"type":49,"value":801},{"type":43,"tag":761,"props":855,"children":856},{"style":783},[857],{"type":49,"value":557},{"type":43,"tag":761,"props":859,"children":860},{"style":768},[861],{"type":49,"value":791},{"type":43,"tag":761,"props":863,"children":864},{"style":768},[865],{"type":49,"value":796},{"type":43,"tag":761,"props":867,"children":868},{"style":768},[869],{"type":49,"value":801},{"type":43,"tag":761,"props":871,"children":872},{"style":804},[873],{"type":49,"value":874},"Support Agent",{"type":43,"tag":761,"props":876,"children":877},{"style":768},[878],{"type":49,"value":791},{"type":43,"tag":761,"props":880,"children":881},{"style":768},[882],{"type":49,"value":883},",\n",{"type":43,"tag":761,"props":885,"children":887},{"class":763,"line":886},3,[888,892,896,900,904,908,913,917,921,925,929,933,937,941,945,949,953,957,961,965,969,973,978,982],{"type":43,"tag":761,"props":889,"children":890},{"style":768},[891],{"type":49,"value":780},{"type":43,"tag":761,"props":893,"children":894},{"style":783},[895],{"type":49,"value":568},{"type":43,"tag":761,"props":897,"children":898},{"style":768},[899],{"type":49,"value":791},{"type":43,"tag":761,"props":901,"children":902},{"style":768},[903],{"type":49,"value":796},{"type":43,"tag":761,"props":905,"children":906},{"style":768},[907],{"type":49,"value":801},{"type":43,"tag":761,"props":909,"children":910},{"style":804},[911],{"type":49,"value":912},"agent",{"type":43,"tag":761,"props":914,"children":915},{"style":768},[916],{"type":49,"value":791},{"type":43,"tag":761,"props":918,"children":919},{"style":768},[920],{"type":49,"value":816},{"type":43,"tag":761,"props":922,"children":923},{"style":768},[924],{"type":49,"value":801},{"type":43,"tag":761,"props":926,"children":927},{"style":783},[928],{"type":49,"value":623},{"type":43,"tag":761,"props":930,"children":931},{"style":768},[932],{"type":49,"value":791},{"type":43,"tag":761,"props":934,"children":935},{"style":768},[936],{"type":49,"value":796},{"type":43,"tag":761,"props":938,"children":939},{"style":768},[940],{"type":49,"value":801},{"type":43,"tag":761,"props":942,"children":943},{"style":804},[944],{"type":49,"value":240},{"type":43,"tag":761,"props":946,"children":947},{"style":768},[948],{"type":49,"value":791},{"type":43,"tag":761,"props":950,"children":951},{"style":768},[952],{"type":49,"value":816},{"type":43,"tag":761,"props":954,"children":955},{"style":768},[956],{"type":49,"value":801},{"type":43,"tag":761,"props":958,"children":959},{"style":783},[960],{"type":49,"value":630},{"type":43,"tag":761,"props":962,"children":963},{"style":768},[964],{"type":49,"value":791},{"type":43,"tag":761,"props":966,"children":967},{"style":768},[968],{"type":49,"value":796},{"type":43,"tag":761,"props":970,"children":971},{"style":768},[972],{"type":49,"value":801},{"type":43,"tag":761,"props":974,"children":975},{"style":804},[976],{"type":49,"value":977},"Default",{"type":43,"tag":761,"props":979,"children":980},{"style":768},[981],{"type":49,"value":791},{"type":43,"tag":761,"props":983,"children":984},{"style":768},[985],{"type":49,"value":883},{"type":43,"tag":761,"props":987,"children":989},{"class":763,"line":988},4,[990,994,998,1002,1006,1010,1014,1018,1022,1026,1030,1034,1038,1042,1046,1050],{"type":43,"tag":761,"props":991,"children":992},{"style":768},[993],{"type":49,"value":780},{"type":43,"tag":761,"props":995,"children":996},{"style":783},[997],{"type":49,"value":641},{"type":43,"tag":761,"props":999,"children":1000},{"style":768},[1001],{"type":49,"value":791},{"type":43,"tag":761,"props":1003,"children":1004},{"style":768},[1005],{"type":49,"value":796},{"type":43,"tag":761,"props":1007,"children":1008},{"style":768},[1009],{"type":49,"value":801},{"type":43,"tag":761,"props":1011,"children":1012},{"style":804},[1013],{"type":49,"value":657},{"type":43,"tag":761,"props":1015,"children":1016},{"style":768},[1017],{"type":49,"value":791},{"type":43,"tag":761,"props":1019,"children":1020},{"style":768},[1021],{"type":49,"value":816},{"type":43,"tag":761,"props":1023,"children":1024},{"style":768},[1025],{"type":49,"value":801},{"type":43,"tag":761,"props":1027,"children":1028},{"style":783},[1029],{"type":49,"value":675},{"type":43,"tag":761,"props":1031,"children":1032},{"style":768},[1033],{"type":49,"value":791},{"type":43,"tag":761,"props":1035,"children":1036},{"style":768},[1037],{"type":49,"value":796},{"type":43,"tag":761,"props":1039,"children":1040},{"style":768},[1041],{"type":49,"value":801},{"type":43,"tag":761,"props":1043,"children":1044},{"style":804},[1045],{"type":49,"value":683},{"type":43,"tag":761,"props":1047,"children":1048},{"style":768},[1049],{"type":49,"value":791},{"type":43,"tag":761,"props":1051,"children":1052},{"style":768},[1053],{"type":49,"value":883},{"type":43,"tag":761,"props":1055,"children":1057},{"class":763,"line":1056},5,[1058,1062,1066,1070,1074,1078,1083],{"type":43,"tag":761,"props":1059,"children":1060},{"style":768},[1061],{"type":49,"value":780},{"type":43,"tag":761,"props":1063,"children":1064},{"style":783},[1065],{"type":49,"value":317},{"type":43,"tag":761,"props":1067,"children":1068},{"style":768},[1069],{"type":49,"value":791},{"type":43,"tag":761,"props":1071,"children":1072},{"style":768},[1073],{"type":49,"value":796},{"type":43,"tag":761,"props":1075,"children":1076},{"style":768},[1077],{"type":49,"value":801},{"type":43,"tag":761,"props":1079,"children":1080},{"style":804},[1081],{"type":49,"value":1082},"You are a customer support agent. Help users resolve their issues.",{"type":43,"tag":761,"props":1084,"children":1085},{"style":768},[1086],{"type":49,"value":1087},"\"\n",{"type":43,"tag":761,"props":1089,"children":1090},{"class":763,"line":24},[1091],{"type":43,"tag":761,"props":1092,"children":1093},{"style":768},[1094],{"type":49,"value":1095},"}\n",{"type":43,"tag":52,"props":1097,"children":1098},{},[1099,1104],{"type":43,"tag":65,"props":1100,"children":1101},{},[1102],{"type":49,"value":1103},"For completion mode",{"type":49,"value":730},{"type":43,"tag":132,"props":1106,"children":1107},{},[1108],{"type":43,"tag":136,"props":1109,"children":1110},{},[1111,1116,1118,1124],{"type":43,"tag":80,"props":1112,"children":1114},{"className":1113},[],[1115],{"type":49,"value":325},{"type":49,"value":1117}," -- an array of ",{"type":43,"tag":80,"props":1119,"children":1121},{"className":1120},[],[1122],{"type":49,"value":1123},"{role, content}",{"type":49,"value":1125}," objects (system, user, assistant)",{"type":43,"tag":52,"props":1127,"children":1128},{},[1129],{"type":49,"value":1130},"Example completion-mode call:",{"type":43,"tag":750,"props":1132,"children":1134},{"className":752,"code":1133,"language":754,"meta":755,"style":755},"{\n  \"projectKey\": \"my-project\", \"key\": \"product-descriptions\", \"name\": \"Product Descriptions\",\n  \"mode\": \"completion\", \"variationKey\": \"default\", \"variationName\": \"Default\",\n  \"modelConfigKey\": \"Anthropic.claude-sonnet-4-5\", \"modelName\": \"claude-sonnet-4-5\",\n  \"messages\": [\n    {\"role\": \"system\", \"content\": \"You are a product copywriter. Write compelling descriptions.\"},\n    {\"role\": \"user\", \"content\": \"Write a description for: {{product_name}}\"}\n  ]\n}\n",[1135],{"type":43,"tag":80,"props":1136,"children":1137},{"__ignoreMap":755},[1138,1145,1246,1346,1414,1438,1516,1590,1599],{"type":43,"tag":761,"props":1139,"children":1140},{"class":763,"line":764},[1141],{"type":43,"tag":761,"props":1142,"children":1143},{"style":768},[1144],{"type":49,"value":771},{"type":43,"tag":761,"props":1146,"children":1147},{"class":763,"line":774},[1148,1152,1156,1160,1164,1168,1172,1176,1180,1184,1188,1192,1196,1200,1205,1209,1213,1217,1221,1225,1229,1233,1238,1242],{"type":43,"tag":761,"props":1149,"children":1150},{"style":768},[1151],{"type":49,"value":780},{"type":43,"tag":761,"props":1153,"children":1154},{"style":783},[1155],{"type":49,"value":786},{"type":43,"tag":761,"props":1157,"children":1158},{"style":768},[1159],{"type":49,"value":791},{"type":43,"tag":761,"props":1161,"children":1162},{"style":768},[1163],{"type":49,"value":796},{"type":43,"tag":761,"props":1165,"children":1166},{"style":768},[1167],{"type":49,"value":801},{"type":43,"tag":761,"props":1169,"children":1170},{"style":804},[1171],{"type":49,"value":807},{"type":43,"tag":761,"props":1173,"children":1174},{"style":768},[1175],{"type":49,"value":791},{"type":43,"tag":761,"props":1177,"children":1178},{"style":768},[1179],{"type":49,"value":816},{"type":43,"tag":761,"props":1181,"children":1182},{"style":768},[1183],{"type":49,"value":801},{"type":43,"tag":761,"props":1185,"children":1186},{"style":783},[1187],{"type":49,"value":546},{"type":43,"tag":761,"props":1189,"children":1190},{"style":768},[1191],{"type":49,"value":791},{"type":43,"tag":761,"props":1193,"children":1194},{"style":768},[1195],{"type":49,"value":796},{"type":43,"tag":761,"props":1197,"children":1198},{"style":768},[1199],{"type":49,"value":801},{"type":43,"tag":761,"props":1201,"children":1202},{"style":804},[1203],{"type":49,"value":1204},"product-descriptions",{"type":43,"tag":761,"props":1206,"children":1207},{"style":768},[1208],{"type":49,"value":791},{"type":43,"tag":761,"props":1210,"children":1211},{"style":768},[1212],{"type":49,"value":816},{"type":43,"tag":761,"props":1214,"children":1215},{"style":768},[1216],{"type":49,"value":801},{"type":43,"tag":761,"props":1218,"children":1219},{"style":783},[1220],{"type":49,"value":557},{"type":43,"tag":761,"props":1222,"children":1223},{"style":768},[1224],{"type":49,"value":791},{"type":43,"tag":761,"props":1226,"children":1227},{"style":768},[1228],{"type":49,"value":796},{"type":43,"tag":761,"props":1230,"children":1231},{"style":768},[1232],{"type":49,"value":801},{"type":43,"tag":761,"props":1234,"children":1235},{"style":804},[1236],{"type":49,"value":1237},"Product Descriptions",{"type":43,"tag":761,"props":1239,"children":1240},{"style":768},[1241],{"type":49,"value":791},{"type":43,"tag":761,"props":1243,"children":1244},{"style":768},[1245],{"type":49,"value":883},{"type":43,"tag":761,"props":1247,"children":1248},{"class":763,"line":886},[1249,1253,1257,1261,1265,1269,1274,1278,1282,1286,1290,1294,1298,1302,1306,1310,1314,1318,1322,1326,1330,1334,1338,1342],{"type":43,"tag":761,"props":1250,"children":1251},{"style":768},[1252],{"type":49,"value":780},{"type":43,"tag":761,"props":1254,"children":1255},{"style":783},[1256],{"type":49,"value":568},{"type":43,"tag":761,"props":1258,"children":1259},{"style":768},[1260],{"type":49,"value":791},{"type":43,"tag":761,"props":1262,"children":1263},{"style":768},[1264],{"type":49,"value":796},{"type":43,"tag":761,"props":1266,"children":1267},{"style":768},[1268],{"type":49,"value":801},{"type":43,"tag":761,"props":1270,"children":1271},{"style":804},[1272],{"type":49,"value":1273},"completion",{"type":43,"tag":761,"props":1275,"children":1276},{"style":768},[1277],{"type":49,"value":791},{"type":43,"tag":761,"props":1279,"children":1280},{"style":768},[1281],{"type":49,"value":816},{"type":43,"tag":761,"props":1283,"children":1284},{"style":768},[1285],{"type":49,"value":801},{"type":43,"tag":761,"props":1287,"children":1288},{"style":783},[1289],{"type":49,"value":623},{"type":43,"tag":761,"props":1291,"children":1292},{"style":768},[1293],{"type":49,"value":791},{"type":43,"tag":761,"props":1295,"children":1296},{"style":768},[1297],{"type":49,"value":796},{"type":43,"tag":761,"props":1299,"children":1300},{"style":768},[1301],{"type":49,"value":801},{"type":43,"tag":761,"props":1303,"children":1304},{"style":804},[1305],{"type":49,"value":240},{"type":43,"tag":761,"props":1307,"children":1308},{"style":768},[1309],{"type":49,"value":791},{"type":43,"tag":761,"props":1311,"children":1312},{"style":768},[1313],{"type":49,"value":816},{"type":43,"tag":761,"props":1315,"children":1316},{"style":768},[1317],{"type":49,"value":801},{"type":43,"tag":761,"props":1319,"children":1320},{"style":783},[1321],{"type":49,"value":630},{"type":43,"tag":761,"props":1323,"children":1324},{"style":768},[1325],{"type":49,"value":791},{"type":43,"tag":761,"props":1327,"children":1328},{"style":768},[1329],{"type":49,"value":796},{"type":43,"tag":761,"props":1331,"children":1332},{"style":768},[1333],{"type":49,"value":801},{"type":43,"tag":761,"props":1335,"children":1336},{"style":804},[1337],{"type":49,"value":977},{"type":43,"tag":761,"props":1339,"children":1340},{"style":768},[1341],{"type":49,"value":791},{"type":43,"tag":761,"props":1343,"children":1344},{"style":768},[1345],{"type":49,"value":883},{"type":43,"tag":761,"props":1347,"children":1348},{"class":763,"line":988},[1349,1353,1357,1361,1365,1369,1373,1377,1381,1385,1389,1393,1397,1401,1406,1410],{"type":43,"tag":761,"props":1350,"children":1351},{"style":768},[1352],{"type":49,"value":780},{"type":43,"tag":761,"props":1354,"children":1355},{"style":783},[1356],{"type":49,"value":641},{"type":43,"tag":761,"props":1358,"children":1359},{"style":768},[1360],{"type":49,"value":791},{"type":43,"tag":761,"props":1362,"children":1363},{"style":768},[1364],{"type":49,"value":796},{"type":43,"tag":761,"props":1366,"children":1367},{"style":768},[1368],{"type":49,"value":801},{"type":43,"tag":761,"props":1370,"children":1371},{"style":804},[1372],{"type":49,"value":664},{"type":43,"tag":761,"props":1374,"children":1375},{"style":768},[1376],{"type":49,"value":791},{"type":43,"tag":761,"props":1378,"children":1379},{"style":768},[1380],{"type":49,"value":816},{"type":43,"tag":761,"props":1382,"children":1383},{"style":768},[1384],{"type":49,"value":801},{"type":43,"tag":761,"props":1386,"children":1387},{"style":783},[1388],{"type":49,"value":675},{"type":43,"tag":761,"props":1390,"children":1391},{"style":768},[1392],{"type":49,"value":791},{"type":43,"tag":761,"props":1394,"children":1395},{"style":768},[1396],{"type":49,"value":796},{"type":43,"tag":761,"props":1398,"children":1399},{"style":768},[1400],{"type":49,"value":801},{"type":43,"tag":761,"props":1402,"children":1403},{"style":804},[1404],{"type":49,"value":1405},"claude-sonnet-4-5",{"type":43,"tag":761,"props":1407,"children":1408},{"style":768},[1409],{"type":49,"value":791},{"type":43,"tag":761,"props":1411,"children":1412},{"style":768},[1413],{"type":49,"value":883},{"type":43,"tag":761,"props":1415,"children":1416},{"class":763,"line":1056},[1417,1421,1425,1429,1433],{"type":43,"tag":761,"props":1418,"children":1419},{"style":768},[1420],{"type":49,"value":780},{"type":43,"tag":761,"props":1422,"children":1423},{"style":783},[1424],{"type":49,"value":325},{"type":43,"tag":761,"props":1426,"children":1427},{"style":768},[1428],{"type":49,"value":791},{"type":43,"tag":761,"props":1430,"children":1431},{"style":768},[1432],{"type":49,"value":796},{"type":43,"tag":761,"props":1434,"children":1435},{"style":768},[1436],{"type":49,"value":1437}," [\n",{"type":43,"tag":761,"props":1439,"children":1440},{"class":763,"line":24},[1441,1446,1450,1456,1460,1464,1468,1473,1477,1481,1485,1490,1494,1498,1502,1507,1511],{"type":43,"tag":761,"props":1442,"children":1443},{"style":768},[1444],{"type":49,"value":1445},"    {",{"type":43,"tag":761,"props":1447,"children":1448},{"style":768},[1449],{"type":49,"value":791},{"type":43,"tag":761,"props":1451,"children":1453},{"style":1452},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[1454],{"type":49,"value":1455},"role",{"type":43,"tag":761,"props":1457,"children":1458},{"style":768},[1459],{"type":49,"value":791},{"type":43,"tag":761,"props":1461,"children":1462},{"style":768},[1463],{"type":49,"value":796},{"type":43,"tag":761,"props":1465,"children":1466},{"style":768},[1467],{"type":49,"value":801},{"type":43,"tag":761,"props":1469,"children":1470},{"style":804},[1471],{"type":49,"value":1472},"system",{"type":43,"tag":761,"props":1474,"children":1475},{"style":768},[1476],{"type":49,"value":791},{"type":43,"tag":761,"props":1478,"children":1479},{"style":768},[1480],{"type":49,"value":816},{"type":43,"tag":761,"props":1482,"children":1483},{"style":768},[1484],{"type":49,"value":801},{"type":43,"tag":761,"props":1486,"children":1487},{"style":1452},[1488],{"type":49,"value":1489},"content",{"type":43,"tag":761,"props":1491,"children":1492},{"style":768},[1493],{"type":49,"value":791},{"type":43,"tag":761,"props":1495,"children":1496},{"style":768},[1497],{"type":49,"value":796},{"type":43,"tag":761,"props":1499,"children":1500},{"style":768},[1501],{"type":49,"value":801},{"type":43,"tag":761,"props":1503,"children":1504},{"style":804},[1505],{"type":49,"value":1506},"You are a product copywriter. Write compelling descriptions.",{"type":43,"tag":761,"props":1508,"children":1509},{"style":768},[1510],{"type":49,"value":791},{"type":43,"tag":761,"props":1512,"children":1513},{"style":768},[1514],{"type":49,"value":1515},"},\n",{"type":43,"tag":761,"props":1517,"children":1519},{"class":763,"line":1518},7,[1520,1524,1528,1532,1536,1540,1544,1549,1553,1557,1561,1565,1569,1573,1577,1582,1586],{"type":43,"tag":761,"props":1521,"children":1522},{"style":768},[1523],{"type":49,"value":1445},{"type":43,"tag":761,"props":1525,"children":1526},{"style":768},[1527],{"type":49,"value":791},{"type":43,"tag":761,"props":1529,"children":1530},{"style":1452},[1531],{"type":49,"value":1455},{"type":43,"tag":761,"props":1533,"children":1534},{"style":768},[1535],{"type":49,"value":791},{"type":43,"tag":761,"props":1537,"children":1538},{"style":768},[1539],{"type":49,"value":796},{"type":43,"tag":761,"props":1541,"children":1542},{"style":768},[1543],{"type":49,"value":801},{"type":43,"tag":761,"props":1545,"children":1546},{"style":804},[1547],{"type":49,"value":1548},"user",{"type":43,"tag":761,"props":1550,"children":1551},{"style":768},[1552],{"type":49,"value":791},{"type":43,"tag":761,"props":1554,"children":1555},{"style":768},[1556],{"type":49,"value":816},{"type":43,"tag":761,"props":1558,"children":1559},{"style":768},[1560],{"type":49,"value":801},{"type":43,"tag":761,"props":1562,"children":1563},{"style":1452},[1564],{"type":49,"value":1489},{"type":43,"tag":761,"props":1566,"children":1567},{"style":768},[1568],{"type":49,"value":791},{"type":43,"tag":761,"props":1570,"children":1571},{"style":768},[1572],{"type":49,"value":796},{"type":43,"tag":761,"props":1574,"children":1575},{"style":768},[1576],{"type":49,"value":801},{"type":43,"tag":761,"props":1578,"children":1579},{"style":804},[1580],{"type":49,"value":1581},"Write a description for: {{product_name}}",{"type":43,"tag":761,"props":1583,"children":1584},{"style":768},[1585],{"type":49,"value":791},{"type":43,"tag":761,"props":1587,"children":1588},{"style":768},[1589],{"type":49,"value":1095},{"type":43,"tag":761,"props":1591,"children":1593},{"class":763,"line":1592},8,[1594],{"type":43,"tag":761,"props":1595,"children":1596},{"style":768},[1597],{"type":49,"value":1598},"  ]\n",{"type":43,"tag":761,"props":1600,"children":1602},{"class":763,"line":1601},9,[1603],{"type":43,"tag":761,"props":1604,"children":1605},{"style":768},[1606],{"type":49,"value":1095},{"type":43,"tag":52,"props":1608,"children":1609},{},[1610],{"type":43,"tag":65,"props":1611,"children":1612},{},[1613],{"type":49,"value":1614},"Optional:",{"type":43,"tag":132,"props":1616,"children":1617},{},[1618],{"type":43,"tag":136,"props":1619,"children":1620},{},[1621,1627,1629,1635],{"type":43,"tag":80,"props":1622,"children":1624},{"className":1623},[],[1625],{"type":49,"value":1626},"parameters",{"type":49,"value":1628}," -- model parameters like ",{"type":43,"tag":80,"props":1630,"children":1632},{"className":1631},[],[1633],{"type":49,"value":1634},"{temperature: 0.7, max_tokens: 2000}",{"type":49,"value":1636}," (match the UI's snake_case keys)",{"type":43,"tag":52,"props":1638,"children":1639},{},[1640],{"type":49,"value":1641},"The tool returns the full verified config detail with the variation attached.",{"type":43,"tag":250,"props":1643,"children":1645},{"id":1644},"step-3-alternative-two-step-creation",[1646],{"type":49,"value":1647},"Step 3 (Alternative): Two-Step Creation",{"type":43,"tag":52,"props":1649,"children":1650},{},[1651],{"type":49,"value":1652},"If the user asks for more control or a step-by-step approach, use the individual tools:",{"type":43,"tag":1654,"props":1655,"children":1656},"ol",{},[1657,1667,1677],{"type":43,"tag":136,"props":1658,"children":1659},{},[1660,1665],{"type":43,"tag":80,"props":1661,"children":1663},{"className":1662},[],[1664],{"type":49,"value":166},{"type":49,"value":1666}," -- create the config shell",{"type":43,"tag":136,"props":1668,"children":1669},{},[1670,1675],{"type":43,"tag":80,"props":1671,"children":1673},{"className":1672},[],[1674],{"type":49,"value":177},{"type":49,"value":1676}," -- add the variation with model, prompts, and parameters",{"type":43,"tag":136,"props":1678,"children":1679},{},[1680,1685],{"type":43,"tag":80,"props":1681,"children":1683},{"className":1682},[],[1684],{"type":49,"value":188},{"type":49,"value":1686}," -- verify the result",{"type":43,"tag":52,"props":1688,"children":1689},{},[1690,1695,1697,1702,1704,1709],{"type":43,"tag":65,"props":1691,"children":1692},{},[1693],{"type":49,"value":1694},"Execute all three steps without stopping to ask for details.",{"type":49,"value":1696}," Infer the variation key (",{"type":43,"tag":80,"props":1698,"children":1700},{"className":1699},[],[1701],{"type":49,"value":240},{"type":49,"value":1703},"), name (",{"type":43,"tag":80,"props":1705,"children":1707},{"className":1706},[],[1708],{"type":49,"value":977},{"type":49,"value":1710},"), instructions\u002Fmessages, and model from the user's request context. If the user asked for GPT-4o agent mode, you have enough to complete the entire flow. Only ask clarifying questions if the mode or model is truly ambiguous.",{"type":43,"tag":250,"props":1712,"children":1714},{"id":1713},"step-4-verify",[1715],{"type":49,"value":1716},"Step 4: Verify",{"type":43,"tag":52,"props":1718,"children":1719},{},[1720,1722,1727],{"type":49,"value":1721},"If you used ",{"type":43,"tag":80,"props":1723,"children":1725},{"className":1724},[],[1726],{"type":49,"value":144},{"type":49,"value":1728},", verification is automatic: the response includes the full config with variations. Check:",{"type":43,"tag":1654,"props":1730,"children":1731},{},[1732,1737,1742,1747],{"type":43,"tag":136,"props":1733,"children":1734},{},[1735],{"type":49,"value":1736},"Config exists with the correct mode",{"type":43,"tag":136,"props":1738,"children":1739},{},[1740],{"type":49,"value":1741},"Variation has a model assigned (not \"NO MODEL\")",{"type":43,"tag":136,"props":1743,"children":1744},{},[1745],{"type":49,"value":1746},"Instructions or messages are present",{"type":43,"tag":136,"props":1748,"children":1749},{},[1750],{"type":49,"value":1751},"Parameters are set",{"type":43,"tag":52,"props":1753,"children":1754},{},[1755,1782,1784,1789,1791,1797,1799,1805,1807,1813,1815,1821],{"type":43,"tag":65,"props":1756,"children":1757},{},[1758,1759,1764,1766,1772,1774,1780],{"type":49,"value":519},{"type":43,"tag":80,"props":1760,"children":1762},{"className":1761},[],[1763],{"type":49,"value":188},{"type":49,"value":1765}," for the verification call — do not drop to raw ",{"type":43,"tag":80,"props":1767,"children":1769},{"className":1768},[],[1770],{"type":49,"value":1771},"curl",{"type":49,"value":1773}," + ",{"type":43,"tag":80,"props":1775,"children":1777},{"className":1776},[],[1778],{"type":49,"value":1779},"jq",{"type":49,"value":1781},".",{"type":49,"value":1783}," The MCP tool returns a typed object you can inspect directly. Hand-rolled ",{"type":43,"tag":80,"props":1785,"children":1787},{"className":1786},[],[1788],{"type":49,"value":1779},{"type":49,"value":1790}," filters against the REST response routinely break: the configs detail endpoint returns the variation list under different keys depending on ",{"type":43,"tag":80,"props":1792,"children":1794},{"className":1793},[],[1795],{"type":49,"value":1796},"expand",{"type":49,"value":1798},", and a filter like ",{"type":43,"tag":80,"props":1800,"children":1802},{"className":1801},[],[1803],{"type":49,"value":1804},".variations.items[]",{"type":49,"value":1806}," will fail with ",{"type":43,"tag":80,"props":1808,"children":1810},{"className":1809},[],[1811],{"type":49,"value":1812},"Cannot index array with string \"items\"",{"type":49,"value":1814}," when the response shape is a bare array. If you must call the REST API, use ",{"type":43,"tag":80,"props":1816,"children":1818},{"className":1817},[],[1819],{"type":49,"value":1820},"jq -e .",{"type":49,"value":1822}," first to inspect the actual shape before drilling in.",{"type":43,"tag":52,"props":1824,"children":1825},{},[1826],{"type":43,"tag":65,"props":1827,"children":1828},{},[1829],{"type":49,"value":1830},"Report results:",{"type":43,"tag":132,"props":1832,"children":1833},{},[1834,1839,1844,1849],{"type":43,"tag":136,"props":1835,"children":1836},{},[1837],{"type":49,"value":1838},"Config created with correct structure",{"type":43,"tag":136,"props":1840,"children":1841},{},[1842],{"type":49,"value":1843},"Variation has model assigned",{"type":43,"tag":136,"props":1845,"children":1846},{},[1847],{"type":49,"value":1848},"Flag any missing model or parameters",{"type":43,"tag":136,"props":1850,"children":1851},{},[1852,1854],{"type":49,"value":1853},"Provide config URL: ",{"type":43,"tag":80,"props":1855,"children":1857},{"className":1856},[],[1858],{"type":49,"value":1859},"https:\u002F\u002Fapp.launchdarkly.com\u002Fprojects\u002F{projectKey}\u002Fai-configs\u002F{configKey}",{"type":43,"tag":250,"props":1861,"children":1863},{"id":1862},"step-5-make-the-variation-servable",[1864],{"type":49,"value":1865},"Step 5: Make the variation servable",{"type":43,"tag":52,"props":1867,"children":1868},{},[1869,1874,1876,1881,1883,1888,1890,1895,1897],{"type":43,"tag":80,"props":1870,"children":1872},{"className":1871},[],[1873],{"type":49,"value":144},{"type":49,"value":1875}," and ",{"type":43,"tag":80,"props":1877,"children":1879},{"className":1878},[],[1880],{"type":49,"value":177},{"type":49,"value":1882}," create the variation but ",{"type":43,"tag":65,"props":1884,"children":1885},{},[1886],{"type":49,"value":1887},"do not promote it to fallthrough",{"type":49,"value":1889},". The new config will return ",{"type":43,"tag":80,"props":1891,"children":1893},{"className":1892},[],[1894],{"type":49,"value":108},{"type":49,"value":1896}," to every consumer until targeting is updated. This is the single most common \"I created a config but my SDK still gets the fallback\" failure. ",{"type":43,"tag":65,"props":1898,"children":1899},{},[1900],{"type":49,"value":1901},"The workflow is not complete until this step is done.",{"type":43,"tag":1903,"props":1904,"children":1906},"h4",{"id":1905},"what-to-tell-the-user",[1907],{"type":49,"value":1908},"What to tell the user",{"type":43,"tag":52,"props":1910,"children":1911},{},[1912],{"type":49,"value":1913},"Print this checklist verbatim to the user after Step 4, then wait for confirmation. Do not claim the skill succeeded until the user confirms the fallthrough was flipped.",{"type":43,"tag":58,"props":1915,"children":1916},{},[1917,1922,1949,1964,2028,2033],{"type":43,"tag":52,"props":1918,"children":1919},{},[1920],{"type":49,"value":1921},"✅ Config and variation are created.",{"type":43,"tag":52,"props":1923,"children":1924},{},[1925,1927,1939,1941,1947],{"type":49,"value":1926},"🔴 ",{"type":43,"tag":65,"props":1928,"children":1929},{},[1930,1932,1937],{"type":49,"value":1931},"The SDK will return ",{"type":43,"tag":80,"props":1933,"children":1935},{"className":1934},[],[1936],{"type":49,"value":108},{"type":49,"value":1938}," until you flip targeting on.",{"type":49,"value":1940}," The fallthrough is currently pointing at an auto-generated disabled variation, not at the ",{"type":43,"tag":80,"props":1942,"children":1944},{"className":1943},[],[1945],{"type":49,"value":1946},"{variationKey}",{"type":49,"value":1948}," you just created.",{"type":43,"tag":52,"props":1950,"children":1951},{},[1952,1962],{"type":43,"tag":65,"props":1953,"children":1954},{},[1955,1957],{"type":49,"value":1956},"Next step — run ",{"type":43,"tag":80,"props":1958,"children":1960},{"className":1959},[],[1961],{"type":49,"value":98},{"type":49,"value":1963}," with these inputs:",{"type":43,"tag":132,"props":1965,"children":1966},{},[1967,1978,1989,2016],{"type":43,"tag":136,"props":1968,"children":1969},{},[1970,1972],{"type":49,"value":1971},"Project key: ",{"type":43,"tag":80,"props":1973,"children":1975},{"className":1974},[],[1976],{"type":49,"value":1977},"{projectKey}",{"type":43,"tag":136,"props":1979,"children":1980},{},[1981,1983],{"type":49,"value":1982},"Config key: ",{"type":43,"tag":80,"props":1984,"children":1986},{"className":1985},[],[1987],{"type":49,"value":1988},"{configKey}",{"type":43,"tag":136,"props":1990,"children":1991},{},[1992,1994,2000,2002,2008,2009,2015],{"type":49,"value":1993},"Environment key: the env whose SDK key is in your ",{"type":43,"tag":80,"props":1995,"children":1997},{"className":1996},[],[1998],{"type":49,"value":1999},".env",{"type":49,"value":2001}," (usually ",{"type":43,"tag":80,"props":2003,"children":2005},{"className":2004},[],[2006],{"type":49,"value":2007},"test",{"type":49,"value":578},{"type":43,"tag":80,"props":2010,"children":2012},{"className":2011},[],[2013],{"type":49,"value":2014},"production",{"type":49,"value":666},{"type":43,"tag":136,"props":2017,"children":2018},{},[2019,2021,2026],{"type":49,"value":2020},"Fallthrough variation: ",{"type":43,"tag":80,"props":2022,"children":2024},{"className":2023},[],[2025],{"type":49,"value":1946},{"type":49,"value":2027}," (the one this skill just created)",{"type":43,"tag":52,"props":2029,"children":2030},{},[2031],{"type":49,"value":2032},"Verify after targeting is flipped by:",{"type":43,"tag":1654,"props":2034,"children":2035},{},[2036,2055],{"type":43,"tag":136,"props":2037,"children":2038},{},[2039,2041,2047,2049,2054],{"type":49,"value":2040},"Opening the config in the LD UI, switching to the correct environment, and confirming \"Default rule serves: ",{"type":43,"tag":80,"props":2042,"children":2044},{"className":2043},[],[2045],{"type":49,"value":2046},"{variationName}",{"type":49,"value":2048},"\" is shown with targeting ",{"type":43,"tag":65,"props":2050,"children":2051},{},[2052],{"type":49,"value":2053},"On",{"type":49,"value":1781},{"type":43,"tag":136,"props":2056,"children":2057},{},[2058,2060,2066,2068,2074],{"type":49,"value":2059},"Running a quick test: ",{"type":43,"tag":80,"props":2061,"children":2063},{"className":2062},[],[2064],{"type":49,"value":2065},"ai_config = ai_client.{completion|agent}_config(...)",{"type":49,"value":2067}," and asserting ",{"type":43,"tag":80,"props":2069,"children":2071},{"className":2070},[],[2072],{"type":49,"value":2073},"ai_config.enabled is True",{"type":49,"value":1781},{"type":43,"tag":1903,"props":2076,"children":2078},{"id":2077},"direct-shortcut-if-the-user-wants-to-flip-targeting-without-invoking-the-sibling-skill",[2079],{"type":49,"value":2080},"Direct shortcut if the user wants to flip targeting without invoking the sibling skill",{"type":43,"tag":52,"props":2082,"children":2083},{},[2084,2090,2092,2098],{"type":43,"tag":80,"props":2085,"children":2087},{"className":2086},[],[2088],{"type":49,"value":2089},"configs-targeting",{"type":49,"value":2091}," is the canonical path — it handles percentage rollouts, targeted rules, and variation-ID lookups. But for the simplest case (\"promote the new variation to fallthrough in one environment\"), you can run the underlying semantic PATCH yourself once you know the new variation's ",{"type":43,"tag":80,"props":2093,"children":2095},{"className":2094},[],[2096],{"type":49,"value":2097},"_id",{"type":49,"value":1781},{"type":43,"tag":52,"props":2100,"children":2101},{},[2102,2104,2109],{"type":49,"value":2103},"Get the variation ID (use ",{"type":43,"tag":80,"props":2105,"children":2107},{"className":2106},[],[2108],{"type":49,"value":188},{"type":49,"value":2110}," MCP, or):",{"type":43,"tag":750,"props":2112,"children":2116},{"className":2113,"code":2114,"language":2115,"meta":755,"style":755},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -s \"https:\u002F\u002Fapp.launchdarkly.com\u002Fapi\u002Fv2\u002Fprojects\u002F$PROJECT\u002Fai-configs\u002F$CONFIG_KEY\u002Ftargeting?env=$ENV\" \\\n  -H \"Authorization: $LD_API_KEY\" -H \"LD-API-Version: beta\" \\\n  | jq '.variations[] | {key, _id}'\n","bash",[2117],{"type":43,"tag":80,"props":2118,"children":2119},{"__ignoreMap":755},[2120,2176,2224],{"type":43,"tag":761,"props":2121,"children":2122},{"class":763,"line":764},[2123,2127,2132,2136,2141,2147,2152,2157,2162,2167,2171],{"type":43,"tag":761,"props":2124,"children":2125},{"style":1452},[2126],{"type":49,"value":1771},{"type":43,"tag":761,"props":2128,"children":2129},{"style":804},[2130],{"type":49,"value":2131}," -s",{"type":43,"tag":761,"props":2133,"children":2134},{"style":768},[2135],{"type":49,"value":801},{"type":43,"tag":761,"props":2137,"children":2138},{"style":804},[2139],{"type":49,"value":2140},"https:\u002F\u002Fapp.launchdarkly.com\u002Fapi\u002Fv2\u002Fprojects\u002F",{"type":43,"tag":761,"props":2142,"children":2144},{"style":2143},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[2145],{"type":49,"value":2146},"$PROJECT",{"type":43,"tag":761,"props":2148,"children":2149},{"style":804},[2150],{"type":49,"value":2151},"\u002Fai-configs\u002F",{"type":43,"tag":761,"props":2153,"children":2154},{"style":2143},[2155],{"type":49,"value":2156},"$CONFIG_KEY",{"type":43,"tag":761,"props":2158,"children":2159},{"style":804},[2160],{"type":49,"value":2161},"\u002Ftargeting?env=",{"type":43,"tag":761,"props":2163,"children":2164},{"style":2143},[2165],{"type":49,"value":2166},"$ENV",{"type":43,"tag":761,"props":2168,"children":2169},{"style":768},[2170],{"type":49,"value":791},{"type":43,"tag":761,"props":2172,"children":2173},{"style":2143},[2174],{"type":49,"value":2175}," \\\n",{"type":43,"tag":761,"props":2177,"children":2178},{"class":763,"line":774},[2179,2184,2188,2193,2198,2202,2207,2211,2216,2220],{"type":43,"tag":761,"props":2180,"children":2181},{"style":804},[2182],{"type":49,"value":2183},"  -H",{"type":43,"tag":761,"props":2185,"children":2186},{"style":768},[2187],{"type":49,"value":801},{"type":43,"tag":761,"props":2189,"children":2190},{"style":804},[2191],{"type":49,"value":2192},"Authorization: ",{"type":43,"tag":761,"props":2194,"children":2195},{"style":2143},[2196],{"type":49,"value":2197},"$LD_API_KEY",{"type":43,"tag":761,"props":2199,"children":2200},{"style":768},[2201],{"type":49,"value":791},{"type":43,"tag":761,"props":2203,"children":2204},{"style":804},[2205],{"type":49,"value":2206}," -H",{"type":43,"tag":761,"props":2208,"children":2209},{"style":768},[2210],{"type":49,"value":801},{"type":43,"tag":761,"props":2212,"children":2213},{"style":804},[2214],{"type":49,"value":2215},"LD-API-Version: beta",{"type":43,"tag":761,"props":2217,"children":2218},{"style":768},[2219],{"type":49,"value":791},{"type":43,"tag":761,"props":2221,"children":2222},{"style":2143},[2223],{"type":49,"value":2175},{"type":43,"tag":761,"props":2225,"children":2226},{"class":763,"line":886},[2227,2232,2237,2242,2247],{"type":43,"tag":761,"props":2228,"children":2229},{"style":768},[2230],{"type":49,"value":2231},"  |",{"type":43,"tag":761,"props":2233,"children":2234},{"style":1452},[2235],{"type":49,"value":2236}," jq",{"type":43,"tag":761,"props":2238,"children":2239},{"style":768},[2240],{"type":49,"value":2241}," '",{"type":43,"tag":761,"props":2243,"children":2244},{"style":804},[2245],{"type":49,"value":2246},".variations[] | {key, _id}",{"type":43,"tag":761,"props":2248,"children":2249},{"style":768},[2250],{"type":49,"value":2251},"'\n",{"type":43,"tag":52,"props":2253,"children":2254},{},[2255],{"type":49,"value":2256},"Flip the fallthrough to point at it:",{"type":43,"tag":750,"props":2258,"children":2260},{"className":2113,"code":2259,"language":2115,"meta":755,"style":755},"curl -X PATCH \"https:\u002F\u002Fapp.launchdarkly.com\u002Fapi\u002Fv2\u002Fprojects\u002F$PROJECT\u002Fai-configs\u002F$CONFIG_KEY\u002Ftargeting?env=$ENV\" \\\n  -H \"Authorization: $LD_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson; domain-model=launchdarkly.semanticpatch\" \\\n  -H \"LD-API-Version: beta\" \\\n  -d '{\"instructions\":[{\"kind\":\"updateFallthroughVariationOrRollout\",\"variationId\":\"\u003Cid-from-step-above>\"}]}'\n",[2261],{"type":43,"tag":80,"props":2262,"children":2263},{"__ignoreMap":755},[2264,2317,2344,2368,2391],{"type":43,"tag":761,"props":2265,"children":2266},{"class":763,"line":764},[2267,2271,2276,2281,2285,2289,2293,2297,2301,2305,2309,2313],{"type":43,"tag":761,"props":2268,"children":2269},{"style":1452},[2270],{"type":49,"value":1771},{"type":43,"tag":761,"props":2272,"children":2273},{"style":804},[2274],{"type":49,"value":2275}," -X",{"type":43,"tag":761,"props":2277,"children":2278},{"style":804},[2279],{"type":49,"value":2280}," PATCH",{"type":43,"tag":761,"props":2282,"children":2283},{"style":768},[2284],{"type":49,"value":801},{"type":43,"tag":761,"props":2286,"children":2287},{"style":804},[2288],{"type":49,"value":2140},{"type":43,"tag":761,"props":2290,"children":2291},{"style":2143},[2292],{"type":49,"value":2146},{"type":43,"tag":761,"props":2294,"children":2295},{"style":804},[2296],{"type":49,"value":2151},{"type":43,"tag":761,"props":2298,"children":2299},{"style":2143},[2300],{"type":49,"value":2156},{"type":43,"tag":761,"props":2302,"children":2303},{"style":804},[2304],{"type":49,"value":2161},{"type":43,"tag":761,"props":2306,"children":2307},{"style":2143},[2308],{"type":49,"value":2166},{"type":43,"tag":761,"props":2310,"children":2311},{"style":768},[2312],{"type":49,"value":791},{"type":43,"tag":761,"props":2314,"children":2315},{"style":2143},[2316],{"type":49,"value":2175},{"type":43,"tag":761,"props":2318,"children":2319},{"class":763,"line":774},[2320,2324,2328,2332,2336,2340],{"type":43,"tag":761,"props":2321,"children":2322},{"style":804},[2323],{"type":49,"value":2183},{"type":43,"tag":761,"props":2325,"children":2326},{"style":768},[2327],{"type":49,"value":801},{"type":43,"tag":761,"props":2329,"children":2330},{"style":804},[2331],{"type":49,"value":2192},{"type":43,"tag":761,"props":2333,"children":2334},{"style":2143},[2335],{"type":49,"value":2197},{"type":43,"tag":761,"props":2337,"children":2338},{"style":768},[2339],{"type":49,"value":791},{"type":43,"tag":761,"props":2341,"children":2342},{"style":2143},[2343],{"type":49,"value":2175},{"type":43,"tag":761,"props":2345,"children":2346},{"class":763,"line":886},[2347,2351,2355,2360,2364],{"type":43,"tag":761,"props":2348,"children":2349},{"style":804},[2350],{"type":49,"value":2183},{"type":43,"tag":761,"props":2352,"children":2353},{"style":768},[2354],{"type":49,"value":801},{"type":43,"tag":761,"props":2356,"children":2357},{"style":804},[2358],{"type":49,"value":2359},"Content-Type: application\u002Fjson; domain-model=launchdarkly.semanticpatch",{"type":43,"tag":761,"props":2361,"children":2362},{"style":768},[2363],{"type":49,"value":791},{"type":43,"tag":761,"props":2365,"children":2366},{"style":2143},[2367],{"type":49,"value":2175},{"type":43,"tag":761,"props":2369,"children":2370},{"class":763,"line":988},[2371,2375,2379,2383,2387],{"type":43,"tag":761,"props":2372,"children":2373},{"style":804},[2374],{"type":49,"value":2183},{"type":43,"tag":761,"props":2376,"children":2377},{"style":768},[2378],{"type":49,"value":801},{"type":43,"tag":761,"props":2380,"children":2381},{"style":804},[2382],{"type":49,"value":2215},{"type":43,"tag":761,"props":2384,"children":2385},{"style":768},[2386],{"type":49,"value":791},{"type":43,"tag":761,"props":2388,"children":2389},{"style":2143},[2390],{"type":49,"value":2175},{"type":43,"tag":761,"props":2392,"children":2393},{"class":763,"line":1056},[2394,2399,2403,2408],{"type":43,"tag":761,"props":2395,"children":2396},{"style":804},[2397],{"type":49,"value":2398},"  -d",{"type":43,"tag":761,"props":2400,"children":2401},{"style":768},[2402],{"type":49,"value":2241},{"type":43,"tag":761,"props":2404,"children":2405},{"style":804},[2406],{"type":49,"value":2407},"{\"instructions\":[{\"kind\":\"updateFallthroughVariationOrRollout\",\"variationId\":\"\u003Cid-from-step-above>\"}]}",{"type":43,"tag":761,"props":2409,"children":2410},{"style":768},[2411],{"type":49,"value":2251},{"type":43,"tag":52,"props":2413,"children":2414},{},[2415],{"type":49,"value":2416},"Or the same thing via the LD CLI if it's installed locally:",{"type":43,"tag":750,"props":2418,"children":2420},{"className":2113,"code":2419,"language":2115,"meta":755,"style":755},"ldcli resources ai-configs update-ai-config-targeting \\\n  --projectKey $PROJECT --configKey $CONFIG_KEY --envKey $ENV \\\n  --data '{\"instructions\":[{\"kind\":\"updateFallthroughVariationOrRollout\",\"variationId\":\"\u003Cid>\"}]}'\n",[2421],{"type":43,"tag":80,"props":2422,"children":2423},{"__ignoreMap":755},[2424,2451,2484],{"type":43,"tag":761,"props":2425,"children":2426},{"class":763,"line":764},[2427,2432,2437,2442,2447],{"type":43,"tag":761,"props":2428,"children":2429},{"style":1452},[2430],{"type":49,"value":2431},"ldcli",{"type":43,"tag":761,"props":2433,"children":2434},{"style":804},[2435],{"type":49,"value":2436}," resources",{"type":43,"tag":761,"props":2438,"children":2439},{"style":804},[2440],{"type":49,"value":2441}," ai-configs",{"type":43,"tag":761,"props":2443,"children":2444},{"style":804},[2445],{"type":49,"value":2446}," update-ai-config-targeting",{"type":43,"tag":761,"props":2448,"children":2449},{"style":2143},[2450],{"type":49,"value":2175},{"type":43,"tag":761,"props":2452,"children":2453},{"class":763,"line":774},[2454,2459,2464,2469,2474,2479],{"type":43,"tag":761,"props":2455,"children":2456},{"style":804},[2457],{"type":49,"value":2458},"  --projectKey",{"type":43,"tag":761,"props":2460,"children":2461},{"style":2143},[2462],{"type":49,"value":2463}," $PROJECT ",{"type":43,"tag":761,"props":2465,"children":2466},{"style":804},[2467],{"type":49,"value":2468},"--configKey",{"type":43,"tag":761,"props":2470,"children":2471},{"style":2143},[2472],{"type":49,"value":2473}," $CONFIG_KEY ",{"type":43,"tag":761,"props":2475,"children":2476},{"style":804},[2477],{"type":49,"value":2478},"--envKey",{"type":43,"tag":761,"props":2480,"children":2481},{"style":2143},[2482],{"type":49,"value":2483}," $ENV \\\n",{"type":43,"tag":761,"props":2485,"children":2486},{"class":763,"line":886},[2487,2492,2496,2501],{"type":43,"tag":761,"props":2488,"children":2489},{"style":804},[2490],{"type":49,"value":2491},"  --data",{"type":43,"tag":761,"props":2493,"children":2494},{"style":768},[2495],{"type":49,"value":2241},{"type":43,"tag":761,"props":2497,"children":2498},{"style":804},[2499],{"type":49,"value":2500},"{\"instructions\":[{\"kind\":\"updateFallthroughVariationOrRollout\",\"variationId\":\"\u003Cid>\"}]}",{"type":43,"tag":761,"props":2502,"children":2503},{"style":768},[2504],{"type":49,"value":2251},{"type":43,"tag":52,"props":2506,"children":2507},{},[2508,2510,2516,2518,2522,2524,2530],{"type":49,"value":2509},"Do not use ",{"type":43,"tag":80,"props":2511,"children":2513},{"className":2512},[],[2514],{"type":49,"value":2515},"turnTargetingOn",{"type":49,"value":2517}," — that semantic-patch instruction does ",{"type":43,"tag":65,"props":2519,"children":2520},{},[2521],{"type":49,"value":704},{"type":49,"value":2523}," work for configs. ",{"type":43,"tag":80,"props":2525,"children":2527},{"className":2526},[],[2528],{"type":49,"value":2529},"updateFallthroughVariationOrRollout",{"type":49,"value":2531}," is the only instruction that actually flips the fallthrough.",{"type":43,"tag":112,"props":2533,"children":2535},{"id":2534},"modelconfigkey-format",[2536],{"type":49,"value":2537},"modelConfigKey Format",{"type":43,"tag":52,"props":2539,"children":2540},{},[2541,2543],{"type":49,"value":2542},"Required for models to display in the UI. Format: ",{"type":43,"tag":80,"props":2544,"children":2546},{"className":2545},[],[2547],{"type":49,"value":2548},"{Provider}.{model-id}",{"type":43,"tag":132,"props":2550,"children":2551},{},[2552,2560,2569,2577],{"type":43,"tag":136,"props":2553,"children":2554},{},[2555],{"type":43,"tag":80,"props":2556,"children":2558},{"className":2557},[],[2559],{"type":49,"value":657},{"type":43,"tag":136,"props":2561,"children":2562},{},[2563],{"type":43,"tag":80,"props":2564,"children":2566},{"className":2565},[],[2567],{"type":49,"value":2568},"OpenAI.gpt-4o-mini",{"type":43,"tag":136,"props":2570,"children":2571},{},[2572],{"type":43,"tag":80,"props":2573,"children":2575},{"className":2574},[],[2576],{"type":49,"value":664},{"type":43,"tag":136,"props":2578,"children":2579},{},[2580],{"type":43,"tag":80,"props":2581,"children":2583},{"className":2582},[],[2584],{"type":49,"value":2585},"Anthropic.claude-3-5-sonnet",{"type":43,"tag":52,"props":2587,"children":2588},{},[2589,2591,2596],{"type":49,"value":2590},"The ",{"type":43,"tag":80,"props":2592,"children":2594},{"className":2593},[],[2595],{"type":49,"value":177},{"type":49,"value":2597}," tool validates this format and rejects invalid values.",{"type":43,"tag":112,"props":2599,"children":2601},{"id":2600},"edge-cases",[2602],{"type":49,"value":2603},"Edge Cases",{"type":43,"tag":329,"props":2605,"children":2606},{},[2607,2623],{"type":43,"tag":333,"props":2608,"children":2609},{},[2610],{"type":43,"tag":337,"props":2611,"children":2612},{},[2613,2618],{"type":43,"tag":341,"props":2614,"children":2615},{},[2616],{"type":49,"value":2617},"Situation",{"type":43,"tag":341,"props":2619,"children":2620},{},[2621],{"type":49,"value":2622},"Action",{"type":43,"tag":357,"props":2624,"children":2625},{},[2626,2639,2659],{"type":43,"tag":337,"props":2627,"children":2628},{},[2629,2634],{"type":43,"tag":364,"props":2630,"children":2631},{},[2632],{"type":49,"value":2633},"Config already exists",{"type":43,"tag":364,"props":2635,"children":2636},{},[2637],{"type":49,"value":2638},"Ask if user wants to update instead",{"type":43,"tag":337,"props":2640,"children":2641},{},[2642,2647],{"type":43,"tag":364,"props":2643,"children":2644},{},[2645],{"type":49,"value":2646},"Variation shows \"NO MODEL\"",{"type":43,"tag":364,"props":2648,"children":2649},{},[2650,2651,2657],{"type":49,"value":519},{"type":43,"tag":80,"props":2652,"children":2654},{"className":2653},[],[2655],{"type":49,"value":2656},"update-ai-config-variation",{"type":49,"value":2658}," to set modelConfigKey",{"type":43,"tag":337,"props":2660,"children":2661},{},[2662,2667],{"type":43,"tag":364,"props":2663,"children":2664},{},[2665],{"type":49,"value":2666},"Need to attach tools",{"type":43,"tag":364,"props":2668,"children":2669},{},[2670,2672,2678],{"type":49,"value":2671},"Create tools first (",{"type":43,"tag":80,"props":2673,"children":2675},{"className":2674},[],[2676],{"type":49,"value":2677},"tools",{"type":49,"value":2679}," skill), then update the variation",{"type":43,"tag":112,"props":2681,"children":2683},{"id":2682},"what-not-to-do",[2684],{"type":49,"value":2685},"What NOT to Do",{"type":43,"tag":132,"props":2687,"children":2688},{},[2689,2694,2699,2704,2709,2734,2766],{"type":43,"tag":136,"props":2690,"children":2691},{},[2692],{"type":49,"value":2693},"Don't create configs without understanding the use case",{"type":43,"tag":136,"props":2695,"children":2696},{},[2697],{"type":49,"value":2698},"Don't skip the two-step process (config then variation)",{"type":43,"tag":136,"props":2700,"children":2701},{},[2702],{"type":49,"value":2703},"Don't try to attach tools during initial creation -- update the variation afterward",{"type":43,"tag":136,"props":2705,"children":2706},{},[2707],{"type":49,"value":2708},"Don't forget modelConfigKey (models won't show in the UI)",{"type":43,"tag":136,"props":2710,"children":2711},{},[2712,2714,2719,2721,2726,2728,2733],{"type":49,"value":2713},"Don't omit ",{"type":43,"tag":80,"props":2715,"children":2717},{"className":2716},[],[2718],{"type":49,"value":675},{"type":49,"value":2720}," from the initial variation call. It is required at create time; setting it via a follow-up PATCH is a workaround for a bug, not the intended flow. The PATCH field is also ",{"type":43,"tag":80,"props":2722,"children":2724},{"className":2723},[],[2725],{"type":49,"value":675},{"type":49,"value":2727},", not ",{"type":43,"tag":80,"props":2729,"children":2731},{"className":2730},[],[2732],{"type":49,"value":557},{"type":49,"value":1781},{"type":43,"tag":136,"props":2735,"children":2736},{},[2737,2739,2744,2745,2750,2752,2757,2759,2764],{"type":49,"value":2738},"Don't drop to raw ",{"type":43,"tag":80,"props":2740,"children":2742},{"className":2741},[],[2743],{"type":49,"value":1771},{"type":49,"value":1773},{"type":43,"tag":80,"props":2746,"children":2748},{"className":2747},[],[2749],{"type":49,"value":1779},{"type":49,"value":2751}," for verification. Use ",{"type":43,"tag":80,"props":2753,"children":2755},{"className":2754},[],[2756],{"type":49,"value":188},{"type":49,"value":2758}," (MCP) — it returns a typed object and avoids brittle ",{"type":43,"tag":80,"props":2760,"children":2762},{"className":2761},[],[2763],{"type":49,"value":1779},{"type":49,"value":2765}," filters that break on response-shape variation.",{"type":43,"tag":136,"props":2767,"children":2768},{},[2769,2771,2776,2778,2783],{"type":49,"value":2770},"Don't consider the workflow complete until the user has been told to run ",{"type":43,"tag":80,"props":2772,"children":2774},{"className":2773},[],[2775],{"type":49,"value":2089},{"type":49,"value":2777},". A created variation that isn't promoted to fallthrough returns ",{"type":43,"tag":80,"props":2779,"children":2781},{"className":2780},[],[2782],{"type":49,"value":108},{"type":49,"value":2784}," to every consumer.",{"type":43,"tag":112,"props":2786,"children":2788},{"id":2787},"more-resources",[2789],{"type":49,"value":2790},"More resources",{"type":43,"tag":52,"props":2792,"children":2793},{},[2794,2796],{"type":49,"value":2795},"To learn more about creating a config in the LaunchDarkly UI, read ",{"type":43,"tag":2797,"props":2798,"children":2802},"a",{"href":2799,"rel":2800},"https:\u002F\u002Flaunchdarkly.com\u002Fdocs\u002Fhome\u002Fagentcontrol\u002Fcreate.md",[2801],"nofollow",[2803],{"type":49,"value":2804},"Create configs",{"type":43,"tag":52,"props":2806,"children":2807},{},[2808],{"type":49,"value":2809},"To learn more about configuring the SDK, read:",{"type":43,"tag":132,"props":2811,"children":2812},{},[2813,2823,2833,2843,2853],{"type":43,"tag":136,"props":2814,"children":2815},{},[2816],{"type":43,"tag":2797,"props":2817,"children":2820},{"href":2818,"rel":2819},"https:\u002F\u002Flaunchdarkly.com\u002Fdocs\u002Fsdk\u002Fai\u002Fdotnet.md",[2801],[2821],{"type":49,"value":2822},".NET AI SDK reference",{"type":43,"tag":136,"props":2824,"children":2825},{},[2826],{"type":43,"tag":2797,"props":2827,"children":2830},{"href":2828,"rel":2829},"https:\u002F\u002Flaunchdarkly.com\u002Fdocs\u002Fsdk\u002Fai\u002Fgo.md",[2801],[2831],{"type":49,"value":2832},"Go AI SDK reference",{"type":43,"tag":136,"props":2834,"children":2835},{},[2836],{"type":43,"tag":2797,"props":2837,"children":2840},{"href":2838,"rel":2839},"https:\u002F\u002Flaunchdarkly.com\u002Fdocs\u002Fsdk\u002Fai\u002Fnode-js.md",[2801],[2841],{"type":49,"value":2842},"Node.js (server-side) SDK AI reference",{"type":43,"tag":136,"props":2844,"children":2845},{},[2846],{"type":43,"tag":2797,"props":2847,"children":2850},{"href":2848,"rel":2849},"https:\u002F\u002Flaunchdarkly.com\u002Fdocs\u002Fsdk\u002Fai\u002Fpython.md",[2801],[2851],{"type":49,"value":2852},"Python AI SDK reference",{"type":43,"tag":136,"props":2854,"children":2855},{},[2856],{"type":43,"tag":2797,"props":2857,"children":2860},{"href":2858,"rel":2859},"https:\u002F\u002Flaunchdarkly.com\u002Fdocs\u002Fsdk\u002Fai\u002Fruby.md",[2801],[2861],{"type":49,"value":2862},"Ruby AI SDK reference",{"type":43,"tag":112,"props":2864,"children":2866},{"id":2865},"related-skills",[2867],{"type":49,"value":2868},"Related Skills",{"type":43,"tag":132,"props":2870,"children":2871},{},[2872,2882,2893],{"type":43,"tag":136,"props":2873,"children":2874},{},[2875,2880],{"type":43,"tag":80,"props":2876,"children":2878},{"className":2877},[],[2879],{"type":49,"value":2677},{"type":49,"value":2881}," -- Create tools before attaching",{"type":43,"tag":136,"props":2883,"children":2884},{},[2885,2891],{"type":43,"tag":80,"props":2886,"children":2888},{"className":2887},[],[2889],{"type":49,"value":2890},"configs-variations",{"type":49,"value":2892}," -- Add more variations for experimentation",{"type":43,"tag":136,"props":2894,"children":2895},{},[2896,2902],{"type":43,"tag":80,"props":2897,"children":2899},{"className":2898},[],[2900],{"type":49,"value":2901},"configs-update",{"type":49,"value":2903}," -- Modify configs based on learnings",{"type":43,"tag":2905,"props":2906,"children":2907},"style",{},[2908],{"type":49,"value":2909},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2911,"total":3041},[2912,2929,2938,2952,2963,2973,2981,2995,3004,3013,3023,3032],{"slug":2913,"name":2913,"fn":2914,"description":2915,"org":2916,"tags":2917,"stars":20,"repoUrl":21,"updatedAt":2928},"agent-graphs","create and manage agent graphs","Create and manage agent graphs — directed graphs of configs connected by edges with handoff logic. Use when building multi-agent workflows where configs route to each other.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2918,2921,2924,2925],{"name":2919,"slug":2920,"type":15},"Agents","agents",{"name":2922,"slug":2923,"type":15},"Architecture","architecture",{"name":9,"slug":8,"type":15},{"name":2926,"slug":2927,"type":15},"Multi-Agent","multi-agent","2026-07-28T05:33:33.709407",{"slug":2930,"name":2930,"fn":2931,"description":2932,"org":2933,"tags":2934,"stars":20,"repoUrl":21,"updatedAt":2937},"aiconfig-agent-graphs","manage agent graphs","DEPRECATED redirect — this skill was renamed to agent-graphs. Do not use this skill; invoke agent-graphs instead. Kept only so old references to aiconfig-agent-graphs still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2935,2936],{"name":2919,"slug":2920,"type":15},{"name":2922,"slug":2923,"type":15},"2026-05-22T06:55:56.527064",{"slug":2939,"name":2939,"fn":2940,"description":2941,"org":2942,"tags":2943,"stars":20,"repoUrl":21,"updatedAt":2951},"aiconfig-ai-metrics","manage built-in AI metrics","DEPRECATED redirect — this skill was renamed to built-in-metrics. Do not use this skill; invoke built-in-metrics instead. Kept only so old references to aiconfig-ai-metrics still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2944,2947,2948],{"name":2945,"slug":2946,"type":15},"Analytics","analytics",{"name":9,"slug":8,"type":15},{"name":2949,"slug":2950,"type":15},"Metrics","metrics","2026-05-22T06:55:53.858749",{"slug":2953,"name":2953,"fn":2954,"description":2955,"org":2956,"tags":2957,"stars":20,"repoUrl":21,"updatedAt":2962},"aiconfig-create","redirect to configs-create skill","DEPRECATED redirect — this skill was renamed to configs-create. Do not use this skill; invoke configs-create instead. Kept only so old references to aiconfig-create still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2958,2959],{"name":9,"slug":8,"type":15},{"name":2960,"slug":2961,"type":15},"Reference","reference","2026-05-22T06:55:41.790591",{"slug":2964,"name":2964,"fn":2965,"description":2966,"org":2967,"tags":2968,"stars":20,"repoUrl":21,"updatedAt":2972},"aiconfig-custom-metrics","configure custom metrics in LaunchDarkly","DEPRECATED redirect — this skill was renamed to custom-metrics. Do not use this skill; invoke custom-metrics instead. Kept only so old references to aiconfig-custom-metrics still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2969,2970,2971],{"name":2945,"slug":2946,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},"2026-05-22T06:55:57.84851",{"slug":2974,"name":2974,"fn":2975,"description":2976,"org":2977,"tags":2978,"stars":20,"repoUrl":21,"updatedAt":2980},"aiconfig-migrate","redirect to migrate skill","DEPRECATED redirect — this skill was renamed to migrate. Do not use this skill; invoke migrate instead. Kept only so old references to aiconfig-migrate still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2979],{"name":2960,"slug":2961,"type":15},"2026-05-22T06:55:44.464733",{"slug":2982,"name":2982,"fn":2983,"description":2984,"org":2985,"tags":2986,"stars":20,"repoUrl":21,"updatedAt":2994},"aiconfig-online-evals","run online evaluations","DEPRECATED redirect — this skill was renamed to online-evals. Do not use this skill; invoke online-evals instead. Kept only so old references to aiconfig-online-evals still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2987,2990,2991],{"name":2988,"slug":2989,"type":15},"Evals","evals",{"name":9,"slug":8,"type":15},{"name":2992,"slug":2993,"type":15},"Testing","testing","2026-05-22T06:55:55.179617",{"slug":2996,"name":2996,"fn":2997,"description":2998,"org":2999,"tags":3000,"stars":20,"repoUrl":21,"updatedAt":3003},"aiconfig-projects","manage AI configuration projects","DEPRECATED redirect — this skill was renamed to projects. Do not use this skill; invoke projects instead. Kept only so old references to aiconfig-projects still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3001,3002],{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-05-22T06:55:48.522229",{"slug":3005,"name":3005,"fn":3006,"description":3007,"org":3008,"tags":3009,"stars":20,"repoUrl":21,"updatedAt":3012},"aiconfig-snippets","manage AI configuration snippets","DEPRECATED redirect — this skill was renamed to snippets. Do not use this skill; invoke snippets instead. Kept only so old references to aiconfig-snippets still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3010,3011],{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-05-22T06:55:47.16557",{"slug":3014,"name":3014,"fn":3015,"description":3016,"org":3017,"tags":3018,"stars":20,"repoUrl":21,"updatedAt":3022},"aiconfig-targeting","configure LaunchDarkly targeting rules","DEPRECATED redirect — this skill was renamed to configs-targeting. Do not use this skill; invoke configs-targeting instead. Kept only so old references to aiconfig-targeting still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3019,3020,3021],{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},"2026-05-22T06:55:49.845445",{"slug":3024,"name":3024,"fn":3025,"description":3026,"org":3027,"tags":3028,"stars":20,"repoUrl":21,"updatedAt":3031},"aiconfig-tools","redirect to tools skill","DEPRECATED redirect — this skill was renamed to tools. Do not use this skill; invoke tools instead. Kept only so old references to aiconfig-tools still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3029,3030],{"name":9,"slug":8,"type":15},{"name":2960,"slug":2961,"type":15},"2026-05-22T06:55:39.13373",{"slug":3033,"name":3033,"fn":3034,"description":3035,"org":3036,"tags":3037,"stars":20,"repoUrl":21,"updatedAt":3040},"aiconfig-update","redirect to configs-update skill","DEPRECATED redirect — this skill was renamed to configs-update. Do not use this skill; invoke configs-update instead. Kept only so old references to aiconfig-update still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3038,3039],{"name":9,"slug":8,"type":15},{"name":2960,"slug":2961,"type":15},"2026-05-22T06:55:40.464884",49,{"items":3043,"total":3041},[3044,3051,3056,3062,3067,3073,3077],{"slug":2913,"name":2913,"fn":2914,"description":2915,"org":3045,"tags":3046,"stars":20,"repoUrl":21,"updatedAt":2928},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3047,3048,3049,3050],{"name":2919,"slug":2920,"type":15},{"name":2922,"slug":2923,"type":15},{"name":9,"slug":8,"type":15},{"name":2926,"slug":2927,"type":15},{"slug":2930,"name":2930,"fn":2931,"description":2932,"org":3052,"tags":3053,"stars":20,"repoUrl":21,"updatedAt":2937},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3054,3055],{"name":2919,"slug":2920,"type":15},{"name":2922,"slug":2923,"type":15},{"slug":2939,"name":2939,"fn":2940,"description":2941,"org":3057,"tags":3058,"stars":20,"repoUrl":21,"updatedAt":2951},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3059,3060,3061],{"name":2945,"slug":2946,"type":15},{"name":9,"slug":8,"type":15},{"name":2949,"slug":2950,"type":15},{"slug":2953,"name":2953,"fn":2954,"description":2955,"org":3063,"tags":3064,"stars":20,"repoUrl":21,"updatedAt":2962},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3065,3066],{"name":9,"slug":8,"type":15},{"name":2960,"slug":2961,"type":15},{"slug":2964,"name":2964,"fn":2965,"description":2966,"org":3068,"tags":3069,"stars":20,"repoUrl":21,"updatedAt":2972},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3070,3071,3072],{"name":2945,"slug":2946,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"slug":2974,"name":2974,"fn":2975,"description":2976,"org":3074,"tags":3075,"stars":20,"repoUrl":21,"updatedAt":2980},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3076],{"name":2960,"slug":2961,"type":15},{"slug":2982,"name":2982,"fn":2983,"description":2984,"org":3078,"tags":3079,"stars":20,"repoUrl":21,"updatedAt":2994},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3080,3081,3082],{"name":2988,"slug":2989,"type":15},{"name":9,"slug":8,"type":15},{"name":2992,"slug":2993,"type":15}]