Persona (v1)
Reference for magick_mind.resources.v1.persona.
magick_mind.resources.v1.persona
V1 persona resource implementation.
PersonaResourceV1
class PersonaResourceV1(BaseResource)Persona resource client for V1 API.
Provides persona CRUD, blueprint-based creation, and version management.
Example:
Create a persona
persona = await client.v1.persona.create( name="Aria", role="assistant", )
Create from blueprint
result = await client.v1.persona.create_from_blueprint( blueprint_id="bp-123", name="Aria", role="assistant", ) print(result.persona.id, result.version.version)
Version management
version = await client.v1.persona.create_version( persona_id="p-123", version="1.1", ) active = await client.v1.persona.get_active_version("p-123")
PersonaResourceV1.create
async def create(name: str,
role: str,
artifact_id: Optional[str] = None,
traits: Optional[list[str]] = None,
tones: Optional[list[str]] = None,
background_story: str = "") -> PersonaCreate a new persona.
Arguments:
name- Persona namerole- Persona roleartifact_id- Optional associated artifact IDtraits- Optional list of trait namestones- Optional list of tone namesbackground_story- Optional background story
Returns:
Persona
PersonaResourceV1.get
async def get(persona_id: str) -> PersonaGet a persona by ID.
Arguments:
persona_id- Persona ID
Returns:
Persona
PersonaResourceV1.update
async def update(persona_id: str,
name: str,
role: str,
artifact_id: Optional[str] = None,
traits: Optional[list[str]] = None,
tones: Optional[list[str]] = None,
background_story: str = "") -> PersonaUpdate a persona.
Arguments:
persona_id- Persona IDname- Updated namerole- Updated roleartifact_id- Optional updated artifact IDtraits- Updated traits listtones- Updated tones listbackground_story- Updated background story
Returns:
Persona
PersonaResourceV1.delete
async def delete(persona_id: str) -> NoneDelete a persona.
Arguments:
persona_id- Persona ID
PersonaResourceV1.prepare
async def prepare(persona_id: str,
*,
user_id: Optional[str] = None) -> PreparePersonaResponsePrepare a persona's system prompt.
Resolves the persona's traits, active version constraints, and optional user-specific context into a ready-to-use system prompt string.
Arguments:
persona_id- Persona IDuser_id- Optional user ID for user-specific prompt context
Returns:
PreparePersonaResponse with the system_prompt string
PersonaResourceV1.create_from_blueprint
async def create_from_blueprint(
blueprint_id: str,
name: str,
role: str,
background_story: Optional[str] = None,
artifact_id: Optional[str] = None,
trait_overrides: Optional[list[TraitConstraint]] = None,
additional_traits: Optional[list[TraitConstraint]] = None,
remove_traits: Optional[list[str]] = None,
growth_override: Optional[GrowthConfig] = None,
dyadic_override: Optional[DyadicConfig] = None) -> PersonaWithVersionCreate a persona from a blueprint with optional overrides.
Arguments:
blueprint_id- Source blueprint IDname- Persona namerole- Persona rolebackground_story- Optional background storyartifact_id- Optional artifact IDtrait_overrides- Optional trait constraint overridesadditional_traits- Optional additional trait constraintsremove_traits- Optional trait refs to removegrowth_override- Optional growth config overridedyadic_override- Optional dyadic config override
Returns:
PersonaWithVersion containing both the persona and its initial version
PersonaResourceV1.create_version
async def create_version(
persona_id: str,
version: str,
constraints: Optional[list[TraitConstraint]] = None,
growth: Optional[GrowthConfig] = None,
dyadic: Optional[DyadicConfig] = None) -> PersonaVersionCreate a new version for a persona.
Arguments:
persona_id- Persona IDversion- Version stringconstraints- Optional trait constraintsgrowth- Optional growth configdyadic- Optional dyadic config
Returns:
PersonaVersion
PersonaResourceV1.list_versions
async def list_versions(
persona_id: str,
cursor: Optional[str] = None,
limit: Optional[int] = None) -> ListPersonaVersionsResponseList all versions for a persona.
Arguments:
persona_id- Persona IDcursor- Pagination cursorlimit- Maximum number of results
Returns:
ListPersonaVersionsResponse with data and paging
PersonaResourceV1.get_version
async def get_version(persona_id: str, version: str) -> PersonaVersionGet a specific version by version string.
Arguments:
persona_id- Persona IDversion- Version string
Returns:
PersonaVersion
PersonaResourceV1.get_active_version
async def get_active_version(persona_id: str) -> PersonaVersionGet the currently active version.
Arguments:
persona_id- Persona ID
Returns:
PersonaVersion (the active one)
PersonaResourceV1.set_active_version
async def set_active_version(persona_id: str, version: str) -> PersonaSet a version as active.
Arguments:
persona_id- Persona IDversion- Version ID to activate
Returns:
Persona with updated active_version