Examples
Patterns for defining Experts. Each example highlights a specific skill type or integration approach.
File Search
Pattern: No skill definition needed — Base Skill provides file access by default.
[experts."invoice-finder"]
description = "Searches and analyzes invoices from workspace files"
instruction = """
You are an invoice search assistant.
Search the invoices directory, extract key information, and present findings.
"""All Experts can use readTextFile, listDirectory, and other workspace tools without explicit skill definitions.
Web Search
Pattern: Use mcpStdioSkill with an npm package. Auto-installed at runtime.
[experts."market-monitor"]
description = "Monitors stock market changes and analyzes trends"
instruction = """
You are a market monitoring assistant.
Search for latest market news, compare with previous reports, and highlight changes.
"""
[experts."market-monitor".skills."web-search"]
type = "mcpStdioSkill"
command = "npx"
packageName = "exa-mcp-server"
requiredEnv = ["EXA_API_KEY"]Uses Exa MCP Server . Set EXA_API_KEY environment variable.
Custom MCP Server
Pattern: Use mcpStdioSkill with your own MCP server for internal systems.
[experts."support-assistant"]
description = "Provides customer support using internal knowledge base"
instruction = """
You are a customer support assistant.
Look up customer info, search the knowledge base, and provide solutions.
"""
[experts."support-assistant".skills."customer-db"]
type = "mcpStdioSkill"
command = "node"
args = ["./mcp-servers/customer-db.js"]
requiredEnv = ["DB_CONNECTION_STRING"]
[experts."support-assistant".skills."knowledge-base"]
type = "mcpStdioSkill"
command = "node"
args = ["./mcp-servers/knowledge-base.js"]Implement MCP servers in Node.js, Python, or any language. Keep credentials in environment variables.
Interactive Wizard
Pattern: Use interactiveSkill to pause execution and wait for user input.
[experts."project-setup"]
description = "Guides users through project setup"
instruction = """
You are a setup wizard.
Use askChoice to ask about project type, framework, and tooling.
Generate config files based on selections.
"""
[experts."project-setup".skills."interaction"]
type = "interactiveSkill"
[experts."project-setup".skills."interaction".tools."askChoice"]
description = "Ask user to choose from options"
inputJsonSchema = """
{
"type": "object",
"properties": {
"question": { "type": "string" },
"options": { "type": "array", "items": { "type": "string" } }
},
"required": ["question", "options"]
}
"""When askChoice is called, execution pauses until the user responds.
Application Integration
Pattern: Use interactiveSkill to let your application handle operations the Expert triggers.
[experts."shopping-concierge"]
description = "Helps find products and add to cart"
instruction = """
You are a shopping assistant.
Find matching products, then use addToCart to add them.
"""
[experts."shopping-concierge".skills."catalog"]
type = "mcpStdioSkill"
command = "node"
args = ["./mcp-servers/product-catalog.js"]
[experts."shopping-concierge".skills."app"]
type = "interactiveSkill"
[experts."shopping-concierge".skills."app".tools."addToCart"]
description = "Add product to cart"
inputJsonSchema = """
{
"type": "object",
"properties": {
"productId": { "type": "string" },
"quantity": { "type": "number" }
},
"required": ["productId", "quantity"]
}
"""When addToCart is called, execution pauses and returns control to your application. Your app performs the cart operation, then resumes the Expert. This pattern separates AI reasoning from actual operations.