Configuration Layers
Skills use a 4-layer configuration model where each layer can override settings from the previous layer:1
Layer 1: Variant Defaults
Source: Built-in variant templatesBase configuration provided by the variant you select (Read Only, Full Access, etc.)
2
Layer 2: Skill Instance
Source: Your skill creation/configurationCustom settings you define when creating the skill instance
3
Layer 3: Entity-Level
Source: Team, Agent, or Environment configurationSettings that apply to all skills used by that entity
4
Layer 4: Runtime
Source: Execution context (environment variables, dynamic parameters)Final overrides that apply at execution time
Precedence Rules
Last Layer Wins
When the same setting appears in multiple layers, the highest layer (closest to runtime) takes precedence:Complete Example
Dynamic Configuration Examples
- Environment Variables
- Team-Level
- Agent-Specific
- Environment Promotion
Using Environment Variables
Reference environment variables in your skill configuration for dynamic behavior:Configuration Validation
What Can Be Overridden
Not all settings can be overridden at every layer. Security settings are strictly controlled:| Setting Type | Variant | Instance | Team | Agent | Runtime |
|---|---|---|---|---|---|
| Timeouts | ✅ | ✅ | ✅ | ✅ | ✅ |
| Memory Limits | ✅ | ✅ | ✅ | ✅ | ✅ |
| Directories | Locked in some variants | ✅ | ✅ | ✅ | ✅ |
| Commands (shell) | Variant-specific | ✅ | ✅ | ✅ | ❌ |
| File Extensions | ✅ | ✅ | ✅ | ✅ | ✅ |
| Security Flags | ❌ Locked | ❌ | ❌ | ❌ | ❌ |
| Variant Type | ❌ Locked | ❌ | ❌ | ❌ | ❌ |
Validation Flow
When a configuration override is attempted:Common Patterns
Pattern 1: Progressive Restriction
Start permissive at skill instance level, then restrict at team/agent levels:Pattern 2: Environment-Aware Defaults
Adjust behavior based on environment without changing skill definition:Pattern 3: Team Workspace Isolation
Give each team their own workspace while using shared skill:Troubleshooting
Override Not Taking Effect
Override Not Taking Effect
Problem: Configuration change isn’t being appliedSolutions:
- Check Layer Precedence: A higher layer may be overriding your setting
- Verify Setting is Overridable: Check if it’s locked by variant
- Review Validation Errors: Check logs for validation failures
- Confirm Scope: Ensure override is applied to correct entity (team/agent)
Unexpected Configuration Values
Unexpected Configuration Values
Problem: Effective configuration doesn’t match expectationsSolutions:
- View Effective Config:
- Trace Configuration Layers:
- Check Environment Variables: Verify runtime variables are set
- Review Inheritance Chain: Variant → Instance → Team → Agent → Runtime
Validation Errors
Validation Errors
Problem: Configuration override rejected with validation errorSolutions:
- Security Violation: Check you’re not trying to override locked settings
- Out of Range: Ensure values are within acceptable limits (timeouts, memory, etc.)
- Type Mismatch: Verify value types match expected format (string, number, boolean, array)
- Permission Denied: Confirm you have rights to set this configuration at this layer
Environment Variable Not Resolving
Environment Variable Not Resolving
Problem: Variable syntax
{{VAR}} not being replacedSolutions:- Check Syntax: Use
{{VARIABLE_NAME}}or{{VARIABLE_NAME:default}} - Verify Variable is Set: Check environment where skill executes
- Quote Properly: Environment variables in YAML may need quotes
- Check Worker Config: Ensure worker has access to environment variables
Best Practices
Use Variables for Environments
Use
{{ENV_VAR}} syntax for settings that differ across dev/staging/prodSet Defaults in Instance
Define sensible defaults at skill instance level, override only when needed
Team-Level for Shared
Use team-level config for settings shared across team agents
Document Overrides
Comment your configuration overrides explaining why they’re needed