Persona Modules
In this section, we'll cover:
🎭 What is a Persona Module?
Persona modules define the character and behavior of AI agents. These modules enable more natural and specialized agent interactions by providing personality traits, communication styles, and behavioral patterns.
📝 Persona Configurations
The persona module is specified in the AgentConfig class:
#naptha_sdk/schemas.py
class AgentConfig(BaseModel):
config_name: Optional[str] = "agent_config"
llm_config: Optional[LLMConfig] = None
persona_module: Optional[Union[Dict, BaseModel]] = None
system_prompt: Optional[Union[Dict, BaseModel]] = None
Or in the deployment.json file in the configs folder of the agent module:
# AgentConfig in deployment.json file
[
{
...
"config": {
"config_name": "agent_config",
"llm_config": {"config_name": "model_1"},
"persona_module" : {"name": "richard_twitter"},
"system_prompt": {
"role": "You are a helpful AI assistant.",
"persona": ""
}
}
}
]
The name of the persona_module should exactly match the name of the persona module in the personas registry on the Naptha Hub. The rest of the metadata will be loaded from the Hub. The data will be loaded into the persona field of the system_prompt dict.
🤖 Running an Agent that uses a Persona
Prerequisites
Install the Naptha SDK using the instructions here.
Examples
Below are examples of running the Simple Chat Agent with a twitter/X persona, generated from exported X data:
naptha run agent:simple_chat_agent -p "tool_name='chat' tool_input_data='who are you?'" --config '{"persona_module": {"name": "interstellarninja_twitter"}}'
and from a synthetically generated market persona based on census data:
naptha run agent:simple_chat_agent -p "tool_name='chat' tool_input_data='who are you?'" --config '{"persona_module": {"name": "marketagents_aileenmay"}}'
Need Help?
- Join our Discord Community and post in the #support channel
- Submit issues on GitHub