omarcevi.dev / workshops / match-day-agents / Cheat sheet

Which recipe when

You need…UseIn this repo
One job, a few tools, some judgementLlmAgent with toolsStep 1 · Scout
Fixed steps, each using the last one's outputSequentialAgent + output_key + {placeholders}Step 2 · Match Prep
Independent work on the same input, fasterParallelAgent, then a merge stepStep 3 · Scouting Department
Refine until good enoughLoopAgent + a critic + exit_loop + max_iterationsStep 4 · Tribün
Different questions need different specialistsLlmAgent orchestrator + AgentTool + clear descriptionsStep 5 · Technical Director
The same agent on another data sourceMcpToolset instead of local toolsBonus · live MCP

And the habits that held across all of them: let tools do the counting, return small dicts with "not available" instead of null, build agents with factory functions, and keep the model name in one place.

Try it yourself

Add a compare_players tool to the scout and ask "Salah mı Franculino mu daha formda?" Give the scouting department a fourth scout. Make the Tribün stricter and count the rounds, then set max_iterations=1. Swap in the vague descriptions and watch the director stumble. The repo README has one challenge per step.

Code, data, Colab notebook and tests: github.com/omarcevi/trabzonspor_analyst. The data is a FotMob and ESPN snapshot from 30 October 2026, so injury news may have moved on.

Thanks to GDG Trabzon for hosting DevFest Trabzon 2026, and to everyone who spent part of their Saturday building a football staff out of agents with me.