@polybiouslabs/polybious
Version:
Polybius is a next-generation intelligent agent framework built for adaptability across diverse domains. It merges contextual awareness, multi-agent collaboration, and predictive reasoning to deliver dynamic, self-optimizing performance.
271 lines (270 loc) • 6.73 kB
TypeScript
export interface PersonalityConfig {
name: string;
systemPrompt: string;
communicationStyle: {
temperature: number;
maxTokens: number;
tweetTypes?: TweetTypeConfig[];
adaptivePersonality?: boolean;
emotionalRange?: EmotionalRange;
learningRate?: number;
};
contentFilters: {
bannedTerms: string[];
customFilters?: ((content: string) => boolean)[];
sentimentThreshold?: number;
toxicityThreshold?: number;
};
capabilities?: {
functionCalling: boolean;
multiModal: boolean;
webSearch: boolean;
imageGeneration: boolean;
voiceSynthesis: boolean;
dataAnalysis: boolean;
};
tools?: ToolConfig[];
}
export interface EmotionalRange {
creativity: number;
enthusiasm: number;
analytical: number;
empathy: number;
humor: number;
}
export interface ToolConfig {
name: string;
description: string;
parameters: {
type: 'object';
properties: Record<string, any>;
required: string[];
};
handler: string;
enabled: boolean;
rateLimited?: {
maxCalls: number;
timeWindow: number;
};
}
export interface TweetTypeConfig {
type: 'short' | 'medium' | 'long' | 'cryptic';
probability: number;
maxCharacters: number;
instruction: string;
}
export interface PlatformConfig {
type: 'twitter' | 'discord' | 'telegram';
enabled: boolean;
credentials: {
[key: string]: string;
};
settings: {
[key: string]: any;
};
}
export interface ScheduleConfig {
enabled: boolean;
minInterval: number;
maxInterval: number;
timezone?: string;
quietHours?: {
start: string;
end: string;
};
}
export interface AgentConfig {
name: string;
personality: PersonalityConfig;
platforms: PlatformConfig[];
scheduling: ScheduleConfig;
monitoring: {
apiPort: number;
enableMetrics: boolean;
logLevel: 'error' | 'warn' | 'info' | 'debug';
enableDashboard?: boolean;
webhooks?: WebhookConfig[];
};
analytics?: AnalyticsConfig;
learning?: LearningConfig;
multiAgent?: MultiAgentConfig;
contentPipeline?: ContentPipelineConfig;
}
export interface WebhookConfig {
name: string;
url: string;
events: string[];
headers?: Record<string, string>;
enabled: boolean;
}
export interface AnalyticsConfig {
enabled: boolean;
sentimentAnalysis: boolean;
trendDetection: boolean;
engagementTracking: boolean;
audienceInsights: boolean;
performanceOptimization: boolean;
dataRetention: number;
exportFormats: ('json' | 'csv' | 'pdf')[];
}
export interface LearningConfig {
enabled: boolean;
adaptivePersonality: boolean;
contentOptimization: boolean;
engagementLearning: boolean;
audienceAdaptation: boolean;
feedbackIntegration: boolean;
memoryDepth: number;
learningRate: number;
}
export interface MultiAgentConfig {
enabled: boolean;
coordination: 'hierarchical' | 'democratic' | 'swarm';
communication: {
protocol: 'http' | 'websocket' | 'redis';
encryption: boolean;
heartbeatInterval: number;
};
roles: AgentRole[];
sharedMemory: boolean;
}
export interface AgentRole {
name: string;
description: string;
permissions: string[];
priority: number;
}
export interface ContentPipelineConfig {
enabled: boolean;
stages: PipelineStage[];
parallelProcessing: boolean;
caching: {
enabled: boolean;
ttl: number;
strategy: 'lru' | 'fifo' | 'ttl';
};
qualityGates: QualityGate[];
}
export interface PipelineStage {
name: string;
type: 'generation' | 'enhancement' | 'validation' | 'optimization';
handler: string;
config: Record<string, any>;
enabled: boolean;
timeout: number;
}
export interface QualityGate {
name: string;
metric: string;
threshold: number;
action: 'reject' | 'flag' | 'enhance';
}
export interface AgentStatus {
name: string;
status: 'running' | 'stopped' | 'error' | 'learning' | 'coordinating';
lastPost: Date | null;
nextPost: Date | null;
totalPosts: number;
uptime: number;
errors: AgentError[];
performance: PerformanceMetrics;
learning: LearningStatus;
capabilities: string[];
}
export interface PerformanceMetrics {
engagement: {
likes: number;
shares: number;
comments: number;
reach: number;
impressions: number;
};
content: {
avgResponseTime: number;
contentQualityScore: number;
sentimentScore: number;
toxicityScore: number;
};
system: {
memoryUsage: number;
cpuUsage: number;
apiLatency: number;
errorRate: number;
};
}
export interface LearningStatus {
totalInteractions: number;
learningProgress: number;
adaptationScore: number;
memoryUtilization: number;
recentInsights: string[];
}
export interface AgentError {
timestamp: Date;
message: string;
stack?: string;
context?: any;
severity: 'low' | 'medium' | 'high' | 'critical';
resolved: boolean;
}
export interface Content {
id: string;
type: 'text' | 'image' | 'video' | 'audio' | 'multimodal';
data: string | Buffer;
metadata: ContentMetadata;
generated: Date;
published?: Date;
performance?: ContentPerformance;
}
export interface ContentMetadata {
platform: string;
format: string;
size?: number;
duration?: number;
resolution?: string;
tags: string[];
sentiment: number;
toxicity: number;
qualityScore: number;
topics: string[];
}
export interface ContentPerformance {
views: number;
likes: number;
shares: number;
comments: number;
saves: number;
clickThrough: number;
engagement: number;
reach: number;
sentiment: number;
}
export interface ToolExecution {
id: string;
toolName: string;
parameters: Record<string, any>;
result: any;
timestamp: Date;
duration: number;
success: boolean;
error?: string;
}
export interface ToolRegistry {
[key: string]: {
config: ToolConfig;
handler: ToolHandler;
usage: ToolUsageStats;
};
}
export interface ToolHandler {
execute: (params: Record<string, any>) => Promise<any>;
validate?: (params: Record<string, any>) => boolean;
transform?: (result: any) => any;
}
export interface ToolUsageStats {
totalCalls: number;
successRate: number;
avgDuration: number;
lastUsed: Date;
errorCount: number;
}