Project Templates Guide
Navigation: Documentation Home → Guides → Project Templates
Learn how to use built-in templates and create custom project templates for AgenticGoKit projects.
Overview
AgenticGoKit's template system allows you to quickly scaffold projects with pre-configured settings for common use cases. Templates can be built-in (provided with AgenticGoKit) or custom (defined by you or your team).
Quick Start
Using Built-in Templates
# Create a research assistant with web search capabilities
agentcli create research-bot --template research-assistant
# Create a RAG-powered knowledge base
agentcli create knowledge-base --template rag-system
# Create a data processing pipeline
agentcli create data-pipeline --template data-pipeline
# List all available templates
agentcli template list
Creating Custom Templates
# Create a new template file
agentcli template create my-company-standard
# Edit the generated template file
# .agenticgokit/templates/my-company-standard.yaml
# Use your custom template
agentcli create my-project --template my-company-standard
Built-in Templates
basic
Simple Multi-Agent System
- 2 agents with sequential orchestration
- Basic error handling and responsible AI
- Good starting point for learning
agentcli create my-project --template basic
research-assistant
Multi-Agent Research System
- 3 collaborative agents (researcher, analyzer, synthesizer)
- Web search and summarization tools via MCP
- Ideal for information gathering and analysis
agentcli create research-bot --template research-assistant
rag-system
RAG Knowledge Base
- 3 collaborative agents for document processing
- PostgreSQL with vector search (pgvector)
- OpenAI embeddings and RAG capabilities
- Perfect for Q&A systems and knowledge bases
agentcli create knowledge-base --template rag-system
data-pipeline
Sequential Data Processing
- 4 agents in sequential pipeline (ingester, processor, validator, outputter)
- Error handling and workflow visualization
- Great for ETL and data transformation workflows
agentcli create data-flow --template data-pipeline
chat-system
Conversational System
- 2 agents with route-based orchestration
- Session-based memory for multi-user scenarios
- In-memory storage for fast responses
- Ideal for chatbots and conversational interfaces
agentcli create chat-bot --template chat-system
Template Customization
You can override template defaults with additional flags:
# Use research-assistant template but with 5 agents and production MCP
agentcli create my-research --template research-assistant --agents 5 --mcp production
# Use rag-system template but with Weaviate instead of PostgreSQL
agentcli create my-kb --template rag-system --memory weaviate
# Use basic template but add memory and visualization
agentcli create my-project --template basic --memory pgvector --visualize
Custom Templates
Template Locations
Custom templates are searched in the following locations (in priority order):
- Current directory:
.agenticgokit/templates/
- User home:
~/.agenticgokit/templates/
- System-wide:
- Unix/Linux/macOS:
/etc/agenticgokit/templates/
- Windows:
%PROGRAMDATA%/AgenticGoKit/templates/
- Unix/Linux/macOS:
Template Format
Templates can be defined in JSON or YAML format:
YAML Example
name: "E-commerce Assistant"
description: "Multi-agent system for e-commerce operations"
features:
- "product-search"
- "inventory-management"
- "customer-support"
config:
numAgents: 4
provider: "openai"
orchestrationMode: "collaborative"
collaborativeAgents:
- "product-searcher"
- "inventory-manager"
- "customer-support"
- "order-processor"
# Memory configuration
memoryEnabled: true
memoryProvider: "pgvector"
embeddingProvider: "openai"
# MCP configuration
mcpEnabled: true
mcpTools:
- "product_catalog"
- "inventory_api"
- "customer_db"
# Other options
responsibleAI: true
errorHandler: true
visualize: true
JSON Example
{
"name": "Trading Bot System",
"description": "Multi-agent trading system with market analysis",
"features": [
"market-analysis",
"risk-management",
"automated-trading"
],
"config": {
"numAgents": 5,
"provider": "openai",
"orchestrationMode": "collaborative",
"collaborativeAgents": [
"market-analyzer",
"sentiment-analyzer",
"risk-manager",
"strategy-executor",
"portfolio-manager"
],
"memoryEnabled": true,
"memoryProvider": "pgvector",
"ragEnabled": true,
"mcpEnabled": true,
"mcpProduction": true,
"responsibleAI": true,
"errorHandler": true
}
}
Configuration Options
Basic Configuration
numAgents
(int): Number of agents to createprovider
(string): LLM provider ("openai", "azure", "ollama", "mock")orchestrationMode
(string): Agent coordination ("sequential", "collaborative", "loop", "route")
Agent Configuration
collaborativeAgents
([]string): Agent names for collaborative modesequentialAgents
([]string): Agent names for sequential modeloopAgent
(string): Agent name for loop mode
Memory & RAG Configuration
memoryEnabled
(bool): Enable memory systemmemoryProvider
(string): Memory provider ("memory", "pgvector", "weaviate")embeddingProvider
(string): Embedding provider ("openai", "ollama", "dummy")embeddingModel
(string): Specific embedding modelragEnabled
(bool): Enable RAG functionalityragChunkSize
(int): Document chunk size in tokensragOverlap
(int): Overlap between chunksragTopK
(int): Number of results to retrieveragScoreThreshold
(float): Minimum similarity scorehybridSearch
(bool): Enable hybrid searchsessionMemory
(bool): Enable session-based memory isolation
MCP Configuration
mcpEnabled
(bool): Enable MCP tool integrationmcpProduction
(bool): Enable production MCP featuresmcpTools
([]string): List of MCP tools to includewithCache
(bool): Enable MCP result cachingwithMetrics
(bool): Enable Prometheus metrics
Other Options
responsibleAI
(bool): Include responsible AI featureserrorHandler
(bool): Include error handlingvisualize
(bool): Generate workflow diagrams
Template Management
Creating Templates
# Create a YAML template (default)
agentcli template create my-template
# Create a JSON template
agentcli template create my-template --format json
# Create template in specific location
agentcli template create my-template --output /path/to/template.yaml
Validating Templates
# Validate template syntax and configuration
agentcli template validate my-template.yaml
# Example output:
# Template validation successful!
# Name: My Custom Template
# Description: A custom project template
# Features: [custom-feature, example]
# Agents: 3
# Provider: openai
# Memory: pgvector
# RAG: enabled (chunk size: 1000)
Listing Templates
# List all available templates
agentcli template list
# Show template search paths
agentcli template paths
Common Use Cases
Company Standard Template
Create a template that matches your organization's standards:
name: "Company Standard"
description: "Standard multi-agent setup for our company"
config:
numAgents: 3
provider: "azure" # Company uses Azure
memoryEnabled: true
memoryProvider: "pgvector" # Company standard
embeddingProvider: "openai"
mcpEnabled: true
mcpProduction: true
responsibleAI: true
errorHandler: true
Environment-Specific Templates
Different templates for different environments:
# development-template.yaml
name: "Development Setup"
description: "Fast setup for development"
config:
numAgents: 2
provider: "mock" # Fast for testing
memoryProvider: "memory" # In-memory for speed
mcpEnabled: false # Simplified for dev
# production-template.yaml
name: "Production Setup"
description: "Production-ready configuration"
config:
numAgents: 5
provider: "openai"
memoryEnabled: true
memoryProvider: "pgvector"
ragEnabled: true
mcpEnabled: true
mcpProduction: true
withCache: true
withMetrics: true
Domain-Specific Templates
Templates for specific industries or use cases:
name: "Healthcare Assistant"
description: "HIPAA-compliant healthcare agent system"
config:
numAgents: 3
provider: "azure" # For compliance
orchestrationMode: "sequential"
memoryEnabled: true
memoryProvider: "pgvector"
ragEnabled: true
mcpEnabled: true
mcpTools:
- "medical_database"
- "patient_records"
responsibleAI: true # Critical for healthcare
errorHandler: true
Best Practices
Template Design
- Use descriptive names: Choose template names that clearly indicate their purpose
- Include comprehensive features list: Help users understand what the template provides
- Set sensible defaults: Configure options that work well together
- Document your templates: Include clear descriptions and use cases
Template Organization
- Version your templates: Consider including version information in descriptions
- Share templates: Place commonly used templates in shared locations for team use
- Validate templates: Always test your templates before sharing
- Use consistent naming: Follow naming conventions for your organization
Template Usage
- Start with templates: Use templates as starting points, then customize as needed
- Override when necessary: Use flags to override template defaults for specific needs
- Create project-specific templates: For recurring project patterns, create custom templates
Troubleshooting
Template Not Found
If your template isn't being found:
- Check template search paths:
agentcli template paths
- Ensure the file has the correct extension (
.json
,.yaml
, or.yml
) - Validate the template syntax:
agentcli template validate your-template.yaml
Template Validation Errors
Common validation errors:
- Invalid JSON/YAML syntax: Check for missing commas, quotes, or indentation
- Missing required fields: Ensure
name
,description
, andconfig
are present - Invalid configuration values: Check that provider names, orchestration modes, etc. are valid
Template Override Issues
If template overrides aren't working:
- External templates take priority over built-in templates with the same name
- Check that the template is in the correct search path
- Use
agentcli template list
to see which templates are loaded
Related Guides
- CLI Reference - Complete CLI command reference
- Configuration - Project configuration options
- Getting Started - Basic project creation
- Best Practices - Development best practices