Sequential
horizontal
Agents speak one at a time in a fixed order, each seeing the turns before it. One LLM call is in flight at a time.
Docs · The workload
AgentVerse is a multi-agent framework that structures collaborative problem solving into expert recruitment, collaborative decision-making, action execution and evaluation. This repository re-implements that task-solving loop as the workload of our paper (blog post), runs its discussion stage under three coordination topologies, and records every LLM call it makes.
Original work: Chen et al., AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors, arXiv:2308.10848. Framework: github.com/OpenBMB/AgentVerse. The workflow here is our re-implementation of its stages, not the original code.
An orchestrator (Agent A) runs the stages; worker agents (Agent B) carry out the experts' LLM calls against one shared model backend. A run can loop: a low evaluation score starts another iteration from recruitment.
One orchestrator call reads the task and recruits experts, each with a role and a contract (what it is responsible for). The paper fixes the team at four subagents.
The experts discuss the approach under one communication structure (below) for up to three rounds, or until they agree. A synthesis call condenses the discussion into a decision. The paper's traffic analysis uses the LLM calls of this stage.
Each expert carries out its part of the decision; the calls run in parallel, one per expert.
The orchestrator scores the result from 0 to 100 and writes feedback. Below the acceptance threshold (70 by default) another iteration starts, up to the iteration limit (3 by default).
A last call writes the answer from the execution results.
Sequential and star are AgentVerse's horizontal and vertical decision-making structures; full mesh is added
here as the densest case. The topology is chosen per request with force_structure.
horizontal
Agents speak one at a time in a fixed order, each seeing the turns before it. One LLM call is in flight at a time.
vertical
A solver (S) proposes; the other three agents review the proposal in parallel (R) and the solver revises from their critiques. Up to three calls in flight.
full_mesh
Each round, every agent messages every other: N×(N−1) = 12 directed messages for four agents, submitted at once and run five at a time.
POST /agentverse on port 8101;
Agent B workers on ports 8102–8104 forward subtasks to the vLLM backend on port 8000. Each runs in its own
container on Docker bridge networks.vertical_reviewer_<role>_iter2 or
full_mesh_message_round1_agent2_to_agent3), its UTC start time, duration and token counts, and the backend's own timing.
A request ID (X-Request-ID) and the OpenTelemetry trace context travel with each call.force_structure, force_agent_count, full_mesh_max_rounds); the task
source, prompts, model and monitoring stay the same.curl -X POST http://localhost:8101/agentverse -H "Content-Type: application/json" \
-d '{"task": "Explain gradient descent.", "force_structure": "full_mesh", "force_agent_count": 4}'
Code: agents/agent_a/orchestrator.py
(the workflow), llm/serve_llm.py (the backend and its
metrics), scripts/monitoring/tcp_metrics_collector.py
(the network layer).