簡介
Domain Packs are pre-built bundles including skills + tools + prompts specific to a specific industry.使用者選擇「Healthcare Pack」而不是通用代理,並立即獲得醫療工具、臨床提示和 HIPAA 合規性檢查。
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
| 包 | 工具 | 使用案例 |
|---|---|---|
| 醫療保健 | PubMed search, Drug interactions, ICD-10 | Medical AI assistant |
| 法律 | Case law search, Contract analysis, Compliance | 法律研究 |
| 金融 | Market data, Financial analysis, Risk scoring | 財務顧問 |
| 教育 | Quiz generator, Curriculum builder, Grading | 教育科技人工智慧 |
| 開發營運 | Log analysis, Infrastructure check, AlertManager | SRE助理 |
| 客戶支援 | Ticket search, FAQ retrieval, Sentiment analysis | Support bot |
| 內容 | SEO analysis, Content calendar, Social post gen | 內容行銷 |
| 人力資源 | Resume parser, Job matching, Interview questions | 人力資源自動化 |
| 電子商務 | Product search, Price comparison, Review analysis | 導購助理 |
| 資料分析 | SQL generation, Chart creation, Statistical tests | 資料分析師 |
| 研究 | Paper search, Citation manager, Literature review | 學術研究 |
| 創意 | Image prompts, Story generator, Brand naming | Creative AI |
| 安全 | CVE lookup, SIEM analysis, Threat intelligence | 證券分析師 |
5. 總結
- 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.