Personality configuration
The Lillo Agent Personality System provides a layered approach to defining and managing agent personalities through a combination of metadata, character configuration, and dynamic prompt composition.
Core Components
1. Agent Identity Layer
The base identity of an agent is composed of structured metadata:
interface AgentMetadata {
// Basic Information (Required)
name: string;
type: string;
botUsername?: string;
// Token Information (Optional)
tokenConfig?: {
ticker: string;
network: string;
tokenAddress: string;
maxSupply?: string;
decimals?: number;
};
// Social Presence (Optional)
systemIdentity?: {
websiteUrl?: string;
telegramGroup?: string;
twitterHandle?: string;
};
// Capabilities
capabilities?: Record<string, boolean>;
}
2. Character Configuration
The personality is defined through four key aspects:
interface CharacterConfig {
bio: string; // Core identity and purpose
spice: string; // Personality traits and tone
format: string; // Response formatting style
language: string; // Language style and complexity
}
Default configuration provides a baseline personality:
const defaultConfig = {
bio: "You are {name}, a helpful AI assistant...",
spice: "Friendly and helpful, with a professional tone",
format: "Clear and concise responses, using appropriate formatting",
language: "Natural and professional, explaining technical terms when needed"
};
Prompt Composition System
1. Metadata Formation
const metadata = await getAgentMetadata(agent);
// Builds structured sections:
// - Basic agent info
// - Token information (if applicable)
// - Social presence (if configured)
// - Enabled capabilities
2. Character Prompt Generation
const characterPrompt = await getCharacterPrompt(agent);
// Combines:
// - Agent metadata
// - Character configuration
// - Personality traits
3. Command-Specific Behavior
const commandPrompt = getCommandPrompt(commandName);
// Loads command-specific instructions from:
// src/data/prompts/commands/{commandName}.md
4. Final Prompt Assembly
const finalPrompt = await getCombinedPrompt(
commandName,
userInput,
agent
);
// Merges:
// - Character identity
// - Command behavior
// - User input
Management Interface
Agents can be managed through the Telegram interface using a hierarchical menu system:
Main Agent Menu (/myagents
)
/myagents
)/myagents - List and manage your agents
The interface provides three main configuration categories:
1. Agent Bio Menu (🎭)
Background & Purpose (📝)
Core identity definition
Main purpose
Key characteristics
Communication Style (🗣️)
Language style
Tone of voice
Communication preferences
Special Characteristics (✨)
Unique traits
Memorable quirks
Distinguishing features
Format & Capabilities (⚙️)
Message length preferences
Emoji usage
Formatting style
Special characters
2. Social Links Menu (🔗)
Website URL (🌐)
Official website link
Landing page URL
Documentation links
Twitter Handle (🐦)
Social media presence
Twitter username
Community engagement
Telegram Group (💬)
Community chat link
Support group URL
Announcement channel
3. Token Configuration Menu (💰)
Token Ticker (💱)
Symbol/ticker
Trading identifier
Market reference
Token Network (🔗)
Blockchain platform
Network type
Protocol
Token Address (📝)
Contract address
Token identifier
Blockchain location
State Management
Each menu interaction is managed through a state system:
interface AgentCreationState {
userId: number;
step: AgentCreationStep;
data: {
bioField?: BioFieldState;
socialsField?: SocialsFieldState;
cryptoField?: CryptoFieldState;
};
lastUpdated: number;
isActive: boolean;
}
Configuration Flow
Select agent from list
Choose configuration category
Select specific field to edit
Enter new value
Automatic validation and update
Return to category menu
Best Practices
Identity Definition
Keep bio clear and focused
Define specific personality traits
Set appropriate tone and format
Consider target audience
Prompt Management
Use structured metadata
Keep command prompts focused
Test personality combinations
Validate prompt effectiveness
Configuration
Start with default configuration
Customize gradually
Test changes incrementally
Monitor agent behavior
Example Configuration
const agentConfig = {
name: "MarketBot",
type: "Market Analysis Assistant",
characterConfig: {
bio: "You are MarketBot, a sophisticated market analysis assistant...",
spice: "Professional, data-driven, with occasional market humor",
format: "Structured analysis with bullet points and clear sections",
language: "Technical but accessible, explaining complex terms"
},
capabilities: {
marketData: true,
chat: true,
imageGeneration: false
}
};
Related Documentation
Last updated