I actually run a custom fork of Zed based on their master branch because of how stagnated the built-in agent is. Master branch Zed agent did get sub-agents, parallel threads, better thread management, and worktrees though, and I implemented agent skills and the ability to select which model to use for sub-agents for it. And with those features, I'm fairly satisfied.
Any reason not to use it with the agent client protocol instead?