56 results available
Sign in
Skills directory

configs-create

launchdarkly

·

Last changed
Hardened

This skill has been hardened by Chainguard

Last changed

This version passed the hardening gate. Hardening applied 7 targeted changes and preserved all other text. Classified findings before hardening: 2. Classified findings closed: 1. Classified findings remaining: 1. Unclassified scanner findings remaining: 0. Review findings closed: 9. Review findings remaining: 4.


Open before hardening

2

Medium
Open after hardening

1

Medium

Expand
File
Group
Subtype
Severity
Status
SKILL.md

Memory & Context Poisoning

—

Medium
Open
SKILL.md

Sensitive Data & Secret Exposure

Data exfiltration

Medium
Closed

2 findings


SKILL.md

Create Config

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.

Prerequisites

This skill requires the remotely hosted LaunchDarkly MCP server to be configured in your environment.

Primary MCP tool:

  • setup-ai-config -- create a config with its first variation in one step (recommended)

Alternative MCP tools (for more control):

  • create-ai-config -- create just the config shell (key, name, mode)
  • create-ai-config-variation -- add a variation with model, prompts, and parameters
  • get-ai-config -- verify the config was created correctly

Optional MCP tools (enhance workflow):

  • list-ai-configs -- browse existing configs to understand naming conventions

Important: Bias Towards Action

Use reasonable defaults for unspecified fields: default for variation key, the use case as the basis for instructions/messages, kebab-case for config keys.

Workflow

Step 1: Understand the Use Case

Before creating, identify what you're building:

  • What framework? LangGraph, LangChain, CrewAI, Strands, OpenAI SDK, Anthropic SDK, custom
  • What does the agent need? Just text generation, or tools/function calling?
  • Agent or completion? See the decision matrix below

Step 2: Choose Agent vs Completion Mode

This 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/B testing, and metrics tracking.

Your NeedModeWhy

LangGraph, CrewAI, Strands, AutoGen frameworks

Agent

Frameworks expect goal/instruction input

Persistent instructions across interactions

Agent

Single instructions string, SDK method: agent_config() (Python) / agentConfig() (Node)

Direct OpenAI/Anthropic API calls

Completion

Messages array maps directly to provider APIs

Full control of message structure

Completion

System/user/assistant role-based messages

One-off text generation

Completion

Standard chat format

Need online evaluations (LLM-as-judge)

Completion

Online evals are only available in completion mode

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).

Use 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.

Config fields:

  • key -- unique identifier (lowercase, hyphens)
  • name -- human-readable name
  • mode -- "agent" or "completion"
  • Optional: description, tags

Variation fields:

  • variationKey, variationName -- identifiers for the first variation
  • modelConfigKey -- must be Provider.model-id format (e.g., OpenAI.gpt-4o, Anthropic.claude-sonnet-4-5)
  • 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.

For agent mode, provide:

  • instructions -- a string with the agent's system instructions

Example agent-mode call:

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

For completion mode, provide:

  • messages -- an array of {role, content} objects (system, user, assistant)

Example completion-mode call:

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

Optional:

  • parameters -- model parameters like {temperature: 0.7, max_tokens: 2000} (match the UI's snake_case keys)

The tool returns the full verified config detail with the variation attached.

Step 3 (Alternative): Two-Step Creation

If the user asks for more control or a step-by-step approach, use the individual tools:

  1. create-ai-config -- create the config shell
  2. create-ai-config-variation -- add the variation with model, prompts, and parameters
  3. get-ai-config -- verify the result

Infer the variation key (default), name (Default), instructions/messages, 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.

Step 4: Verify

If you used setup-ai-config, verification is automatic: the response includes the full config with variations. Check:

  1. Config exists with the correct mode
  2. Variation has a model assigned (not "NO MODEL")
  3. Instructions or messages are present
  4. Parameters are set

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.

Report results:

  • Config created with correct structure
  • Variation has model assigned
  • Flag any missing model or parameters
  • Provide config URL: https://app.launchdarkly.com/projects/{projectKey}/ai-configs/{configKey}

Step 5: Make the variation servable

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.

What to tell the user

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.

modelConfigKey Format

Required for models to display in the UI. Format: {Provider}.{model-id}

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

The create-ai-config-variation tool validates this format and rejects invalid values.

Edge Cases

SituationAction

Config already exists

Ask if user wants to update instead

Variation shows "NO MODEL"

Use update-ai-config-variation to set modelConfigKey

Need to attach tools

Create tools first (tools skill), then update the variation

What NOT to Do

  • Don't create configs without understanding the use case
  • Don't try to attach tools during initial creation -- update the variation afterward
  • Don't forget modelConfigKey (models won't show in the UI)
  • 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.
  • 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.
  • 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.

More resources

To learn more about creating a config in the LaunchDarkly UI, read Create configs

To learn more about configuring the SDK, read:

  • tools -- Create tools before attaching
  • configs-variations -- Add more variations for experimentation
  • configs-update -- Modify configs based on learnings

Install

Install with chainctl
chainctl skill install public/launchdarkly/configs-create:latest
Get started with chainctl
View source

Harden your own skills

Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.

Provenance

Upstream sourcehttps://github.com/launchdarkly/agent-skills
Upstream commitef549715fe267e6027ba9172819205621b58eee1
OCI reference

skills.cgr.dev/public/github.com/launchdarkly/skills/agentcontrol/configs-create:latest

License

Apache-2.0

Files

HARDENING.md

LICENSE

README.md

SKILL.md


The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.