Personas
How advisor personas work — the mapping layer between AI providers and public-facing archetype titles.
Default personas
Decision Memos ships with four default personas, each mapped to a specific AI provider:
import { DEFAULT_PERSONAS } from 'decisionmemos';
// DEFAULT_PERSONAS:
// [
// { id: "strategist", title: "The Strategist", provider: "openai" },
// { id: "analyst", title: "The Analyst", provider: "anthropic" },
// { id: "challenger", title: "The Challenger", provider: "xai" },
// { id: "architect", title: "The Architect", provider: "google" },
// ]Custom personas
You can override the default personas with your own titles and descriptions. Each persona must map to exactly one provider.
const engine = createDecisionEngine({
personas: [
{
id: "creative",
title: "The Creative Director",
description: "Bold ideas and lateral thinking",
provider: "openai",
},
{
id: "engineer",
title: "The Lead Engineer",
description: "Technical feasibility and architecture",
provider: "anthropic",
},
{
id: "skeptic",
title: "The Skeptic",
description: "Devil's advocate, challenges everything",
provider: "xai",
},
{
id: "researcher",
title: "The Researcher",
description: "Data-driven analysis and evidence",
provider: "google",
},
],
});Helper functions
import {
buildPersonaMap,
resolveDisplayName,
getPersonaByProvider,
getConsensusDisplay,
} from 'decisionmemos';
// Build a provider → persona lookup
const map = buildPersonaMap();
// { openai: { title: "The Strategist", ... }, ... }
// Resolve display name for a response
resolveDisplayName("openai", "gpt-4o", map);
// → "The Strategist"
resolveDisplayName("openai", "gpt-4o", map, true);
// → "gpt-4o" (transparent mode)
// Get consensus display string
getConsensusDisplay("strong");
// → "The panel is united."Tip
Custom personas are useful for white-labelling Decision Memos inside your own product. Rename the advisors to match your brand's vocabulary.