copilot-pr-squad, part 5 of 6 · October 12, 2026

Making it cheaper

Cost is easy to ignore until a busy day. Three small changes on Oct 7 cut the cost of a run by about a third, and the cost per PR on busy runs roughly in half. A cheaper model didn’t make the cut.

Part 5 of 6 in a series on copilot-pr-squad, a small team of AI agents, built on bradygaster/squad, that drives my GitHub Copilot coding-agent pull requests. New here? Start with Part 1.

How I measured it

Cost here is Copilot usage in AI credits, read from the session history on the machine that runs the squad. The Copilot CLI records every model call there with its tokens and the AI credits they cost, and the squad adds those up for each run, including the agents it starts. A run’s total rises with how many PRs it works, so the fair comparison holds the work steady: cost per run when runs did about the same amount of work, and cost per PR on busy runs.

What changed

The baseline, and what changed
ChangeEffect
The baseline, Sep 29 to Oct 7 54 runs averaged 2,385 AI credits, the most expensive 7,705. In the runs that logged it, the two agents on the older model, Communicator and Reviewer, were 43 to 71% of each run’s cost.
Earlier, on Oct 1: a run where nothing changed stops before starting any agentsA quiet run fell from about 230 AI credits to about 89.
The run’s setup and wrap-up steps each happen in one callAbout a dozen fewer large calls a run. Calls spread more than five minutes apart pay to reload their whole context, about 100 AI credits each time.
The Coordinator loads only the tools it usesIts first call fell from 39.4K to 23.5K tokens.
Communicator, Reviewer and Rai move to Opus 5.5, a newer model of the same tierThe same tier of model at lower rates, estimated at about 58% of the old cost.

The result

Runs after the changes started about as many agents as runs before them, and cost about a third less. On busy runs, the cost per PR roughly halved. The Coordinator saw the biggest drop.

Before and after the Oct 7 cost changes. The first four rows cover every run, from session history; the last two cover runs that worked five or more PRs, from the run logs.
Per runBefore (54 runs)After (11 runs)Change
Agents started12.713.3About the same work
AI credits2,3851,54935% lower
AI credits per agent started18711737% lower
Coordinator AI credits56724357% lower
AI credits per PR, busy runs418 (4 runs, 34 PRs)217 (11 runs, 81 PRs)48% lower
Agents’ AI credits per PR, same runs30517343% lower

The “after” side is less than a day of runs, and review briefs added work to each review in the same window, so treat it as a strong early signal rather than a settled number. The most expensive run since the changes cost 2,379 AI credits; before, runs above 6,000 happened on busy days.

Trying a cheaper model

The Reviewer and Communicator were the biggest cost, so before switching either I compared two models, the one they ran on and one known to be cheaper. I replayed real past rounds on both, in a sandbox that couldn’t post.

Replay of 10 real rounds, Oct 7
AgentCurrent modelCheaper modelHow quality was judged
Communicator, 5 roundsWon all 5About a fifth of the costEach pair of comments to Copilot, read blind with the model names hidden.
Reviewer, 5 roundsAgreed with 10 of 11 real decisionsAbout a third of the cost; agreed with 6 of 11Decisions on each finding, compared with what the real round decided. One PR was left out because the sandbox lacked its history.

The cheaper model’s comments were vaguer, and in two ways they would have sent Copilot the wrong way: a point that didn’t apply, and tests nobody needed. Each of those costs another hourly round, which is worth more than the saving. I kept the current model.

That doesn’t mean every agent needs the biggest model. The Tester, Scribe and Fact Checker run on a smaller, cheaper one, Sonnet, by default, because their work follows set steps: run the existing checks, update the records, check a comment’s facts against GitHub. The Communicator’s charter allows it too for simple rounds, like moving a finished draft to ready.

The lessons I took: