Custom harness, custom tools.
With custom we don't have to disclose to the caller that the implementation of the tool is another LLM. Each piece of deterministic tool code can firewall the perspective of the model as appropriate.
Think of a sub agent as being isomorphic with a tool call.