[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-launchdarkly-configs-variations":3,"mdc--vdrwmb-key":37,"related-org-launchdarkly-configs-variations":814,"related-repo-launchdarkly-configs-variations":946},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":32,"sourceUrl":35,"mdContent":36},"configs-variations","manage AI configuration variations","Experiment with configs by creating and managing variations. Helps you test different models, prompts, and parameters to find what works best through systematic experimentation.",{"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,20],{"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},{"name":21,"slug":22,"type":15},"A\u002FB Testing","a-b-testing",20,"https:\u002F\u002Fgithub.com\u002Flaunchdarkly\u002Fai-tooling","2026-07-28T05:33:31.495035","Apache-2.0",6,[29,30,31],"agent-skills","launchdarkly-ai","managed-by-terraform",{"repoUrl":24,"stars":23,"forks":27,"topics":33,"description":34},[29,30,31],"LaunchDarkly's official AI tooling","https:\u002F\u002Fgithub.com\u002Flaunchdarkly\u002Fai-tooling\u002Ftree\u002FHEAD\u002Fskills\u002Fagentcontrol\u002Fconfigs-variations","---\nname: configs-variations\ndescription: \"Experiment with configs by creating and managing variations. Helps you test different models, prompts, and parameters to find what works best through systematic experimentation.\"\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# Config Variations\n\nYou're using a skill that will guide you through testing and optimizing configs through variations. Your job is to design experiments, create variations, and systematically find what works best.\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- `clone-ai-config-variation` -- clone a baseline variation with selective overrides (recommended for experimentation)\n\n**Alternative MCP tools (for more control):**\n- `get-ai-config` -- review existing variations before adding new ones\n- `create-ai-config-variation` -- create new variations from scratch\n\n**Optional MCP tools:**\n- `update-ai-config-variation` -- refine a variation after creation\n- `delete-ai-config-variation` -- remove variations that didn't work out\n\n## Core Principles\n\n1. **Test One Thing at a Time**: Change model OR prompt OR parameters, not all at once\n2. **Have a Hypothesis**: Know what you're trying to improve\n3. **Measure Results**: Use metrics to compare variations\n4. **Verify via Tool**: The agent fetches the config to confirm variations exist\n\n## Workflow\n\n### Step 1: Identify What to Optimize\n\nWhat's the problem? Cost, quality, speed, accuracy? How will you measure success?\n\n### Step 2: Design the Experiment\n\n| Goal | What to Vary |\n|------|--------------|\n| Reduce cost | Cheaper model (e.g., `gpt-4o-mini`) |\n| Improve quality | Better model or more detailed prompt |\n| Reduce latency | Faster model, lower `max_tokens` |\n| Increase accuracy | Different model family (Claude vs GPT-4) |\n\n### Step 3: Create Variations (Recommended: Clone with Overrides)\n\nUse `clone-ai-config-variation` to duplicate the baseline and override only what you're testing. The tool reads the source variation, merges your overrides, and creates the new variation. Everything you **don't** pass is inherited from the source automatically.\n\n**Required fields:**\n- `sourceVariationKey` -- the baseline to clone from\n- `key` and `name` -- identifiers for the new variation (e.g., `gpt4o-mini-cost-test`)\n\n**Override ONLY the fields you are testing.** Leave all other fields unset -- do not pass them even if you know their current values. The clone tool inherits them from the source. This enforces the one-variable-at-a-time principle:\n\n- Testing a cheaper model? Pass only `modelConfigKey` and `modelName`. Do NOT pass `instructions`, `messages`, or `parameters`.\n- Testing different instructions? Pass only `instructions`. Do NOT pass `modelConfigKey` or `modelName`.\n- Testing a parameter? Pass only `parameters`. Do NOT pass model or prompt fields.\n\nThe response returns both the source and created variation, so you can immediately verify the diff.\n\n### Step 3 (Alternative): Create from Scratch\n\nIf you need full control, use `get-ai-config` first to review the current state, then `create-ai-config-variation` with all fields specified manually. Always fetch before creating so you understand the existing config's mode, model, and parameters.\n\n### Step 4: Verify\n\nIf you used `clone-ai-config-variation`, the response includes both source and created variations for immediate comparison. Otherwise, use `get-ai-config` to confirm.\n\n**Report results:**\n- Variations created with correct models and parameters\n- Only the intended variable differs between variations\n- Flag any issues\n\n**Note on API responses:** After calling a creation or clone tool, treat a successful response as confirmation that the operation succeeded. The API response may not echo back every field you sent (e.g., model fields may show defaults). Do not retry or assume failure based on response field values alone -- verify with `get-ai-config` if needed.\n\n## modelConfigKey Format\n\nRequired for models to display in the UI. Format: `{Provider}.{model-id}`:\n- `OpenAI.gpt-4o`, `OpenAI.gpt-4o-mini`\n- `Anthropic.claude-sonnet-4-5`, `Anthropic.claude-3-5-sonnet`\n\n## Safety: Protect the Baseline\n\nWhen the user wants to try a different model, prompt, or parameters, **always create a new variation alongside the baseline**. Never modify or delete the existing baseline variation. This applies even if the user says \"replace\" or \"switch\" -- the correct action is to create a new variation and let targeting\u002Frollouts control traffic, not to edit the original.\n\n- Use `clone-ai-config-variation` or `create-ai-config-variation` to add the new variation\n- Do NOT use `update-ai-config-variation` on the baseline to change its model or instructions\n- Do NOT use `delete-ai-config-variation` on the baseline\n- Explain to the user that keeping the baseline enables comparison and safe rollback\n\n## What NOT to Do\n\n- Don't test too many things at once -- change one variable per variation\n- Don't pass unchanged fields when cloning -- let the tool inherit them from the source\n- Don't forget modelConfigKey (variations without it show as \"NO MODEL\" in the UI)\n- Don't make decisions on small sample sizes\n- Don't modify or remove the baseline variation -- create new variations alongside it\n- Don't use `update-ai-config-variation` to \"replace\" a baseline -- create a new variation instead\n   \n## More resources\n\nTo learn more about creating and managing variations, read [Create and manage config variations](https:\u002F\u002Flaunchdarkly.com\u002Fdocs\u002Fhome\u002Fagentcontrol\u002Fcreate-variation.md).\n\n## Related Skills\n\n- `configs-create` -- Create the initial config\n- `configs-update` -- Refine based on learnings\n",{"data":38,"body":42},{"name":4,"description":6,"license":26,"compatibility":39,"metadata":40},"Requires the remotely hosted LaunchDarkly MCP server",{"author":8,"version":41},"1.0.0-experimental",{"type":43,"children":44},"root",[45,54,60,67,72,81,98,106,131,139,164,170,214,220,227,232,238,332,338,357,365,405,415,498,503,509,528,534,553,561,579,596,602,615,650,656,668,716,722,762,768,783,789],{"type":46,"tag":47,"props":48,"children":50},"element","h1",{"id":49},"config-variations",[51],{"type":52,"value":53},"text","Config Variations",{"type":46,"tag":55,"props":56,"children":57},"p",{},[58],{"type":52,"value":59},"You're using a skill that will guide you through testing and optimizing configs through variations. Your job is to design experiments, create variations, and systematically find what works best.",{"type":46,"tag":61,"props":62,"children":64},"h2",{"id":63},"prerequisites",[65],{"type":52,"value":66},"Prerequisites",{"type":46,"tag":55,"props":68,"children":69},{},[70],{"type":52,"value":71},"This skill requires the remotely hosted LaunchDarkly MCP server to be configured in your environment.",{"type":46,"tag":55,"props":73,"children":74},{},[75],{"type":46,"tag":76,"props":77,"children":78},"strong",{},[79],{"type":52,"value":80},"Primary MCP tool:",{"type":46,"tag":82,"props":83,"children":84},"ul",{},[85],{"type":46,"tag":86,"props":87,"children":88},"li",{},[89,96],{"type":46,"tag":90,"props":91,"children":93},"code",{"className":92},[],[94],{"type":52,"value":95},"clone-ai-config-variation",{"type":52,"value":97}," -- clone a baseline variation with selective overrides (recommended for experimentation)",{"type":46,"tag":55,"props":99,"children":100},{},[101],{"type":46,"tag":76,"props":102,"children":103},{},[104],{"type":52,"value":105},"Alternative MCP tools (for more control):",{"type":46,"tag":82,"props":107,"children":108},{},[109,120],{"type":46,"tag":86,"props":110,"children":111},{},[112,118],{"type":46,"tag":90,"props":113,"children":115},{"className":114},[],[116],{"type":52,"value":117},"get-ai-config",{"type":52,"value":119}," -- review existing variations before adding new ones",{"type":46,"tag":86,"props":121,"children":122},{},[123,129],{"type":46,"tag":90,"props":124,"children":126},{"className":125},[],[127],{"type":52,"value":128},"create-ai-config-variation",{"type":52,"value":130}," -- create new variations from scratch",{"type":46,"tag":55,"props":132,"children":133},{},[134],{"type":46,"tag":76,"props":135,"children":136},{},[137],{"type":52,"value":138},"Optional MCP tools:",{"type":46,"tag":82,"props":140,"children":141},{},[142,153],{"type":46,"tag":86,"props":143,"children":144},{},[145,151],{"type":46,"tag":90,"props":146,"children":148},{"className":147},[],[149],{"type":52,"value":150},"update-ai-config-variation",{"type":52,"value":152}," -- refine a variation after creation",{"type":46,"tag":86,"props":154,"children":155},{},[156,162],{"type":46,"tag":90,"props":157,"children":159},{"className":158},[],[160],{"type":52,"value":161},"delete-ai-config-variation",{"type":52,"value":163}," -- remove variations that didn't work out",{"type":46,"tag":61,"props":165,"children":167},{"id":166},"core-principles",[168],{"type":52,"value":169},"Core Principles",{"type":46,"tag":171,"props":172,"children":173},"ol",{},[174,184,194,204],{"type":46,"tag":86,"props":175,"children":176},{},[177,182],{"type":46,"tag":76,"props":178,"children":179},{},[180],{"type":52,"value":181},"Test One Thing at a Time",{"type":52,"value":183},": Change model OR prompt OR parameters, not all at once",{"type":46,"tag":86,"props":185,"children":186},{},[187,192],{"type":46,"tag":76,"props":188,"children":189},{},[190],{"type":52,"value":191},"Have a Hypothesis",{"type":52,"value":193},": Know what you're trying to improve",{"type":46,"tag":86,"props":195,"children":196},{},[197,202],{"type":46,"tag":76,"props":198,"children":199},{},[200],{"type":52,"value":201},"Measure Results",{"type":52,"value":203},": Use metrics to compare variations",{"type":46,"tag":86,"props":205,"children":206},{},[207,212],{"type":46,"tag":76,"props":208,"children":209},{},[210],{"type":52,"value":211},"Verify via Tool",{"type":52,"value":213},": The agent fetches the config to confirm variations exist",{"type":46,"tag":61,"props":215,"children":217},{"id":216},"workflow",[218],{"type":52,"value":219},"Workflow",{"type":46,"tag":221,"props":222,"children":224},"h3",{"id":223},"step-1-identify-what-to-optimize",[225],{"type":52,"value":226},"Step 1: Identify What to Optimize",{"type":46,"tag":55,"props":228,"children":229},{},[230],{"type":52,"value":231},"What's the problem? Cost, quality, speed, accuracy? How will you measure success?",{"type":46,"tag":221,"props":233,"children":235},{"id":234},"step-2-design-the-experiment",[236],{"type":52,"value":237},"Step 2: Design the Experiment",{"type":46,"tag":239,"props":240,"children":241},"table",{},[242,261],{"type":46,"tag":243,"props":244,"children":245},"thead",{},[246],{"type":46,"tag":247,"props":248,"children":249},"tr",{},[250,256],{"type":46,"tag":251,"props":252,"children":253},"th",{},[254],{"type":52,"value":255},"Goal",{"type":46,"tag":251,"props":257,"children":258},{},[259],{"type":52,"value":260},"What to Vary",{"type":46,"tag":262,"props":263,"children":264},"tbody",{},[265,287,300,319],{"type":46,"tag":247,"props":266,"children":267},{},[268,274],{"type":46,"tag":269,"props":270,"children":271},"td",{},[272],{"type":52,"value":273},"Reduce cost",{"type":46,"tag":269,"props":275,"children":276},{},[277,279,285],{"type":52,"value":278},"Cheaper model (e.g., ",{"type":46,"tag":90,"props":280,"children":282},{"className":281},[],[283],{"type":52,"value":284},"gpt-4o-mini",{"type":52,"value":286},")",{"type":46,"tag":247,"props":288,"children":289},{},[290,295],{"type":46,"tag":269,"props":291,"children":292},{},[293],{"type":52,"value":294},"Improve quality",{"type":46,"tag":269,"props":296,"children":297},{},[298],{"type":52,"value":299},"Better model or more detailed prompt",{"type":46,"tag":247,"props":301,"children":302},{},[303,308],{"type":46,"tag":269,"props":304,"children":305},{},[306],{"type":52,"value":307},"Reduce latency",{"type":46,"tag":269,"props":309,"children":310},{},[311,313],{"type":52,"value":312},"Faster model, lower ",{"type":46,"tag":90,"props":314,"children":316},{"className":315},[],[317],{"type":52,"value":318},"max_tokens",{"type":46,"tag":247,"props":320,"children":321},{},[322,327],{"type":46,"tag":269,"props":323,"children":324},{},[325],{"type":52,"value":326},"Increase accuracy",{"type":46,"tag":269,"props":328,"children":329},{},[330],{"type":52,"value":331},"Different model family (Claude vs GPT-4)",{"type":46,"tag":221,"props":333,"children":335},{"id":334},"step-3-create-variations-recommended-clone-with-overrides",[336],{"type":52,"value":337},"Step 3: Create Variations (Recommended: Clone with Overrides)",{"type":46,"tag":55,"props":339,"children":340},{},[341,343,348,350,355],{"type":52,"value":342},"Use ",{"type":46,"tag":90,"props":344,"children":346},{"className":345},[],[347],{"type":52,"value":95},{"type":52,"value":349}," to duplicate the baseline and override only what you're testing. The tool reads the source variation, merges your overrides, and creates the new variation. Everything you ",{"type":46,"tag":76,"props":351,"children":352},{},[353],{"type":52,"value":354},"don't",{"type":52,"value":356}," pass is inherited from the source automatically.",{"type":46,"tag":55,"props":358,"children":359},{},[360],{"type":46,"tag":76,"props":361,"children":362},{},[363],{"type":52,"value":364},"Required fields:",{"type":46,"tag":82,"props":366,"children":367},{},[368,379],{"type":46,"tag":86,"props":369,"children":370},{},[371,377],{"type":46,"tag":90,"props":372,"children":374},{"className":373},[],[375],{"type":52,"value":376},"sourceVariationKey",{"type":52,"value":378}," -- the baseline to clone from",{"type":46,"tag":86,"props":380,"children":381},{},[382,388,390,396,398,404],{"type":46,"tag":90,"props":383,"children":385},{"className":384},[],[386],{"type":52,"value":387},"key",{"type":52,"value":389}," and ",{"type":46,"tag":90,"props":391,"children":393},{"className":392},[],[394],{"type":52,"value":395},"name",{"type":52,"value":397}," -- identifiers for the new variation (e.g., ",{"type":46,"tag":90,"props":399,"children":401},{"className":400},[],[402],{"type":52,"value":403},"gpt4o-mini-cost-test",{"type":52,"value":286},{"type":46,"tag":55,"props":406,"children":407},{},[408,413],{"type":46,"tag":76,"props":409,"children":410},{},[411],{"type":52,"value":412},"Override ONLY the fields you are testing.",{"type":52,"value":414}," Leave all other fields unset -- do not pass them even if you know their current values. The clone tool inherits them from the source. This enforces the one-variable-at-a-time principle:",{"type":46,"tag":82,"props":416,"children":417},{},[418,462,486],{"type":46,"tag":86,"props":419,"children":420},{},[421,423,429,430,436,438,444,446,452,454,460],{"type":52,"value":422},"Testing a cheaper model? Pass only ",{"type":46,"tag":90,"props":424,"children":426},{"className":425},[],[427],{"type":52,"value":428},"modelConfigKey",{"type":52,"value":389},{"type":46,"tag":90,"props":431,"children":433},{"className":432},[],[434],{"type":52,"value":435},"modelName",{"type":52,"value":437},". Do NOT pass ",{"type":46,"tag":90,"props":439,"children":441},{"className":440},[],[442],{"type":52,"value":443},"instructions",{"type":52,"value":445},", ",{"type":46,"tag":90,"props":447,"children":449},{"className":448},[],[450],{"type":52,"value":451},"messages",{"type":52,"value":453},", or ",{"type":46,"tag":90,"props":455,"children":457},{"className":456},[],[458],{"type":52,"value":459},"parameters",{"type":52,"value":461},".",{"type":46,"tag":86,"props":463,"children":464},{},[465,467,472,473,478,480,485],{"type":52,"value":466},"Testing different instructions? Pass only ",{"type":46,"tag":90,"props":468,"children":470},{"className":469},[],[471],{"type":52,"value":443},{"type":52,"value":437},{"type":46,"tag":90,"props":474,"children":476},{"className":475},[],[477],{"type":52,"value":428},{"type":52,"value":479}," or ",{"type":46,"tag":90,"props":481,"children":483},{"className":482},[],[484],{"type":52,"value":435},{"type":52,"value":461},{"type":46,"tag":86,"props":487,"children":488},{},[489,491,496],{"type":52,"value":490},"Testing a parameter? Pass only ",{"type":46,"tag":90,"props":492,"children":494},{"className":493},[],[495],{"type":52,"value":459},{"type":52,"value":497},". Do NOT pass model or prompt fields.",{"type":46,"tag":55,"props":499,"children":500},{},[501],{"type":52,"value":502},"The response returns both the source and created variation, so you can immediately verify the diff.",{"type":46,"tag":221,"props":504,"children":506},{"id":505},"step-3-alternative-create-from-scratch",[507],{"type":52,"value":508},"Step 3 (Alternative): Create from Scratch",{"type":46,"tag":55,"props":510,"children":511},{},[512,514,519,521,526],{"type":52,"value":513},"If you need full control, use ",{"type":46,"tag":90,"props":515,"children":517},{"className":516},[],[518],{"type":52,"value":117},{"type":52,"value":520}," first to review the current state, then ",{"type":46,"tag":90,"props":522,"children":524},{"className":523},[],[525],{"type":52,"value":128},{"type":52,"value":527}," with all fields specified manually. Always fetch before creating so you understand the existing config's mode, model, and parameters.",{"type":46,"tag":221,"props":529,"children":531},{"id":530},"step-4-verify",[532],{"type":52,"value":533},"Step 4: Verify",{"type":46,"tag":55,"props":535,"children":536},{},[537,539,544,546,551],{"type":52,"value":538},"If you used ",{"type":46,"tag":90,"props":540,"children":542},{"className":541},[],[543],{"type":52,"value":95},{"type":52,"value":545},", the response includes both source and created variations for immediate comparison. Otherwise, use ",{"type":46,"tag":90,"props":547,"children":549},{"className":548},[],[550],{"type":52,"value":117},{"type":52,"value":552}," to confirm.",{"type":46,"tag":55,"props":554,"children":555},{},[556],{"type":46,"tag":76,"props":557,"children":558},{},[559],{"type":52,"value":560},"Report results:",{"type":46,"tag":82,"props":562,"children":563},{},[564,569,574],{"type":46,"tag":86,"props":565,"children":566},{},[567],{"type":52,"value":568},"Variations created with correct models and parameters",{"type":46,"tag":86,"props":570,"children":571},{},[572],{"type":52,"value":573},"Only the intended variable differs between variations",{"type":46,"tag":86,"props":575,"children":576},{},[577],{"type":52,"value":578},"Flag any issues",{"type":46,"tag":55,"props":580,"children":581},{},[582,587,589,594],{"type":46,"tag":76,"props":583,"children":584},{},[585],{"type":52,"value":586},"Note on API responses:",{"type":52,"value":588}," After calling a creation or clone tool, treat a successful response as confirmation that the operation succeeded. The API response may not echo back every field you sent (e.g., model fields may show defaults). Do not retry or assume failure based on response field values alone -- verify with ",{"type":46,"tag":90,"props":590,"children":592},{"className":591},[],[593],{"type":52,"value":117},{"type":52,"value":595}," if needed.",{"type":46,"tag":61,"props":597,"children":599},{"id":598},"modelconfigkey-format",[600],{"type":52,"value":601},"modelConfigKey Format",{"type":46,"tag":55,"props":603,"children":604},{},[605,607,613],{"type":52,"value":606},"Required for models to display in the UI. Format: ",{"type":46,"tag":90,"props":608,"children":610},{"className":609},[],[611],{"type":52,"value":612},"{Provider}.{model-id}",{"type":52,"value":614},":",{"type":46,"tag":82,"props":616,"children":617},{},[618,634],{"type":46,"tag":86,"props":619,"children":620},{},[621,627,628],{"type":46,"tag":90,"props":622,"children":624},{"className":623},[],[625],{"type":52,"value":626},"OpenAI.gpt-4o",{"type":52,"value":445},{"type":46,"tag":90,"props":629,"children":631},{"className":630},[],[632],{"type":52,"value":633},"OpenAI.gpt-4o-mini",{"type":46,"tag":86,"props":635,"children":636},{},[637,643,644],{"type":46,"tag":90,"props":638,"children":640},{"className":639},[],[641],{"type":52,"value":642},"Anthropic.claude-sonnet-4-5",{"type":52,"value":445},{"type":46,"tag":90,"props":645,"children":647},{"className":646},[],[648],{"type":52,"value":649},"Anthropic.claude-3-5-sonnet",{"type":46,"tag":61,"props":651,"children":653},{"id":652},"safety-protect-the-baseline",[654],{"type":52,"value":655},"Safety: Protect the Baseline",{"type":46,"tag":55,"props":657,"children":658},{},[659,661,666],{"type":52,"value":660},"When the user wants to try a different model, prompt, or parameters, ",{"type":46,"tag":76,"props":662,"children":663},{},[664],{"type":52,"value":665},"always create a new variation alongside the baseline",{"type":52,"value":667},". Never modify or delete the existing baseline variation. This applies even if the user says \"replace\" or \"switch\" -- the correct action is to create a new variation and let targeting\u002Frollouts control traffic, not to edit the original.",{"type":46,"tag":82,"props":669,"children":670},{},[671,688,700,711],{"type":46,"tag":86,"props":672,"children":673},{},[674,675,680,681,686],{"type":52,"value":342},{"type":46,"tag":90,"props":676,"children":678},{"className":677},[],[679],{"type":52,"value":95},{"type":52,"value":479},{"type":46,"tag":90,"props":682,"children":684},{"className":683},[],[685],{"type":52,"value":128},{"type":52,"value":687}," to add the new variation",{"type":46,"tag":86,"props":689,"children":690},{},[691,693,698],{"type":52,"value":692},"Do NOT use ",{"type":46,"tag":90,"props":694,"children":696},{"className":695},[],[697],{"type":52,"value":150},{"type":52,"value":699}," on the baseline to change its model or instructions",{"type":46,"tag":86,"props":701,"children":702},{},[703,704,709],{"type":52,"value":692},{"type":46,"tag":90,"props":705,"children":707},{"className":706},[],[708],{"type":52,"value":161},{"type":52,"value":710}," on the baseline",{"type":46,"tag":86,"props":712,"children":713},{},[714],{"type":52,"value":715},"Explain to the user that keeping the baseline enables comparison and safe rollback",{"type":46,"tag":61,"props":717,"children":719},{"id":718},"what-not-to-do",[720],{"type":52,"value":721},"What NOT to Do",{"type":46,"tag":82,"props":723,"children":724},{},[725,730,735,740,745,750],{"type":46,"tag":86,"props":726,"children":727},{},[728],{"type":52,"value":729},"Don't test too many things at once -- change one variable per variation",{"type":46,"tag":86,"props":731,"children":732},{},[733],{"type":52,"value":734},"Don't pass unchanged fields when cloning -- let the tool inherit them from the source",{"type":46,"tag":86,"props":736,"children":737},{},[738],{"type":52,"value":739},"Don't forget modelConfigKey (variations without it show as \"NO MODEL\" in the UI)",{"type":46,"tag":86,"props":741,"children":742},{},[743],{"type":52,"value":744},"Don't make decisions on small sample sizes",{"type":46,"tag":86,"props":746,"children":747},{},[748],{"type":52,"value":749},"Don't modify or remove the baseline variation -- create new variations alongside it",{"type":46,"tag":86,"props":751,"children":752},{},[753,755,760],{"type":52,"value":754},"Don't use ",{"type":46,"tag":90,"props":756,"children":758},{"className":757},[],[759],{"type":52,"value":150},{"type":52,"value":761}," to \"replace\" a baseline -- create a new variation instead",{"type":46,"tag":61,"props":763,"children":765},{"id":764},"more-resources",[766],{"type":52,"value":767},"More resources",{"type":46,"tag":55,"props":769,"children":770},{},[771,773,782],{"type":52,"value":772},"To learn more about creating and managing variations, read ",{"type":46,"tag":774,"props":775,"children":779},"a",{"href":776,"rel":777},"https:\u002F\u002Flaunchdarkly.com\u002Fdocs\u002Fhome\u002Fagentcontrol\u002Fcreate-variation.md",[778],"nofollow",[780],{"type":52,"value":781},"Create and manage config variations",{"type":52,"value":461},{"type":46,"tag":61,"props":784,"children":786},{"id":785},"related-skills",[787],{"type":52,"value":788},"Related Skills",{"type":46,"tag":82,"props":790,"children":791},{},[792,803],{"type":46,"tag":86,"props":793,"children":794},{},[795,801],{"type":46,"tag":90,"props":796,"children":798},{"className":797},[],[799],{"type":52,"value":800},"configs-create",{"type":52,"value":802}," -- Create the initial config",{"type":46,"tag":86,"props":804,"children":805},{},[806,812],{"type":46,"tag":90,"props":807,"children":809},{"className":808},[],[810],{"type":52,"value":811},"configs-update",{"type":52,"value":813}," -- Refine based on learnings",{"items":815,"total":945},[816,833,842,856,867,877,885,899,908,917,927,936],{"slug":817,"name":817,"fn":818,"description":819,"org":820,"tags":821,"stars":23,"repoUrl":24,"updatedAt":832},"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},[822,825,828,829],{"name":823,"slug":824,"type":15},"Agents","agents",{"name":826,"slug":827,"type":15},"Architecture","architecture",{"name":9,"slug":8,"type":15},{"name":830,"slug":831,"type":15},"Multi-Agent","multi-agent","2026-07-28T05:33:33.709407",{"slug":834,"name":834,"fn":835,"description":836,"org":837,"tags":838,"stars":23,"repoUrl":24,"updatedAt":841},"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},[839,840],{"name":823,"slug":824,"type":15},{"name":826,"slug":827,"type":15},"2026-05-22T06:55:56.527064",{"slug":843,"name":843,"fn":844,"description":845,"org":846,"tags":847,"stars":23,"repoUrl":24,"updatedAt":855},"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},[848,851,852],{"name":849,"slug":850,"type":15},"Analytics","analytics",{"name":9,"slug":8,"type":15},{"name":853,"slug":854,"type":15},"Metrics","metrics","2026-05-22T06:55:53.858749",{"slug":857,"name":857,"fn":858,"description":859,"org":860,"tags":861,"stars":23,"repoUrl":24,"updatedAt":866},"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},[862,863],{"name":9,"slug":8,"type":15},{"name":864,"slug":865,"type":15},"Reference","reference","2026-05-22T06:55:41.790591",{"slug":868,"name":868,"fn":869,"description":870,"org":871,"tags":872,"stars":23,"repoUrl":24,"updatedAt":876},"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},[873,874,875],{"name":849,"slug":850,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},"2026-05-22T06:55:57.84851",{"slug":878,"name":878,"fn":879,"description":880,"org":881,"tags":882,"stars":23,"repoUrl":24,"updatedAt":884},"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},[883],{"name":864,"slug":865,"type":15},"2026-05-22T06:55:44.464733",{"slug":886,"name":886,"fn":887,"description":888,"org":889,"tags":890,"stars":23,"repoUrl":24,"updatedAt":898},"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},[891,894,895],{"name":892,"slug":893,"type":15},"Evals","evals",{"name":9,"slug":8,"type":15},{"name":896,"slug":897,"type":15},"Testing","testing","2026-05-22T06:55:55.179617",{"slug":900,"name":900,"fn":901,"description":902,"org":903,"tags":904,"stars":23,"repoUrl":24,"updatedAt":907},"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},[905,906],{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-05-22T06:55:48.522229",{"slug":909,"name":909,"fn":910,"description":911,"org":912,"tags":913,"stars":23,"repoUrl":24,"updatedAt":916},"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},[914,915],{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-05-22T06:55:47.16557",{"slug":918,"name":918,"fn":919,"description":920,"org":921,"tags":922,"stars":23,"repoUrl":24,"updatedAt":926},"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},[923,924,925],{"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":928,"name":928,"fn":929,"description":930,"org":931,"tags":932,"stars":23,"repoUrl":24,"updatedAt":935},"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},[933,934],{"name":9,"slug":8,"type":15},{"name":864,"slug":865,"type":15},"2026-05-22T06:55:39.13373",{"slug":937,"name":937,"fn":938,"description":939,"org":940,"tags":941,"stars":23,"repoUrl":24,"updatedAt":944},"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},[942,943],{"name":9,"slug":8,"type":15},{"name":864,"slug":865,"type":15},"2026-05-22T06:55:40.464884",49,{"items":947,"total":945},[948,955,960,966,971,977,981],{"slug":817,"name":817,"fn":818,"description":819,"org":949,"tags":950,"stars":23,"repoUrl":24,"updatedAt":832},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[951,952,953,954],{"name":823,"slug":824,"type":15},{"name":826,"slug":827,"type":15},{"name":9,"slug":8,"type":15},{"name":830,"slug":831,"type":15},{"slug":834,"name":834,"fn":835,"description":836,"org":956,"tags":957,"stars":23,"repoUrl":24,"updatedAt":841},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[958,959],{"name":823,"slug":824,"type":15},{"name":826,"slug":827,"type":15},{"slug":843,"name":843,"fn":844,"description":845,"org":961,"tags":962,"stars":23,"repoUrl":24,"updatedAt":855},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[963,964,965],{"name":849,"slug":850,"type":15},{"name":9,"slug":8,"type":15},{"name":853,"slug":854,"type":15},{"slug":857,"name":857,"fn":858,"description":859,"org":967,"tags":968,"stars":23,"repoUrl":24,"updatedAt":866},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[969,970],{"name":9,"slug":8,"type":15},{"name":864,"slug":865,"type":15},{"slug":868,"name":868,"fn":869,"description":870,"org":972,"tags":973,"stars":23,"repoUrl":24,"updatedAt":876},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[974,975,976],{"name":849,"slug":850,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"slug":878,"name":878,"fn":879,"description":880,"org":978,"tags":979,"stars":23,"repoUrl":24,"updatedAt":884},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[980],{"name":864,"slug":865,"type":15},{"slug":886,"name":886,"fn":887,"description":888,"org":982,"tags":983,"stars":23,"repoUrl":24,"updatedAt":898},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[984,985,986],{"name":892,"slug":893,"type":15},{"name":9,"slug":8,"type":15},{"name":896,"slug":897,"type":15}]