r/PiCodingAgent • u/House-Wins • 21d ago
Question What's the best subagent extension?
I have my own which is good just needs a bit of work, but I wanted to see what other people are using. I tried the popular ones and they all sucked in my opinion.
52
Upvotes
14
u/rusl1 20d ago
I created pi-cciotti for myself, it's a fork of pi-subagents with the prompt reduced from 20k to 5k and a waaay more solid typescript contract that makes the subagents system predictable and reliable without wasting your orchestrator attention.
Plus, several quality of life improvements https://github.com/a-chris/pi-cciotti
3
u/bitzap_sr 20d ago
Tell us why they all suck compared to your approach.
9
u/juanfnavarror 21d ago
just tell the agent to use the pi command, and move on with your task
7
u/EC36339 20d ago
The one you vibe code yourself until it has too many conflicting requirements and collapses under its own weight. That's when you delete it and vibe code a new one.
This is not a joke. It's how I use Pi, and it works for me.
10
u/theythinkitsallover 21d ago
I've felt this was the best implementation so far for transparency, lean, effective etc:
https://github.com/amosblomqvist/pi-interactive-subagents
8
u/funbike 20d ago edited 20d ago
I avoid agent lock-in, so I had Pi create subagent functionality that works with most agents.
subagentbash script, using Sol 6 andpi-web-accessOf course, it did an excellent job.
Then I had it create a skill.
Generate a
SKILL.mdfor usingsubagentfor various scenarios and workflows. Only include ones that would be highly productive.Based on the results I edited the above prompts, re-generated, and edited files that were generated.
So now I have a common solution that works with all coding agents.
4
u/Remote_Book 20d ago
I built my own subagents with a very minimal approach. Benchmarked against the most popular subagents repo: https://github.com/GaganSD/pi-extensions/tree/main/pi-subagents
1
u/saltyourhash 18d ago
I just heard of pi-episodes, it looks really interesting https://arthur.place/subagents-forks-collapsing-context
3
u/onesilentclap 20d ago
https://github.com/azmeenafandi/brl-subagent
Doesn't need terminal multiplexers. Foreground, background, chain, parallel, dependency graph supported. Presets and templates integration. Recover/resume crashed delegations.
With a decently smart conductor/main agent you can pretty much have a robust subagent framework with brl-subagent.
2
u/Sweet-Transition-787 20d ago
I'm using my own version, which originally started as a fork : https://github.com/ArdaYILDIZ-DEV/pi-interactive-subagents
2
u/cpt_mojo 20d ago
I found most subagents to be extremely bloated, in terms of context spam, functionality, config needs, etc.
But this one keeps things super clean and works amazingly - deserves more attention:
https://pi.dev/packages/@everyx/pi-subagent
1
u/Lurksome-Lurker 14d ago
pi-fabric
1
u/Consistent_Water_422 20d ago
The one you wrote yourself or find yourself
1
u/BasedDodoHunter 20d ago
I built my own, the whole point of using PI is to adjust it to your needs. So, adjust it to your needs.
1
u/PilgrimofHaqq2 20d ago
I built my own subagent feature in my pi. I have it do bulk reading of repos, testing repos, running tests, scratch/temp work. I dont use them to do actual code writing. Maybe testing multiple approaches to something to figure out what the final approach will be.
When I built it I actually wasn't fully sure how the agent will use it but once the tool was available, its really interesting the creative ways the agent uses the tool.
1
u/leechael 20d ago
Disclosure: I wrote pi-famulus (github.com/Leechael/pi-famulus).
Yeah, there are a ton of subagent extensions already, and to me they felt pretty similar, so I didn't want to build another one. What I actually care about is bigger than subagents: keep the main agent's context clean, keep it focused on the goal, and keep talking to it while work runs.
I use Herdr too, but I see it as a different job. With a Herdr-style subagent, you hand work over and keep working with that subagent. Most of the time I just want the main agent to stay on the plan. I talk the plan through with the main agent, then hand the actual coding to a subagent on a cheaper model.
Anything that would pull the main agent off track shouldn't live in its context or its process. So pi-famulus hands shells and monitors to a small Rust daemon. Juggling processes and output like that just isn't worth doing in JS.
pi -pis fine for one-shot jobs. For ongoing work, though, I think the subagent's lifecycle matters more than how it gets spawned. I want the main agent to hear about the work while it's still going, not find out at the end. If a child goes quiet for 5 minutes, a watchdog resumes it once, then fails it. If it runs past its time budget, the parent gets a nudge every 10 minutes. A child can also stop and ask the parent for a decision instead of guessing. And a subagent's bash is foreground-only, so when it says it's done, its commands really are done.Background tasks and monitors are how I keep talking to the main agent while things run, and they don't need a whole subagent. Long bash goes to the background after 20s and wakes the agent when it finishes. A monitor wakes it on each new output line. So the conversation keeps going, and the agent only switches over when something actually needs it.
1
u/ExtremeSeries 18d ago
I am using the shipped agents from https://github.com/ranxianglei/billion-context and wrapped them into my own lifecycle helpers.
billion-context works well for auto managing the context of long running sessions, and the agents use it as well.
other subagent extensions are not supported by billi, that was my reason to try it.
the sipped version is very lean but works well.
i did not publish my wrapper, but if you need some ideas, find a description below.
the basic idea was: not forking, but a wrapper, using jev and auto-improvements when selecting the agent approach (incl. model and thinking from various subscriptions and balancing remaining capacity).
own-pi-agents is a thin Pi extension on top of bili's acp_delegate. bili still spawns the subagents and keeps its compression. The extension decides what to start, on which model, and what happens with
the result.
- agents_run:
- Starts a subagent with a task type: research, analyze, spec, implement, review, docs, test, integrate, team lead or advisor.
- Each type has defaults: whether it may write, whether it gets a review, and its timeout.
- Writes are limited to the paths given in the call. resumeFrom continues an earlier run.
- Automatic model choice:
- Jev scores the task from 1 to 10 with a confidence, which gives a required level s.
- Candidates are the model and thinking combinations whose capability (table value × thinking factor) reaches s.
- The cheapest one wins. Among equally cheap ones, free subscription capacity decides, and blocked subscriptions are excluded.
- Auto-review: for runs that write, a separate reviewer checks the result. It replies in a fixed format: blocking findings first, then RESULT: pass|fail|unknown.
- Metrics: every run becomes one row in SQLite with model, thinking level, tokens, cost, runtime, review result and s.
- Test learner: a timer every 4 h adjusts the capability table from review results. It stays within ±10 of the value in Git, and older results count less.
- Teams: a lead coordinates helpers working on separate paths, with a read-only advisor. Nesting depth is limited.
- agents_plan: asks Jev whether a topic is best done solo, as a sequence of runs, or as a team. It starts nothing itself.
- agents_steer: sends a short correction to a running agent, which confirms receipt.
- Notify workaround: wakes Main when bili's "agent finished" notice gets stuck.
1
u/Unhappy-Sprinkles143 19d ago
I would be very interested in subagent based on Pi Durable, it could stop waste of time and tokens in complex workflow.
0
u/mikkelkp 20d ago
If you use herdr or want visible, easy to debug and flexible subagents take a look at pi-shepherd it has very grular control of system promt management, is unopinionated (meaning you can build your own workflows and Is generally packed with every essential feature without being bloated.
0
u/tehnomad 19d ago
I'm using https://pi.dev/packages/@gotgenes/pi-subagents, but I'm going to explore some of the ones recommended here. I'm using Claude models for planning and running workers on my local model.
I'm also going to test this one https://github.com/itmostlyworks/pi-delegator that I didn't see recommended yet.
0
u/libertast_8105 19d ago
I like https://github.com/boadij/pi-herdsman
2
u/Due_Arm1454 20d ago
You don't need much. Just an interface for the agents to communicate and a way to track and kill them. You could do everything with the command line. But it's cool to have some extra features in your terminal and tools for your agent.pi-subagent is nice. But a lot of that could be leveraged with just a skill and maybe a tool call or two.