Gemma 4 E2B Tested as Multi-Agent Coordinator in TypeScript Framework

Coordinator Capabilities Tested
The test evaluated whether Gemma 4 E2B could handle the coordinator role in a multi-agent system, specifically: taking a natural language goal, breaking it into a task graph, assigning agents, calling tools, and stitching results together.
Technical Implementation
The framework used was open-multi-agent (TypeScript, open-source) with Ollama via an OpenAI-compatible API. The coordinator receives a goal and agent roster, then outputs a JSON task array with title, description, assignee, and dependencies. Agents execute with tool-calling capabilities including bash and file read/write operations.
Model Details
Gemma 4 E2B ("Effective 2B") has 2.3B effective parameters and 5.1B total parameters. The extra ~2.8B parameters are for the embedding layer supporting 140+ languages and multimodal capabilities.
Test Scenario
The goal provided was: "Check this machine's Node.js version, npm version, and OS info, then write a short Markdown summary report to /tmp/report.md"
E2B correctly:
- Broke it into 2 tasks with a dependency (researcher → summarizer)
- Assigned each to the right agent
- Used bash to run system commands
- Used file_write to save the report
- Synthesized the final output
Both runTasks() (explicit pipeline) and runTeam() (model plans everything autonomously) worked.
Performance and Observations
On an M1 with 16GB RAM:
- Full
runTeam()takes ~2 minutes - 6–9 sequential LLM calls under the hood (coordinator planning → researcher multi-turn tool use → summarizer → coordinator synthesis)
- ~10–15 seconds per call on M1
- E2B uses ~3–4 GB RAM with no memory pressure
What worked well:
- JSON output: The coordinator produced the correct schema for task decomposition. The framework has tolerant parsing that tries fenced blocks first, then falls back to bare array extraction.
- Tool-calling: Works through the OpenAI-compatible endpoint, correctly deciding when to call, parsing arguments, and handling multi-turn results.
Limitations noted:
- Output quality: The prose in final synthesis is noticeably weaker than larger models. Functional but not polished.
Reproduction Steps
ollama pull gemma4:e2b
git clone https://github.com/JackChen-me/open-multi-agent
cd open-multi-agent && npm install
no_proxy=localhost npx tsx examples/08-gemma4-local.tsThe test file is ~190 lines at examples/08-gemma4-local.ts. The no_proxy=localhost setting is only needed if you have an HTTP proxy configured.
📖 Read the full source: r/LocalLLaMA
👀 See Also

Ory Lumen: Open Source Local Semantic Search Plugin for Claude Code
Ory Lumen is a Claude Code plugin that indexes codebases using Ollama with a code embedding model and SQLite-vec for semantic search, addressing Claude Code's performance issues with large codebases. The tool is free, local-only, and includes a SWE-style benchmark test harness for reproducible results.
MartinLoop: Open-Source Control Plane for AI Coding Agents with Budget Stops and Audit Trails
MartinLoop is an open-source control plane that adds hard budget stops, JSONL audit trails, failure classification, and test-verified completion checks to AI coding agents.

Screenbox: Open-Source Virtual Desktops for AI Agents Built Entirely by Voice
Screenbox provides isolated Linux desktops in Docker for AI agents, solving conflicts when multiple agents run in parallel. The project was built entirely using voice commands with Claude Code, and the creator hasn't seen a single line of the code.

OpenHelm: A Local Background Scheduler for Claude Code with Self-Correcting Retry Logic
OpenHelm is a Tauri-based application that runs Claude Code tasks in the background on a schedule, stores all state locally in SQLite, and includes a self-correcting retry loop that adjusts prompts after failures.