Portal Community

What Defines a Specialist?

A specialist agent is an ordinary AgentComposite configured for depth, not breadth:

Capability Declaration

Each specialist agent declares its capabilities as structured metadata on the AgentComposite. The orchestrator uses this at routing time:

public class AgentCapabilityDeclaration
{
    public List<string> Handles { get; set; }        // what this agent handles
    public List<string> DoesNotHandle { get; set; }  // explicit exclusions
    public List<string> IntentExamples { get; set; } // example phrases for embedding routing
    public string DomainKeywords { get; set; }        // comma-separated keywords for keyword routing
}

// Example: HR Specialist
new AgentCapabilityDeclaration
{
    Handles = new() { "leave requests", "payroll queries", "benefits enrollment", "employee onboarding" },
    DoesNotHandle = new() { "expense reports", "IT issues", "contract questions" },
    IntentExamples = new()
    {
        "How do I request annual leave?",
        "What is my remaining PTO balance?",
        "I need to update my bank account for payroll",
        "When is the next benefits enrollment window?"
    }
}

Example Specialist Configurations

SpecialistToolsKnowledge BaseLLM Model
HR AgentHRSystem MCP tools, Calendar MCPHR policies, leave guides, payroll docsclaude-sonnet-4-6
Finance AgentERP MCP tools, PDF generatorFinance policies, expense guidesclaude-sonnet-4-6
IT SupportServiceDesk MCP, AD MCPIT runbooks, KB articlesgpt-4o
Legal AgentDocument storage MCPContract templates, compliance docsclaude-opus-4

Specialist System Prompt Structure

// HR Specialist system prompt template
You are Aria, the HR specialist for {{company.name}}.

Your domain: Human Resources — leave management, payroll, benefits, and onboarding.

You have access to the following tools:
- hr_lookup_employee: Look up employee details
- hr_request_leave: Submit a leave request on behalf of an employee
- hr_get_payslip: Retrieve the employee's latest payslip
- hr_benefits_info: Get benefits enrollment information

Do not assist with topics outside HR. If the user's request is outside your scope,
say: "For that topic, please speak with a different specialist."

Always confirm before submitting any data-changing request (leave, payroll updates).
Specialist Design Principle

A well-designed specialist should be able to handle its domain without ever needing to route further. If your specialist is regularly routing elsewhere, its scope boundary is too wide. Narrow it down with more explicit out-of-scope declarations.