Parameterized agents are pre-built agents that you can customize for your specific needs without editing code. Think of them as templates that adapt to your project, client, or context.
Example:
Instead of creating separate agents for each client project, you use one "Requirements Engineer" agent and customize it with:
- Your project name
- Client name
- Programming languages
- Output preferences
✅ No code editing required - Customize via simple configuration files
✅ Consistent behavior - Same proven agent logic, different context
✅ Easy updates - Agent improvements apply to all your customizations
✅ Quick setup - Configure once per project, use repeatedly
✅ Share-friendly - Team members can use same agents with their own settings
Map your project folder to a workspace:
!add_local_workspace /path/to/your/project --name my_projectExample:
!add_local_workspace C:\Projects\Gatekeeper --name gatekeeper
!add_local_workspace /home/user/acme-api --name acme_api!set_active_workspace my_project
# or use the shorthand:
!saw my_projectCreate a file named .agentc.meta.yaml in your project root:
meta:
agents:
# Replace with actual agent key you want to customize
rita_requirements_engineer:
project_name: "My Awesome Project"
client_name: "My Company"
source_lang: "Python"
target_lang: "TypeScript"!ppThis shows the rendered prompt with your customizations applied.
Look for a comment block at the top of the agent definition or in documentation:
# PARAMETERIZED AGENT: Rita - Requirements Engineer
#
# Customizable Parameters:
# - project_name: Display name of the project
# - client_name: Client/company name
# - source_lang: Source code language
# - target_lang: Target language for migration
# - code_folder: Relative path to code
# - reference_folder: Output folder for docsSimply ask: "What parameters can I customize in your configuration?"
Use !pp to see all variables in the render context.
meta:
agents:
agent_key_name:
parameter_name: "value"
another_parameter: "another value"meta:
agents:
rita_requirements_engineer:
project_name: "Gatekeeper"
client_name: "ACME Corp"
source_lang: "VB.Net"
target_lang: "C#"
app_target: "modern C# Angular application"
code_folder: "src"
reference_folder: "docs"meta:
agents:
# Customize Rita
rita_requirements_engineer:
project_name: "Gatekeeper"
client_name: "ACME Corp"
source_lang: "VB.Net"
# Customize another agent
pyper_python_code_quality_specialist:
style_guide: "ACME Python Standards"
max_line_length: 100Apply settings to all agents:
meta:
agents:
default:
client_name: "ACME Corp"
company_logo: "acme_logo.png"
output_format: "Markdown"
# Agent-specific overrides
rita_requirements_engineer:
project_name: "Gatekeeper"
# Inherits client_name and company_logo from defaultAgents use instruction blocks - reusable pieces of their instructions. You can create workspace-specific versions of these blocks to customize agent behavior more deeply.
- Custom formatting requirements - Your company's documentation style
- Client-specific guidelines - Special rules for a particular client
- Environment variations - Different instructions for dev/staging/prod
- Language-specific patterns - Programming style guides per language
-
Find the block path - Usually documented or visible in
!pp- Example:
blocks/common/style_guide
- Example:
-
Create workspace override:
your_project_folder/ └── .agentc/ └── blocks/ └── common/ └── style_guide.md -
Write your custom content:
# ACME Corp Style Guide - Use American English spelling - Maximum line length: 100 characters - Follow PEP 8 for Python code - Include copyright headers on all files
-
Reload blocks:
!lb -
Verify with prompt preview:
!pp
Scenario: You want Rita to use your company's output format.
Standard block location: blocks/process/rev_eng/output_format.md
Your override:
/path/to/project/
└── .agentc/
└── blocks/
└── process/
└── rev_eng/
└── output_format.md
Your custom format:
## ACME Documentation Format
### File Structure
- Use ACME template: `ACME_{{module_name}}_Analysis.md`
- Include ACME header on all documents
- Tag with project code: {{project_name}}-{{timestamp}}
### Content Requirements
1. Executive Summary (1 page max)
2. Technical Deep Dive
3. Risk Assessment
4. Recommendations
5. ACME Sign-off SectionWhen Rita includes {{ blocks/process/rev_eng/output_format }}, your version loads automatically!
| Command | Shorthand | Purpose |
|---|---|---|
!add_local_workspace {path} --name {name} |
- | Map a folder to a workspace |
!set_active_workspace {name} |
!saw |
Set active workspace for session |
!load_blocks |
!lb |
Reload block registry (after changes) |
!pp |
- | Preview rendered prompt with your customizations |
# Add workspace
!add_local_workspace C:\Projects\Gatekeeper --name gatekeeper
# Switch to it
!saw gatekeeper
# Make changes to .agentc.meta.yaml or .agentc/blocks/...
# Reload blocks
!lb
# Verify changes
!ppScenario: You review code for multiple clients, each with different standards.
Setup for Client A:
!add_local_workspace /projects/client-a --name client_a
!saw client_aClient A's .agentc.meta.yaml:
meta:
agents:
code_reviewer:
client_name: "Client A"
coding_standard: "Google Style Guide"
max_complexity: 10
require_tests: trueClient A's custom style block:
/projects/client-a/.agentc/blocks/review/style_rules.md
Setup for Client B:
!saw client_bClient B's .agentc.meta.yaml:
meta:
agents:
code_reviewer:
client_name: "Client B"
coding_standard: "Internal Standard v2.1"
max_complexity: 15
require_tests: falseResult: Same agent, different behavior per client!
Scenario: Migrating VB.Net application to C# Angular.
Workspace setup:
!add_local_workspace C:\Migration\Gatekeeper --name gatekeeper
!saw gatekeeper.agentc.meta.yaml:
meta:
agents:
default:
project_name: "Gatekeeper"
client_name: "ACME Corp"
rita_requirements_engineer:
source_lang: "VB.Net"
target_lang: "C#"
app_target: "modern C# Angular application"
code_folder: "legacy/src"
reference_folder: "migration_docs"
migration_specialist:
migration_phase: "phase_1_backend"
test_coverage_target: "90%"Custom blocks:
gatekeeper/
├── .agentc.meta.yaml
└── .agentc/
└── blocks/
├── migration/
│ └── acme_patterns.md # ACME-specific patterns
└── testing/
└── acme_test_policy.md # ACME test requirements
Scenario: Working with Python, TypeScript, and Go projects.
.agentc.meta.yaml:
meta:
agents:
default:
company_name: "My Company"
code_assistant:
primary_language: "Python"
secondary_languages:
- "TypeScript"
- "Go"
style_guide_url: "https://docs.mycompany.com/style"
linter_config: ".pylintrc"Language-specific overrides:
project/
└── .agentc/
└── blocks/
├── languages/
│ ├── python/
│ │ └── best_practices.md
│ ├── typescript/
│ │ └── best_practices.md
│ └── go/
│ └── best_practices.md
Agent automatically uses the right guide based on context!
- ✅ Create/map workspace:
!add_local_workspace - ✅ Activate workspace:
!saw workspace_name - ✅ Create
.agentc.meta.yamlwith your parameters - ✅ Verify with
!pp
- ✅ Start session:
!saw workspace_name - ✅ Work with agents normally - they use your customizations automatically
- ✅ Update
.agentc.meta.yamlas project evolves - ✅ Reload blocks if you change them:
!lb
# Morning: Work on Project A
!saw project_a
# Afternoon: Switch to Project B
!saw project_bAll agents automatically adapt to the active workspace!
Solution:
- Verify workspace is active:
!saw workspace_name - Check
.agentc.meta.yamlis in workspace root - Verify agent key matches exactly:
!ppto see what's loaded - Check YAML syntax (spaces matter!)
Solution:
- Reload blocks:
!lb - Check path structure:
.agentc/blocks/{exact/path/from/original} - Verify file extension matches (
.md) - Use
!ppto see which blocks loaded
Solution:
- After changing
.agentc.meta.yaml: Restart chat or reload agent - After changing
.agentc/blocks/: Run!lb - Verify with
!ppafter changes
Solution:
# ❌ Wrong - inconsistent indentation
meta:
agents:
my_agent:
parameter: "value" # Messed up indent
# ✅ Correct - consistent 2-space indentation
meta:
agents:
my_agent:
parameter: "value"Use a YAML validator if unsure!
Add comments to your .agentc.meta.yaml:
meta:
agents:
rita_requirements_engineer:
# Project identification
project_name: "Gatekeeper"
client_name: "ACME Corp"
# Migration settings - changed from Python 2024-02-15
source_lang: "VB.Net"
target_lang: "C#"
# Folder structure
code_folder: "src" # Main source code
reference_folder: "docs" # Output documentationOnly override what's actually different:
meta:
agents:
default:
# Company-wide settings
company_name: "ACME Corp"
output_format: "Markdown"
# Only override project-specific details
rita_requirements_engineer:
project_name: "Gatekeeper"
source_lang: "VB.Net"✅ DO commit:
.agentc.meta.yaml.agentc/blocks/custom blocks
❌ DON'T commit:
- Sensitive credentials
- API keys
- Personal preferences
Only override what you need to change:
# ❌ Don't copy entire instruction blocks just to change one line
# ✅ Create minimal override that references the original when possibleBefore sharing with team:
- Test with fresh workspace
- Verify
!ppshows expected values - Document non-obvious customizations
- Include setup instructions
meta:
agents:
my_agent:
project_name: "MyProject"meta:
agents:
# Company-wide defaults
default:
company_name: "ACME Corp"
company_logo: "assets/acme_logo.png"
output_format: "Markdown"
timezone: "America/New_York"
# Requirements engineer
rita_requirements_engineer:
project_name: "Gatekeeper"
client_name: "ACME Corp" # Overrides default if needed
source_lang: "VB.Net"
target_lang: "C#"
app_target: "modern C# Angular application"
code_folder: "src"
reference_folder: "migration_docs"
migration_phase: "requirements"
# Code reviewer
code_reviewer:
coding_standard: "ACME C# Standard v3.2"
max_complexity: 12
require_tests: true
test_coverage_min: 85
# Migration specialist
migration_specialist:
migration_strategy: "phased"
current_phase: "phase_1_backend"
test_coverage_target: "90%"
deployment_env: "staging"Most parameterized agents can explain their configuration:
- "What parameters can I customize?"
- "Show me an example configuration"
- "What blocks can I override?"
Look for:
- Comments in agent YAML files
designers_guide_parameterized_agents.md- Agent-specific documentation
!ppShows:
- Current render variables
- Loaded blocks
- Active customizations
Parameterized agents are easy to use:
- ✅ Map your project folder:
!add_local_workspace - ✅ Create
.agentc.meta.yamlin project root - ✅ Customize parameters under
meta/agents/{agent_key} - ✅ Activate workspace:
!saw workspace_name - ✅ Verify:
!pp - ✅ Work normally - agents adapt automatically!
Optional advanced customization:
- Create
.agentc/blocks/overrides for deeper customization - Reload with
!lbafter block changes
The benefit: Reuse powerful agents across projects without code duplication!
- For Agent Designers: designers_guide_parameterized_agents.md
- Workspaces: workspace_user_guide.md
- Instruction Blocks: users_guide_instruction_blocks.md