Skip to content

Adding a second AI persona without touching the production one

Podifi · Software Engineer · Jul 2026 — Jul 2026

Added an independently configured AI persona alongside an existing live persona without migrating the established production path.

  • Python
  • LangGraph
  • FastAPI
  • Slack Events API
  • MCP

Context

The agent service supported one hardcoded persona, while a second persona needed its own prompt, tool scope, and chat integration. Refactoring the existing path first would have exposed established production workflows to regression risk for a bootstrap requirement.

Decisions

How can a second persona be introduced without coupling its launch to a migration of the live persona?

Chosen

Add the second persona behind its own routing layer, beside the unchanged live path

An additive boundary let the new persona prove the shared architecture while keeping the established persona implementation unchanged and its tool failures isolated.

Rejected alternatives

  • Migrate the existing persona onto the new architecture first

    That made a production-path refactor a prerequisite for the second persona, increasing regression exposure before the shared design had been demonstrated.

Outcomes

Every outcome below is shown with the evidence behind it.

Outcomes and their evidence: Adding a second AI persona without touching the production one
OutcomeResultEvidence
Independent persona operationEnabledEnabled a second persona with isolated configuration and toolsThe delivered persona ran with its own prompt, tool scope, and chat integration while the existing persona path remained unchanged.
Multi-persona extension seamEnabledEnabled additional personas without a flag-day migrationThe delivered branch carries persona selection, shared runtime, and per-persona prompt and tool wiring as separate steps, so a third persona reuses all three and adds only its own prompt and tools.

Architecture

Additive persona architecture beside the unchanged live path

Incoming chat events first reach a persona selector. Requests for the existing persona continue down the unchanged production path. Requests for the added persona take a separate branch through a routing layer into a shared runtime, then reach the isolated prompt and tools belonging to that persona. The two branches coexist, so adopting the shared path does not require migrating the live branch first.