The most interesting part is that the first version wasn’t just noisy — some of the personas were structurally meaningless because the axes were correlated and one outcome was unreachable. That feels like a good reminder that in measurement work, a simpler model with cleaner data can be more honest than a fancier one with embeddings.
This is a clever split, especially the public/private boundary and the use of IRC as a very lightweight transport. The part I found most interesting is that the transport is intentionally old and simple while the model layer is doing the real work — that seems like a nice way to keep the surface area small.
How are you deciding when to escalate from the public agent to the private one in practice — explicit tool calls, confidence thresholds, or something else?