Generate starter files for a new Hugin agent
Generate starter files for a new Hugin agent by reading templates from this plugin and customizing them.
Parse the user's arguments to extract:
minimal, tool, or pipeline (default: minimal)Example invocations:
/hugin-agent-creator:hugin-scaffold my_agent - Creates minimal agent/hugin-agent-creator:hugin-scaffold data_processor tool - Creates agent with custom tool/hugin-agent-creator:hugin-scaffold report_generator pipeline - Creates multi-stage pipelineExtract agent_name and type from user input. Validate agent_name is snake_case.
Use Bash to create the directories:
mkdir -p [agent_name]/configs [agent_name]/tasks [agent_name]/templates
# For 'tool' type also:
mkdir -p [agent_name]/tools
IMPORTANT: Read the actual template files from this plugin, then customize them.
Read templates/minimal-config.yaml from this plugin
my_agent with [agent_name]my_system with [agent_name]_system[agent_name]/configs/[agent_name].yamlRead templates/minimal-task.yaml from this plugin
my_task with [agent_name]_task[agent_name]/tasks/[agent_name]_task.yamlRead templates/minimal-template.yaml from this plugin
my_system with [agent_name]_system[agent_name]/templates/[agent_name]_system.yamlRead templates/tool-definition.yaml from this plugin
my_tool with [agent_name]_tool[agent_name]/tools/[agent_name]_tool.yamlRead templates/tool-implementation.py from this plugin
my_tool with [agent_name]_tool[agent_name]/tools/[agent_name]_tool.pyInstead of the single task, create 3 stage tasks:
Read templates/minimal-task.yaml as base, then create:
tasks/stage_1_extract.yaml:
name: stage_1_extract
description: Extract data from input (Stage 1)
parameters:
raw_input:
type: string
description: Raw input data
required: false
default: "Sample input data"
task_sequence:
- stage_2_transform
- stage_3_output
pass_result_as: extracted_data
prompt: |
STAGE 1: EXTRACT
Raw Input: {{ raw_input.value }}
Your task:
1. Parse the raw input
2. Extract key information
3. Use finish with your structured extraction as the result
The result will be passed to Stage 2.
tasks/stage_2_transform.yaml:
name: stage_2_transform
description: Transform extracted data (Stage 2)
parameters:
extracted_data:
type: string
description: Data from Stage 1
required: false
default: ""
pass_result_as: transformed_data
prompt: |
STAGE 2: TRANSFORM
Extracted Data: {{ extracted_data.value }}
Your task:
1. Transform the extracted data
2. Apply any necessary processing
3. Use finish with your transformed result
The result will be passed to Stage 3.
tasks/stage_3_output.yaml:
name: stage_3_output
description: Generate final output (Stage 3)
parameters:
transformed_data:
type: string
description: Data from Stage 2
required: false
default: ""
prompt: |
STAGE 3: OUTPUT
Transformed Data: {{ transformed_data.value }}
Your task:
1. Generate the final output
2. Format it appropriately
3. Use finish with your final result
Update the system template for pipeline context:
name: [agent_name]_system
template: |
You are a data processing assistant working in a multi-stage pipeline.
Follow your stage instructions carefully. Your output will be passed to the next stage.
Always use the finish tool when your stage is complete, including your result.
After creating all files, print:
Created [agent_name] agent ([type] type)
Directory: ./[agent_name]/
Files created:
- configs/[agent_name].yaml
- tasks/[task_name].yaml
- templates/[agent_name]_system.yaml
[If tool type:]
- tools/[agent_name]_tool.yaml
- tools/[agent_name]_tool.py
Run your agent:
uv run hugin run --task [task_name] --task-path ./[agent_name]
Next steps:
1. Edit configs/[agent_name].yaml to customize the agent
2. Edit tasks/[task_name].yaml to define your task logic
3. Edit templates/[agent_name]_system.yaml for the system prompt
[If tool type:]
4. Implement your tool in tools/[agent_name]_tool.py
[If pipeline type:]
4. Customize each stage task in tasks/
For more guidance: /hugin-agent-creator:hugin-guide
All templates are in this plugin's templates/ directory:
templates/minimal-config.yamltemplates/minimal-task.yamltemplates/minimal-template.yamltemplates/tool-definition.yamltemplates/tool-implementation.pyAlways read these files rather than hardcoding their content. This ensures scaffolded agents use the latest template versions.