Core Concepts
Reasoning
Memory & Retrieval
Agent Types
Design Patterns
Training & Alignment
Frameworks
Tools
Safety & Security
Evaluation
Meta
Core Concepts
Reasoning
Memory & Retrieval
Agent Types
Design Patterns
Training & Alignment
Frameworks
Tools
Safety & Security
Evaluation
Meta
This is an old revision of the document!
AgentVerse is a multi-agent collaboration framework introduced by Chen et al. (2023) that dynamically assembles groups of LLM-powered agents to solve complex tasks.1) With 541 citations, it demonstrates that collaborative agent groups consistently outperform individual agents across diverse benchmarks. The framework draws inspiration from human group dynamics research, enabling emergent social behaviors among autonomous agents.2)3)4)
AgentVerse operates through four iterative phases that mirror human collaborative problem-solving:
A recruiter agent $M_r$ dynamically generates expert role descriptions based on the task goal $g$:
$$\mathcal{M} = M_r(g) = \{m_1, m_2, \ldots, m_n\}$$
where each $m_i$ is an agent with a specialized persona. Unlike static multi-agent setups, roles are not predefined but generated on-the-fly, adapting to each task's requirements.
Recruited experts communicate through configurable structures:
The group implements the collaboratively decided action in the environment.
Outcomes are assessed against the goal, with feedback used to refine group composition for subsequent iterations.
Agent groups exhibit emergent behaviors that enhance performance:
# Simplified AgentVerse collaboration loop class AgentVerse: def __init__(self, llm, communication="horizontal", max_rounds=5, max_iterations=10): self.llm = llm self.communication = communication self.max_rounds = max_rounds self.max_iterations = max_iterations def recruit_experts(self, goal): prompt = f"As a recruiter, assemble a team for: {goal}\nList expert roles with descriptions." response = self.llm.generate(prompt) return self._parse_roles(response) def collaborative_decision(self, agents, context): history = [] for round_idx in range(self.max_rounds): for agent in agents: opinion = agent.respond(context, history) history.append((agent.role, opinion)) if self._consensus_reached(history): break return self._extract_decision(history) def solve(self, goal, environment): for iteration in range(self.max_iterations): experts = self.recruit_experts(goal) decision = self.collaborative_decision(experts, environment.state) result = environment.execute(decision) if environment.goal_achieved(result): return result goal = self._refine_goal(goal, result)