Real-world workspace.yml examples for common use cases
version: "1.0"
workspace:
name: "personal-assistant"
description: "AI assistant for daily tasks"
agents:
assistant:
type: "llm"
model: "claude-3-5-sonnet-20241022"
purpose: "Help with various tasks"
prompts:
system: |
You are a helpful personal assistant. You can:
- Answer questions
- Help with planning and organization
- Provide recommendations
- Assist with problem-solving
Be friendly, concise, and practical.
signals:
ask:
provider: "cli"
description: "Ask the assistant anything"
jobs:
assist:
triggers:
- signal: "ask"
execution:
agents:
- id: "assistant"
input_source: "signal"
version: "1.0"
workspace:
name: "customer-support"
description: "Intelligent customer support system"
agents:
# Understands customer intent
classifier:
type: "llm"
model: "claude-3-5-haiku-20241022"
purpose: "Classify support requests"
prompts:
system: |
Classify customer support requests into:
- technical: Product issues, bugs, errors
- billing: Payment, subscriptions, refunds
- general: Other questions
Also rate urgency: low, medium, high
Output JSON: {"category": "...", "urgency": "..."}
config:
temperature: 0.1
# Technical support specialist
tech-support:
type: "llm"
model: "claude-3-5-sonnet-20241022"
purpose: "Resolve technical issues"
prompts:
system: |
You are a technical support expert. You:
- Diagnose technical problems
- Provide step-by-step solutions
- Explain technical concepts clearly
- Escalate when necessary
tools: ["knowledge-base", "system-status"]
# Billing specialist
billing-support:
type: "llm"
model: "claude-3-5-sonnet-20241022"
purpose: "Handle billing inquiries"
prompts:
system: |
You are a billing specialist. You:
- Explain charges and subscriptions
- Process refund requests
- Update payment information
- Resolve billing disputes
Always be empathetic about money matters.
# General support
general-support:
type: "llm"
model: "claude-3-5-haiku-20241022"
purpose: "Handle general inquiries"
prompts:
system: |
You are a friendly support agent handling general questions.
Be helpful, patient, and direct customers to resources.
signals:
support-ticket:
provider: "webhook"
description: "New support ticket"
config:
path: "/webhooks/support"
schema:
type: "object"
properties:
customer_id: { type: "string" }
message: { type: "string" }
metadata: { type: "object" }
required: ["customer_id", "message"]
jobs:
handle-ticket:
name: "Support Ticket Handler"
triggers:
- signal: "support-ticket"
execution:
strategy: "sequential"
agents:
# First: classify the request
- id: "classifier"
input_source: "signal"
task: "Classify this support request"
# Then: route to appropriate specialist
- id: "dynamic"
input_source: "signal"
routing:
based_on: "previous.category"
routes:
technical: "tech-support"
billing: "billing-support"
general: "general-support"
config:
memory:
enabled: true
create_memories: true
memory_tags: ["support", "customer-interaction"]
tools:
mcp:
servers:
knowledge-base:
transport:
type: "http"
url: "http://kb-api:8080/mcp"
config:
index: "support-docs"
system-status:
transport:
type: "stdio"
command: "mcp-status-checker"
version: "1.0"
workspace:
name: "content-creator"
description: "AI-powered content creation pipeline"
agents:
researcher:
type: "llm"
model: "claude-3-5-sonnet-20241022"
purpose: "Research topics thoroughly"
prompts:
system: |
You are a research specialist who:
- Finds accurate, current information
- Identifies key themes and insights
- Provides comprehensive background
- Cites all sources
Focus on depth and accuracy over speed.
tools: ["web-search", "academic-search"]
config:
temperature: 0.3
writer:
type: "llm"
model: "claude-3-5-sonnet-20241022"
purpose: "Write engaging content"
prompts:
system: |
You are a professional content writer who creates:
- Engaging, well-structured articles
- SEO-optimized content
- Reader-friendly formatting
- Compelling headlines
Match tone to the target audience.
config:
temperature: 0.7
max_tokens: 3000
editor:
type: "llm"
model: "claude-3-5-sonnet-20241022"
purpose: "Edit and polish content"
prompts:
system: |
You are a professional editor who:
- Improves clarity and flow
- Fixes grammar and style
- Ensures factual accuracy
- Optimizes for readability
Preserve the author's voice while improving quality.
config:
temperature: 0.2
seo-optimizer:
type: "llm"
model: "claude-3-5-haiku-20241022"
purpose: "Optimize for search engines"
prompts:
system: |
You are an SEO specialist. Optimize content by:
- Adding relevant keywords naturally
- Creating meta descriptions
- Suggesting internal links
- Improving headings structure
Output: {content, meta_description, keywords[], suggestions[]}
signals:
create-content:
provider: "cli"
description: "Create new content"
schema:
type: "object"
properties:
topic: { type: "string" }
audience:
type: "string"
enum: ["technical", "business", "general"]
length:
type: "integer"
minimum: 500
maximum: 5000
keywords:
type: "array"
items: { type: "string" }
required: ["topic", "audience"]
scheduled-content:
provider: "schedule"
description: "Weekly content creation"
config:
schedule: "0 9 * * MON" # Every Monday at 9 AM
data:
source: "content-calendar"
jobs:
content-pipeline:
name: "Content Creation Pipeline"
triggers:
- signal: "create-content"
- signal: "scheduled-content"
execution:
strategy: "sequential"
agents:
- id: "researcher"
input_source: "signal"
task: "Research {topic} for {audience} audience"
config:
min_sources: 5
- id: "writer"
input_source: "combined"
input_mapping:
research: "previous"
requirements: "signal"
task: "Write a {length}-word article based on research"
- id: "editor"
input_source: "previous"
task: "Edit and improve the article"
- id: "seo-optimizer"
input_source: "combined"
input_mapping:
content: "previous"
keywords: "signal.keywords"
task: "Optimize for SEO"
config:
timeout: "1800s" # 30 minutes
output:
save_to: "./content/articles/"
format: "markdown"
tools:
mcp:
servers:
web-search:
transport:
type: "stdio"
command: "mcp-websearch"
env:
SEARCH_API_KEY: "${SEARCH_API_KEY}"
academic-search:
transport:
type: "http"
url: "https://scholar-api.example.com/mcp"
auth:
type: "api_key"
key_env: "SCHOLAR_API_KEY"
version: "1.0"
workspace:
name: "data-analytics"
description: "Automated data analysis and insights"
agents:
data-validator:
type: "llm"
model: "claude-3-5-haiku-20241022"
purpose: "Validate and clean data"
prompts:
system: |
You validate data quality by checking for:
- Missing values
- Data type consistency
- Outliers and anomalies
- Format compliance
Output a data quality report with issues and recommendations.
statistician:
type: "llm"
model: "claude-3-5-sonnet-20241022"
purpose: "Perform statistical analysis"
prompts:
system: |
You are a statistical analyst who:
- Calculates descriptive statistics
- Identifies correlations
- Tests hypotheses
- Explains findings clearly
Always show your calculations and confidence levels.
tools: ["calculator", "python-executor"]
visualizer:
type: "llm"
model: "claude-3-5-sonnet-20241022"
purpose: "Create data visualizations"
prompts:
system: |
You create data visualizations by:
- Choosing appropriate chart types
- Writing Python code using matplotlib/seaborn
- Explaining what the visualization shows
Focus on clarity and insight.
tools: ["python-executor", "chart-builder"]
insight-generator:
type: "llm"
model: "claude-3-5-sonnet-20241022"
purpose: "Generate business insights"
prompts:
system: |
You translate data analysis into business insights:
- Identify key findings
- Explain business impact
- Provide recommendations
- Highlight risks and opportunities
Write for executive audiences.
signals:
analyze-data:
provider: "cli"
description: "Analyze uploaded data"
schema:
type: "object"
properties:
file_path: { type: "string" }
analysis_type:
type: "string"
enum: ["exploratory", "diagnostic", "predictive"]
focus_areas:
type: "array"
items: { type: "string" }
daily-metrics:
provider: "schedule"
description: "Daily metrics analysis"
config:
schedule: "0 7 * * *" # 7 AM daily
data:
source: "metrics-database"
period: "last_24_hours"
jobs:
analyze-pipeline:
name: "Data Analysis Pipeline"
triggers:
- signal: "analyze-data"
execution:
strategy: "sequential"
agents:
- id: "data-validator"
input_source: "signal"
task: "Validate data from {file_path}"
- id: "statistician"
input_source: "previous"
task: "Perform {analysis_type} analysis"
context:
focus_areas: "{focus_areas}"
- id: "visualizer"
input_source: "previous"
task: "Create visualizations for key findings"
- id: "insight-generator"
input_source: "combined"
input_mapping:
validation: "agents.data-validator"
analysis: "agents.statistician"
visuals: "agents.visualizer"
task: "Generate executive insights report"
config:
memory:
enabled: true
create_memories: true
memory_tags: ["analysis", "data-insights"]
output:
format: "pdf"
include_visualizations: true
email_to: ["analytics@example.com"]
tools:
mcp:
servers:
calculator:
transport:
type: "stdio"
command: "mcp-calculator"
python-executor:
transport:
type: "stdio"
command: "mcp-python"
config:
packages: ["pandas", "numpy", "scipy", "matplotlib", "seaborn"]
memory_limit: "2GB"
timeout: "60s"
chart-builder:
transport:
type: "http"
url: "http://chart-service:8080/mcp"
config:
output_format: "png"
resolution: "300dpi"
version: "1.0"
workspace:
name: "dev-assistant"
description: "AI-powered development assistant"
agents:
code-reviewer:
type: "llm"
model: "claude-3-5-sonnet-20241022"
purpose: "Review code quality"
prompts:
system: |
You are a senior code reviewer who checks for:
- Code quality and readability
- Security vulnerabilities
- Performance issues
- Best practices
- Test coverage
Provide specific, actionable feedback with examples.
tools: ["code-analyzer", "security-scanner"]
test-writer:
type: "llm"
model: "claude-3-5-sonnet-20241022"
purpose: "Write comprehensive tests"
prompts:
system: |
You write comprehensive tests including:
- Unit tests for all functions
- Integration tests for workflows
- Edge case handling
- Mock data and fixtures
Use the project's testing framework.
tools: ["code-executor", "test-runner"]
doc-writer:
type: "llm"
model: "claude-3-5-sonnet-20241022"
purpose: "Write technical documentation"
prompts:
system: |
You write clear technical documentation:
- API documentation
- Code comments
- README files
- Architecture docs
Focus on clarity and completeness.
refactorer:
type: "llm"
model: "claude-3-5-sonnet-20241022"
purpose: "Suggest code improvements"
prompts:
system: |
You suggest code refactoring to improve:
- Code organization
- Reusability
- Performance
- Maintainability
Provide before/after examples.
signals:
review-pr:
provider: "webhook"
description: "Review pull request"
config:
path: "/webhooks/github"
auth:
type: "secret"
header: "X-Hub-Signature-256"
secret_env: "GITHUB_WEBHOOK_SECRET"
improve-code:
provider: "cli"
description: "Improve specific code"
schema:
type: "object"
properties:
file_path: { type: "string" }
focus:
type: "array"
items:
type: "string"
enum: ["performance", "security", "readability", "tests"]
jobs:
pr-review:
name: "Pull Request Review"
triggers:
- signal: "review-pr"
condition:
type: "json_logic"
logic:
"==": [{"var": "action"}, "opened"]
execution:
strategy: "parallel"
agents:
- id: "code-reviewer"
task: "Review code changes"
- id: "security-scanner"
task: "Check for security issues"
- id: "test-analyzer"
task: "Analyze test coverage"
# Synthesize results
post_execution:
agent: "reviewer"
task: "Synthesize all feedback into PR comment"
code-improvement:
name: "Code Improvement Assistant"
triggers:
- signal: "improve-code"
execution:
strategy: "sequential"
agents:
- id: "code-reviewer"
input_source: "signal"
task: "Analyze {file_path} focusing on {focus}"
- id: "refactorer"
input_source: "previous"
task: "Suggest specific improvements"
- id: "test-writer"
input_source: "signal"
task: "Write tests for {file_path}"
condition:
includes: ["tests", "focus"]
- id: "doc-writer"
input_source: "combined"
task: "Update documentation"
tools:
mcp:
servers:
code-analyzer:
transport:
type: "stdio"
command: "mcp-code-analyzer"
config:
languages: ["python", "javascript", "typescript", "go"]
security-scanner:
transport:
type: "http"
url: "https://security-api.example.com/mcp"
auth:
type: "bearer"
token_env: "SECURITY_API_TOKEN"
github:
transport:
type: "stdio"
command: "mcp-github"
env:
GITHUB_TOKEN: "${GITHUB_TOKEN}"