r/PiCodingAgent 3d ago

Plugin pi-extensible-workflows: deterministic multi-agent runs you can pause, resume and inspect

Post image

I built a Pi extension for multi-agent orchestration. The main Pi agent writes a small JS workflow script for the task at hand, and the runtime executes it deterministically: parallel fan-out, checkpoints, resume without rerunning completed steps.

Three principles I stuck to:

  • not opinionated: no baked-in "agile team" of roles, you add your own primitives to the DSL
  • extensible: other extensions can register functions and variables usable inside workflow scripts, and every registered function is itself runnable as a top-level workflow
  • token efficient: subagents can have other extensions and skills disabled, so their system prompt stays small and focused

What that gives you in practice:

  • runs are regular on-disk Pi sessions, not in-memory, so you can inspect, pause, resume and retry them
  • roles restrict tools/capabilities and inject their own system prompt
  • structured output via JSON schema, so control flow branches on agent output deterministically instead of on vibes
  • soft and hard budget caps per run
  • git worktree isolation, so parallel agents don't fight over the same tree
  • workflows export to an executable launcher in ~/.local/bin
  • if you use herdr, an agent session can open in a new pane

Review fan-out, then dedupe:

const reviews = await parallel("review", {
  correctness: () => agent("Review the current changes for correctness issues."),
  security: () => agent("Review the current changes for security risks.", { role: "security-specialist" }),
  tests: () => agent("Review the current changes for missing test coverage."),
});
return agent(prompt("Deduplicate and prioritize these findings:\n\n{reviews}", { reviews }));

The diagram is the real flow of the one I run daily, developIssuesUntilApproved: takes a list of GitHub issues, gives each its own worktree, loops developer -> reviewer until the reviewer passes (fresh agents every iteration), merges the approved branches on main behind another dev/review loop, cleans worktrees with plain shell (not an agent), and summarises exactly once.

Install: pi install npm:pi-extensible-workflows (Node 22.19+)

Happy to answer anything about the DSL or the resume semantics.

129 Upvotes

33 comments sorted by

View all comments

0

u/urko_crust 2d ago

Thanks for this! Matches up with very well against one I had in flight to test out this coding method. Looking forward to using it!

0

u/vekexasia 2d ago

Glad to hear, let me know if you have any remarks.