Если я правильно понимаю, то у вас ситуация следующая:
* есть multi-producer/multi-consumer mbox, в который кто-то публикует сообщения;
* есть несколько агентов, которые заинтересованы в том, чтобы получать некоторые из этих сообщений;
* но часть сообщений не нуждается в обработке агентами, а должна отправляться напрямую в некоторый mchain.
Если это так (ключевой момент в том, что агентам нужна только часть сообщений), то "простой" способ -- это сделать агента, который будет получать сообщения, которые должны идти в mchain и который будет пересылать сообщения в mchain. В этом случае не придется погружаться в потроха SObjectizer-а. Но в этом случае агент должен знать все типы сообщений, которые должны уходить в mbox. Соответственно, когда появляется новый тип, то нужно будет модифицировать данного агента.
Более сложный способ -- это реализация собственного проксирующего mbox-а. Его идея следующая:
* есть нормальный MPMC mbox, который будет использоваться для доставки сообщений подписчикам. Этот mbox будет использоваться в качестве "подложки" для проксирующего mbox-а;
* есть нормальный mchain, который будет использоваться для отсылки сообщений в GUI;
* проксирующий mbox получает в свое распоряжение нормальный MPMC-mbox и нормальный mchain. Агенты, которым нужно общаться друг с другом, будут видеть только проксирующий mbox;
* проксирующий mbox делегирует все вызовы, связанные с подпиской и фильтрами доставки mbox-у подложке;
* проксирующий mbox все методы для доставки сообщений переопределяет так, чтобы каждое новое сообщение отдавалось и mbox-у подложке, и mchain-у.
Т.о., сообщения будут пробрасываться mchain сразу, без промежуточного агента. Если нужна фильтрация (т.е. не все сообщения должны идти в mchain), то этот проксирующий mbox должен будет такую фильтрацию делать сам.
Этот способ плох тем, что нужно будет погрузиться в детали работы mbox-а. Либо взять за основу специально сделанный для подобных задач proxy-mbox из so5extra (вот
его описание для SO-5.5/so5extra-1.2, а вот описание для
SO-5.6/so5extra-1.3). Плохо здесь то, что интерфейс mbox-а поменялся при переходе от SO-5.5 к SO-5.6. В SO-5.5 в mbox-е было четыре виртуальных метода для доставки сообщения, тогда как в SO-5.6 их осталось всего два.
Но, возможно, что вашу задачу я понял не совсем правильно.