Chuyển đến nội dung chính

Lesson 15: Domain Packs — Industry-specific AI Bundles

Design Domain Pack architecture: pack definition, specialized tools, domain-specific prompts. Build packs for Healthcare, Legal, Finance, Education. Auto-activation, pack marketplace.

🧠 AI & ML — Lesson 14 Lesson 15: Domain Packs — Industry-specific AI Bundles

Building AI Agent Platform from Zero — Real battle with xClaw

Part 5: Skills, Domains & Plugins

xdev.asia

Introduction

Domain Packs are pre-built bundles including skills + tools + prompts specific to a specific industry. Instead of the generic agent, the user selects "Healthcare Pack" and immediately gets medical tools, clinical prompts, and HIPAA compliance checks.


1. Domain Pack Architecture

// packages/domains/src/types.ts
export interface DomainPack {
  id: string;
  name: string;
  slug: string;
  description: string;
  version: string;
  icon: string;
  color: string;
  skills: SkillDefinition[];
  systemPrompt: string;              // Domain-specific base prompt
  suggestedQuestions: string[];       // Quick-start examples
  complianceRules?: ComplianceRule[];
  requiredPermissions?: string[];
}

export interface ComplianceRule {
  id: string;
  name: string;
  description: string;
  check: (message: string) => boolean;
  action: 'warn' | 'block' | 'redact';
}

2. Healthcare Domain Pack

// packages/domains/src/packs/healthcare.ts
export const healthcarePack: DomainPack = {
  id: 'healthcare',
  name: 'Healthcare & Medical',
  slug: 'healthcare',
  description: 'Medical AI assistant with clinical tools and HIPAA compliance',
  version: '1.0.0',
  icon: '🏥',
  color: '#10b981',

  systemPrompt: `You are a medical AI assistant. Guidelines:
- Always cite medical sources (PubMed, clinical guidelines)
- Include appropriate disclaimers for medical advice
- Follow HIPAA compliance for patient data
- Use ICD-10 codes when relevant
- Recommend professional consultation for diagnoses`,

  suggestedQuestions: [
    'Explain the mechanism of action of metformin',
    'What are the differential diagnoses for chest pain?',
    'Summarize the latest guidelines for hypertension management',
  ],

  skills: [
    defineSkill({
      id: 'medical-search',
      name: 'Medical Literature Search',
      description: 'Search PubMed and medical databases',
      version: '1.0.0',
      tools: [
        {
          definition: {
            name: 'pubmed_search',
            description: 'Search PubMed for medical literature',
            parameters: {
              type: 'object',
              properties: {
                query: { type: 'string', description: 'Medical search query' },
                maxResults: { type: 'number', description: 'Max results (1-20)' },
              },
              required: ['query'],
            },
          },
          handler: pubmedSearchHandler,
        },
        {
          definition: {
            name: 'drug_interaction_check',
            description: 'Check for drug-drug interactions',
            parameters: {
              type: 'object',
              properties: {
                drugs: { type: 'string', description: 'Comma-separated drug names' },
              },
              required: ['drugs'],
            },
          },
          handler: drugInteractionHandler,
        },
        {
          definition: {
            name: 'icd10_lookup',
            description: 'Look up ICD-10 diagnosis codes',
            parameters: {
              type: 'object',
              properties: {
                query: { type: 'string', description: 'Condition or symptom' },
              },
              required: ['query'],
            },
          },
          handler: icd10LookupHandler,
        },
      ],
    }),
  ],

  complianceRules: [
    {
      id: 'hipaa-phi',
      name: 'HIPAA PHI Detection',
      description: 'Detect and redact Protected Health Information',
      check: (message) => {
        // Detect SSN, patient IDs, etc.
        return /\b\d{3}-\d{2}-\d{4}\b/.test(message) ||
               /patient\s+id:\s*\w+/i.test(message);
      },
      action: 'redact',
    },
  ],
};

3. Domain Pack Registry

// packages/domains/src/domain-registry.ts
export class DomainRegistry {
  private packs = new Map<string, DomainPack>();

  register(pack: DomainPack) {
    this.packs.set(pack.id, pack);
  }

  get(id: string): DomainPack | undefined {
    return this.packs.get(id);
  }

  listAll(): DomainPack[] {
    return Array.from(this.packs.values());
  }

  // Activate domain for a session
  activateForSession(
    domainId: string,
    sessionId: string,
    skillManager: SkillManager,
  ): void {
    const pack = this.packs.get(domainId);
    if (!pack) throw new Error(`Domain pack not found: ${domainId}`);

    // Register all skills from the pack
    for (const skill of pack.skills) {
      skillManager.register(skill);
      skillManager.activate(sessionId, skill.id);
    }
  }
}

4. Available Domain Packs in xClaw

PackToolsUse Case
HealthcarePubMed search, Drug interactions, ICD-10Medical AI assistant
LegalCase law search, Contract analysis, ComplianceLegal research
FinanceMarket data, Financial analysis, Risk scoringFinancial advisor
EducationQuiz generator, Curriculum builder, GradingEdTech AI
DevOpsLog analysis, Infrastructure check, AlertManagerSRE assistant
Customer SupportTicket search, FAQ retrieval, Sentiment analysisSupport bot
ContentSEO analysis, Content calendar, Social post genContent marketing
HRResume parser, Job matching, Interview questionsHR automation
E-commerceProduct search, Price comparison, Review analysisShopping assistant
Data AnalysisSQL generation, Chart creation, Statistical testsData analyst
ResearchPaper search, Citation manager, Literature reviewAcademic research
CreativeImage prompts, Story generator, Brand namingCreative AI
SecurityCVE lookup, SIEM analysis, Threat intelligenceSecurity analyst

5. Summary

  • Domain Packs = pre-built bundles (skills + prompts + compliance)
  • Registry pattern — plug-and-play activation
  • Compliance rules — domain-specific safety checks
  • Scalability — each pack is an independent package, can be published separately

Next article: Plugin System & MCP Protocol.