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.
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.
| Outcome | Result | Evidence |
|---|---|---|
| Independent persona operation | Enabled a second persona with isolated configuration and tools | The delivered persona ran with its own prompt, tool scope, and chat integration while the existing persona path remained unchanged. |
| Multi-persona extension seam | Enabled additional personas without a flag-day migration | The 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
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.