[feat][senator assembly ][agent map] [and fix agent *args, **kwargs issue]

pull/1001/head
Kye Gomez 1 month ago
parent daf0891611
commit 0cf6ab492b

@ -2,4 +2,4 @@ from litellm import model_list
for model in model_list:
if "azure" in model:
print(model)
print(model)

@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api"
[tool.poetry]
name = "swarms"
version = "8.0.2"
version = "8.0.4"
description = "Swarms - TGSC"
license = "MIT"
authors = ["Kye Gomez <kye@apac.ai>"]

File diff suppressed because it is too large Load Diff

@ -0,0 +1,102 @@
#!/usr/bin/env python3
"""
Simple Hospital Agent Map Simulation Demo
A simplified version that demonstrates medical AI agents collaborating
on a headache case using only the .run() method.
"""
from swarms import Agent
from agent_map_simulation import AgentMapSimulation
def create_medical_agent(name, description, system_prompt):
"""
Create a medical agent with basic configuration.
Args:
name: The agent's name
description: Brief description of the agent's medical role
system_prompt: The system prompt defining the agent's medical expertise
Returns:
Configured medical Agent instance
"""
return Agent(
agent_name=name,
agent_description=description,
system_prompt=system_prompt,
model_name="gpt-4o-mini",
output_type="str",
max_loops=1,
)
def main():
"""Run the simplified hospital simulation."""
# Create simulation
simulation = AgentMapSimulation(
map_width=60.0,
map_height=60.0,
proximity_threshold=12.0,
update_interval=3.0,
)
# Create medical agents
agents = [
create_medical_agent(
"Dr.Sarah_Emergency",
"Emergency Medicine physician",
"You are Dr. Sarah, an Emergency Medicine physician specializing in rapid patient assessment and triage.",
),
create_medical_agent(
"Dr.Michael_Neuro",
"Neurologist",
"You are Dr. Michael, a neurologist specializing in headache disorders and neurological conditions.",
),
create_medical_agent(
"Nurse_Jennifer_RN",
"Registered nurse",
"You are Jennifer, an experienced RN specializing in patient care coordination and monitoring.",
),
create_medical_agent(
"Dr.Lisa_Radiology",
"Diagnostic radiologist",
"You are Dr. Lisa, a diagnostic radiologist specializing in neuroimaging and head imaging.",
),
]
# Add agents to simulation
for agent in agents:
simulation.add_agent(
agent=agent,
movement_speed=1.5,
conversation_radius=12.0,
)
# Medical case
headache_case = """
MEDICAL CONSULTATION - HEADACHE CASE
Patient: 34-year-old female presenting to Emergency Department
Chief complaint: "Worst headache of my life" - sudden onset 6 hours ago
History: Sudden, severe headache (10/10 pain), thunderclap pattern
Associated symptoms: Nausea, vomiting, photophobia, phonophobia
Vitals: BP 145/92, HR 88, Temp 98.6°F, O2 99%
Clinical concerns: Rule out subarachnoid hemorrhage, assess for secondary causes
Team collaboration needed for emergent evaluation and treatment planning.
"""
# Run simulation
simulation.run(
task=headache_case,
duration=240,
with_visualization=True,
update_interval=3.0,
)
if __name__ == "__main__":
main()

@ -0,0 +1,294 @@
# Agent Map Simulation 🗺️🤖
An interactive simulation system where AI agents move around a 2D map and automatically engage in conversations when they come into close proximity with each other. Built on top of the **Swarms** framework, this simulation demonstrates multi-agent interactions with real-time visualization.
## 🎯 Features
- **Spatial Agent Movement**: Agents move randomly across a 2D map with configurable movement speeds
- **Proximity-Based Conversations**: When agents get close enough, they automatically start debating topics
- **Multi-threaded Conversations**: Multiple conversations can happen simultaneously across the map
- **Live Visualization**: Real-time matplotlib visualization showing agent positions and active conversations
- **Conversation Management**: Complete tracking and logging of all agent interactions
- **Specialized Agent Types**: Pre-configured agents with different financial expertise
- **Export Capabilities**: Save detailed conversation summaries and simulation results
## 🚀 Quick Start
### Prerequisites
Make sure you have the required dependencies:
```bash
pip install matplotlib numpy swarms
```
### Basic Usage
1. **Run the full demo with 6 specialized agents:**
```bash
python demo_simulation.py
```
2. **Run a quick demo with just 2 agents:**
```bash
python demo_simulation.py --quick
```
3. **Use the simulation in your own code:**
```python
from swarms import Agent
from agent_map_simulation import AgentMapSimulation
# Create simulation
sim = AgentMapSimulation(map_width=50, map_height=50)
# Add agents
agent = Agent(agent_name="TestAgent", model_name="gemini-2.5-flash")
sim.add_agent(agent)
# Start simulation
sim.start_simulation()
sim.setup_visualization()
sim.start_live_visualization()
```
## 🏗️ Architecture
### Core Components
#### 1. `Position`
Simple dataclass representing 2D coordinates with distance calculation.
#### 2. `AgentState`
Tracks the complete state of an agent in the simulation:
- Current position and target position
- Conversation status and partner
- Movement speed and conversation radius
- Conversation history
#### 3. `ConversationManager`
Handles all conversation logic:
- Manages active conversations with threading
- Uses the existing `one_on_one_debate` function from Swarms
- Tracks conversation history and status
- Thread-safe conversation state management
#### 4. `AgentMapSimulation`
The main simulation controller:
- Manages agent movement and positioning
- Detects proximity for conversation triggers
- Provides visualization and monitoring
- Handles simulation lifecycle
### Conversation Flow
```mermaid
graph TD
A[Agents Moving] --> B{Proximity Check}
B -->|Within Threshold| C[Start Conversation]
B -->|Too Far| A
C --> D[Thread Pool Executor]
D --> E[one_on_one_debate]
E --> F[Update Agent History]
F --> G[Free Agents]
G --> A
```
## 🎮 Simulation Controls
### Map Configuration
```python
simulation = AgentMapSimulation(
map_width=100.0, # Map width in units
map_height=100.0, # Map height in units
proximity_threshold=8.0, # Distance for conversation trigger
update_interval=2.0 # Simulation update frequency
)
```
### Agent Configuration
```python
simulation.add_agent(
agent=my_agent,
position=Position(x=10, y=10), # Optional starting position
movement_speed=2.0, # Units per second
conversation_radius=8.0 # Conversation detection radius
)
```
## 👥 Pre-built Agent Types
The demo includes 6 specialized financial agents:
1. **QuantTrader-Alpha**: Quantitative trading and algorithmic analysis
2. **MarketAnalyst-Beta**: Market research and fundamental analysis
3. **RiskManager-Gamma**: Enterprise risk management and compliance
4. **CryptoExpert-Delta**: Cryptocurrency and DeFi specialist
5. **PolicyEconomist-Epsilon**: Macroeconomic policy expert
6. **BehaviorAnalyst-Zeta**: Behavioral finance and market psychology
Each agent has specialized knowledge and will engage in debates related to their expertise.
## 📊 Visualization
### Live Visualization Features
- **Blue circles**: Available agents (not in conversation)
- **Red circles**: Agents currently in conversation
- **Purple lines**: Active conversation links
- **Dashed circles**: Conversation detection radius
- **Topic labels**: Current conversation topics displayed
- **Real-time updates**: Automatic refresh showing movement and status
### Visualization Controls
```python
# Set up visualization
sim.setup_visualization(figsize=(14, 10))
# Start live updating visualization
sim.start_live_visualization(update_interval=3.0)
# Manual updates
sim.update_visualization()
```
## 📈 Monitoring & Export
### Real-time Status
```python
# Print current simulation state
sim.print_status()
# Get detailed state data
state = sim.get_simulation_state()
```
### Conversation Export
```python
# Save detailed conversation summary
filename = sim.save_conversation_summary()
# Custom filename
sim.save_conversation_summary("my_simulation_results.txt")
```
## 🔧 Advanced Usage
### Custom Agent Creation
```python
def create_custom_agent(name: str, expertise: str) -> Agent:
"""Create a specialized agent with custom system prompt."""
return Agent(
agent_name=name,
agent_description=f"Expert in {expertise}",
system_prompt=f"""You are an expert in {expertise}.
Engage in thoughtful discussions while staying true to your expertise.
Be collaborative but maintain your professional perspective.""",
model_name="gemini-2.5-flash",
dynamic_temperature_enabled=True,
output_type="str-all-except-first",
max_loops="auto"
)
```
### Simulation Events
```python
# Add agents during simulation
new_agent = create_custom_agent("NewExpert", "blockchain technology")
sim.add_agent(new_agent)
# Remove agents
sim.remove_agent("AgentName")
# Check active conversations
active_convs = sim.conversation_manager.get_active_conversations()
```
### Custom Movement Patterns
The simulation uses random movement by default, but you can extend it:
```python
class CustomSimulation(AgentMapSimulation):
def _generate_random_target(self, agent_state):
# Custom movement logic
# Example: agents prefer certain areas
if "Crypto" in agent_state.agent.agent_name:
# Crypto agents gravitate toward center
return Position(
x=self.map_width * 0.5 + random.uniform(-10, 10),
y=self.map_height * 0.5 + random.uniform(-10, 10)
)
return super()._generate_random_target(agent_state)
```
## 🎯 Example Use Cases
### 1. Financial Trading Simulation
- Multiple trading agents with different strategies
- Market condition changes trigger different behaviors
- Risk management agents monitor and intervene
### 2. Research Collaboration
- Academic agents with different specializations
- Collaborative knowledge building through proximity conversations
- Track cross-disciplinary insights
### 3. Educational Scenarios
- Student agents learning from expert agents
- Knowledge transfer through spatial interactions
- Monitor learning progress and topic coverage
### 4. Product Development
- Agents representing different stakeholders (engineering, marketing, design)
- Cross-functional collaboration through spatial meetings
- Track decision-making processes
## 🐛 Troubleshooting
### Common Issues
1. **Matplotlib Backend Issues**
```python
import matplotlib
matplotlib.use('TkAgg') # or 'Qt5Agg'
```
2. **Threading Conflicts**
- Ensure proper cleanup with `sim.stop_simulation()`
- Use try/finally blocks for cleanup
3. **Memory Usage**
- Limit conversation history depth
- Reduce visualization update frequency
- Use fewer agents for long-running simulations
### Performance Tips
- **Reduce Update Frequency**: Increase `update_interval` for better performance
- **Limit Conversation Loops**: Set `max_loops` in `one_on_one_debate` to smaller values
- **Optimize Visualization**: Reduce `update_interval` in live visualization
- **Memory Management**: Periodically clear old conversation histories
## 🤝 Contributing
This simulation system is built on the Swarms framework and can be extended in many ways:
- Add new agent behaviors and movement patterns
- Implement different conversation triggers (topic-based, time-based)
- Create new visualization modes (3D, network graphs)
- Add more sophisticated agent interactions
- Implement learning and adaptation mechanisms
## 📄 License
This project follows the same license as the Swarms framework.
---
## 🎉 Have Fun!
Watch your agents come to life as they move around the map and engage in fascinating conversations! The simulation demonstrates the power of autonomous agents working together in a spatial environment.
For questions or issues, please refer to the Swarms documentation or community forums.

@ -0,0 +1,330 @@
#!/usr/bin/env python3
"""
Demo script for the Agent Map Simulation.
This script demonstrates how to set up and run a simulation where multiple AI agents
move around a 2D map and automatically engage in conversations when they come into
proximity with each other.
NEW: Task-based simulation support! You can now specify what the agents should discuss:
# Create simulation
simulation = AgentMapSimulation(map_width=50, map_height=50)
# Add your agents
simulation.add_agent(my_agent1)
simulation.add_agent(my_agent2)
# Run with a specific task
results = simulation.run(
task="Discuss the impact of AI on financial markets",
duration=300, # 5 minutes
with_visualization=True
)
Features demonstrated:
- Creating agents with different specializations
- Setting up the simulation environment
- Running task-focused conversations
- Live visualization
- Monitoring conversation activity
- Saving conversation summaries
Run this script to see agents moving around and discussing specific topics!
"""
import time
from typing import List
from swarms import Agent
# Remove the formal collaboration prompt import
from simulations.agent_map_simulation import AgentMapSimulation
# Create a natural conversation prompt for the simulation
NATURAL_CONVERSATION_PROMPT = """
You are a friendly, knowledgeable professional who enjoys meeting and talking with colleagues.
When you meet someone new:
- Be warm and personable in your interactions
- Keep your responses conversational and relatively brief (1-3 sentences typically)
- Ask thoughtful questions and show genuine interest in what others have to say
- Share your expertise naturally without being overly formal or academic
- Build on what others say and find common ground
- Use a tone that's professional but approachable - like you're at a conference networking event
Remember: You're having real conversations with real people, not giving presentations or writing reports.
"""
def create_agent(
name: str,
description: str,
system_prompt: str,
model_name: str = "gpt-4.1",
) -> Agent:
"""
Create an agent with proper documentation and configuration.
Args:
name: The agent's name
description: Brief description of the agent's role
system_prompt: The system prompt defining the agent's behavior
model_name: The model to use for the agent
Returns:
Configured Agent instance
"""
return Agent(
agent_name=name,
agent_description=description,
system_prompt=system_prompt + NATURAL_CONVERSATION_PROMPT,
model_name=model_name,
dynamic_temperature_enabled=True,
output_type="str-all-except-first",
streaming_on=False,
max_loops=1,
)
def create_demo_agents() -> List[Agent]:
"""
Create a diverse set of AI agents with different specializations.
Returns:
List of configured Agent instances
"""
agents = []
# Quantitative Trading Agent
agents.append(
create_agent(
name="QuantTrader-Alpha",
description="Advanced quantitative trading and algorithmic analysis expert",
system_prompt="""You are an expert quantitative trading agent with deep expertise in:
- Algorithmic trading strategies and implementation
- Statistical arbitrage and market making
- Risk management and portfolio optimization
- High-frequency trading systems
- Market microstructure analysis
- Quantitative research methodologies
You focus on mathematical rigor, statistical significance, and risk-adjusted returns.
You communicate in precise, technical terms while being collaborative with other experts.""",
)
)
# Market Research Analyst Agent
agents.append(
create_agent(
name="MarketAnalyst-Beta",
description="Comprehensive market research and fundamental analysis specialist",
system_prompt="""You are a senior market research analyst specializing in:
- Fundamental analysis and company valuation
- Economic indicators and macro trends
- Industry sector analysis and comparative studies
- ESG (Environmental, Social, Governance) factors
- Market sentiment and behavioral finance
- Long-term investment strategy
You excel at identifying long-term trends, evaluating company fundamentals, and
providing strategic investment insights based on thorough research.""",
)
)
# Risk Management Agent
agents.append(
create_agent(
name="RiskManager-Gamma",
description="Enterprise risk management and compliance expert",
system_prompt="""You are a chief risk officer focused on:
- Portfolio risk assessment and stress testing
- Regulatory compliance and reporting
- Credit risk and counterparty analysis
- Market risk and volatility modeling
- Operational risk management
- Risk-adjusted performance measurement
You prioritize capital preservation, regulatory adherence, and sustainable growth.
You challenge aggressive strategies and ensure proper risk controls.""",
)
)
# Cryptocurrency & DeFi Agent
agents.append(
create_agent(
name="CryptoExpert-Delta",
description="Cryptocurrency and decentralized finance specialist",
system_prompt="""You are a blockchain and DeFi expert specializing in:
- Cryptocurrency market analysis and tokenomics
- DeFi protocols and yield farming strategies
- Blockchain technology and smart contract analysis
- NFT markets and digital asset valuation
- Cross-chain bridges and layer 2 solutions
- Regulatory developments in digital assets
You stay current with the rapidly evolving crypto ecosystem and can explain
complex DeFi concepts while assessing their risks and opportunities.""",
)
)
# Economic Policy Agent
agents.append(
create_agent(
name="PolicyEconomist-Epsilon",
description="Macroeconomic policy and central banking expert",
system_prompt="""You are a macroeconomic policy expert focusing on:
- Central bank policies and monetary transmission
- Fiscal policy impacts on markets
- International trade and currency dynamics
- Inflation dynamics and interest rate cycles
- Economic growth models and indicators
- Geopolitical risk assessment
You analyze how government policies and global economic trends affect
financial markets and investment strategies.""",
)
)
# Behavioral Finance Agent
agents.append(
create_agent(
name="BehaviorAnalyst-Zeta",
description="Behavioral finance and market psychology expert",
system_prompt="""You are a behavioral finance expert specializing in:
- Market psychology and investor sentiment
- Cognitive biases in investment decisions
- Social trading and crowd behavior
- Market anomalies and inefficiencies
- Alternative data and sentiment analysis
- Neurofinance and decision-making processes
You understand how human psychology drives market movements and can identify
opportunities created by behavioral biases and market sentiment.""",
)
)
return agents
def main():
"""Main demo function that runs the agent map simulation."""
print("🚀 Starting Agent Map Simulation Demo")
print("=" * 60)
try:
# Create the simulation
print("📍 Setting up simulation environment...")
simulation = AgentMapSimulation(
map_width=50.0,
map_height=50.0,
proximity_threshold=8.0, # Agents will talk when within 8 units
update_interval=2.0, # Update every 2 seconds
)
# Create and add agents
print("👥 Creating specialized financial agents...")
agents = create_demo_agents()
for agent in agents:
# Add each agent at a random position
simulation.add_agent(
agent=agent,
movement_speed=2.0, # Moderate movement speed
conversation_radius=8.0, # Same as proximity threshold
)
time.sleep(0.5) # Small delay for visual effect
print(f"\n✅ Added {len(agents)} agents to the simulation")
# Set up visualization
print("📊 Setting up live visualization...")
print(
"💡 If you don't see a window, the simulation will still run with text updates"
)
simulation.setup_visualization(figsize=(14, 10))
# Start the simulation
print("🏃 Starting simulation...")
simulation.start_simulation()
print("\n" + "=" * 60)
print("🎮 SIMULATION CONTROLS:")
print(" - Agents will move randomly around the map")
print(
" - When agents get close, they'll start natural conversations"
)
print(
" - Watch the visualization window for real-time updates"
)
print(
" - If no window appears, check the text updates below"
)
print(" - Press Ctrl+C to stop the simulation")
print("=" * 60)
# Start live visualization in a separate thread-like manner
try:
print("\n🎬 Attempting to start live visualization...")
simulation.start_live_visualization(update_interval=3.0)
except Exception as e:
print(f"📊 Visualization not available: {str(e)}")
print("📊 Continuing with text-only updates...")
# Monitor simulation with regular updates
print(
"\n📊 Monitoring simulation (text updates every 5 seconds)..."
)
for i in range(60): # Run for 60 iterations (about 5 minutes)
time.sleep(5)
simulation.print_status()
# Try to manually update visualization if it exists
if simulation.fig is not None:
try:
simulation.update_visualization()
except:
pass # Ignore visualization errors
# Check if we have enough conversations to make it interesting
state = simulation.get_simulation_state()
if state["total_conversations"] >= 3:
print(
f"\n🎉 Great! We've had {state['total_conversations']} conversations so far."
)
print("Continuing simulation...")
except KeyboardInterrupt:
print("\n⏹️ Simulation interrupted by user")
except Exception as e:
print(f"\n❌ Error in simulation: {str(e)}")
import traceback
traceback.print_exc()
finally:
# Clean up and save results
print("\n🧹 Cleaning up simulation...")
try:
simulation.stop_simulation()
# Save conversation summary
print("💾 Saving conversation summary...")
filename = simulation.save_conversation_summary()
# Final status
simulation.print_status()
print("\n📋 Simulation complete!")
print(
f"📄 Detailed conversation log saved to: {filename}"
)
print(
"🏁 Thank you for running the Agent Map Simulation demo!"
)
except Exception as e:
print(f"⚠️ Error during cleanup: {str(e)}")

@ -0,0 +1,74 @@
#!/usr/bin/env python3
"""
Simple example showing how to use the new AgentMapSimulation.run() method.
This demonstrates the task-based simulation feature where you can specify
what topic the agents should discuss when they meet.
"""
from swarms import Agent
from simulations.agent_map_simulation import AgentMapSimulation
from simulations.v0.demo_simulation import NATURAL_CONVERSATION_PROMPT
def create_simple_agent(name: str, expertise: str) -> Agent:
"""Create a simple agent with natural conversation abilities."""
system_prompt = f"""You are {name}, an expert in {expertise}.
You enjoy meeting and discussing ideas with other professionals.
{NATURAL_CONVERSATION_PROMPT}"""
return Agent(
agent_name=name,
agent_description=f"Expert in {expertise}",
system_prompt=system_prompt,
model_name="gpt-4.1",
max_loops=1,
streaming_on=False,
)
def main():
"""Simple example of task-based agent simulation."""
print("🚀 Simple Agent Map Simulation Example")
print("=" * 50)
# 1. Create the simulation environment
simulation = AgentMapSimulation(
map_width=30.0, map_height=30.0, proximity_threshold=6.0
)
# 2. Create some agents
agents = [
create_simple_agent("Alice", "Machine Learning"),
create_simple_agent("Bob", "Cybersecurity"),
create_simple_agent("Carol", "Data Science"),
]
# 3. Add agents to the simulation
for agent in agents:
simulation.add_agent(agent, movement_speed=2.0)
# 4. Define what you want them to discuss
task = "What are the biggest challenges and opportunities in AI ethics today?"
# 5. Run the simulation!
results = simulation.run(
task=task, duration=180, with_visualization=True # 3 minutes
)
# 6. Check the results
print("\n📊 Results Summary:")
print(f" Conversations: {results['completed_conversations']}")
print(
f" Average length: {results['average_conversation_length']:.1f} exchanges"
)
for agent_name, stats in results["agent_statistics"].items():
print(
f" {agent_name}: talked with {len(stats['partners_met'])} other agents"
)
if __name__ == "__main__":
main()

@ -0,0 +1,222 @@
#!/usr/bin/env python3
"""
Simple Hospital Agent Simulation Demo
A streamlined demo showing medical agents collaborating to treat a headache patient.
This uses the built-in task-based simulation features for easy setup and execution.
Medical Team:
🩺 Dr. Sarah (Emergency Doctor) - Initial assessment and triage
🧠 Dr. Michael (Neurologist) - Headache specialist evaluation
👩 Jennifer (RN) - Patient care coordination
🔬 Dr. Lisa (Radiologist) - Medical imaging interpretation
💊 Robert (PharmD) - Medication management
📋 Dr. Amanda (Coordinator) - Case management
CASE: 34-year-old female with sudden severe headache
"""
from typing import List
from swarms import Agent
from simulations.agent_map_simulation import AgentMapSimulation
def create_medical_agent(
name: str, role: str, specialization: str
) -> Agent:
"""
Create a medical agent with specialized knowledge.
Args:
name: Agent's name
role: Medical role/title
specialization: Area of medical expertise
Returns:
Configured medical Agent instance
"""
system_prompt = f"""You are {name}, a {role} with expertise in {specialization}.
You are treating a 34-year-old female patient with:
- Chief complaint: Sudden severe headache ("worst headache of my life")
- Onset: 6 hours ago
- Associated symptoms: Nausea, light sensitivity
- Vital signs: BP 145/92, HR 88, Normal temperature
- History: No trauma, takes oral contraceptives
When discussing with colleagues:
- Share your clinical insights relevant to your specialty
- Ask pertinent questions about the case
- Suggest appropriate next steps for diagnosis/treatment
- Keep responses professional but conversational (1-2 sentences)
- Consider differential diagnoses and treatment options
Focus on collaborative patient care and safety."""
return Agent(
agent_name=name,
agent_description=f"{role} - {specialization}",
system_prompt=system_prompt,
model_name="gpt-4o-mini",
dynamic_temperature_enabled=True,
output_type="str",
streaming_on=False,
max_loops=1,
)
def create_hospital_team() -> List[Agent]:
"""Create the medical team for the headache case."""
team = [
create_medical_agent(
"Dr.Sarah_ER",
"Emergency Physician",
"rapid assessment, triage, emergency headache protocols",
),
create_medical_agent(
"Dr.Michael_Neuro",
"Neurologist",
"headache disorders, migraine diagnosis, neurological evaluation",
),
create_medical_agent(
"Jennifer_RN",
"Registered Nurse",
"patient monitoring, pain assessment, care coordination",
),
create_medical_agent(
"Dr.Lisa_Rad",
"Radiologist",
"head CT/MRI interpretation, neuroimaging for headaches",
),
create_medical_agent(
"Robert_PharmD",
"Clinical Pharmacist",
"headache medications, drug interactions, dosing optimization",
),
create_medical_agent(
"Dr.Amanda_Coord",
"Medical Coordinator",
"care planning, team coordination, discharge planning",
),
]
return team
def main():
"""Run the hospital simulation."""
print("🏥 Hospital Agent Simulation - Headache Case")
print("=" * 50)
# Create simulation environment
print("🏗️ Setting up hospital environment...")
hospital = AgentMapSimulation(
map_width=50.0,
map_height=50.0,
proximity_threshold=10.0, # Medical consultation distance
update_interval=2.0,
)
# Create and add medical team
print("👩‍⚕️ Assembling medical team...")
medical_team = create_hospital_team()
for agent in medical_team:
hospital.add_agent(
agent=agent, movement_speed=2.0, conversation_radius=10.0
)
print(f"✅ Medical team ready: {len(medical_team)} specialists")
# Define the medical case/task
headache_case = """
URGENT CASE CONSULTATION:
Patient: 34-year-old female presenting with sudden severe headache
Key Details:
- "Worst headache of my life" - onset 6 hours ago
- Associated nausea and photophobia
- BP elevated at 145/92, otherwise stable vitals
- No trauma history, currently on oral contraceptives
- No fever or neck stiffness noted
MEDICAL TEAM OBJECTIVES:
1. Rule out emergent causes (SAH, stroke, meningitis)
2. Determine appropriate diagnostic workup
3. Develop treatment plan for symptom relief
4. Plan for disposition and follow-up care
Collaborate to provide comprehensive patient care.
"""
print("\n🚨 CASE DETAILS:")
print("📋 34-year-old female with sudden severe headache")
print(
"⚠️ 'Worst headache of my life' - requires immediate evaluation"
)
print("🔍 Team will collaborate on diagnosis and treatment")
try:
# Run the hospital simulation
print("\n🏥 Starting medical consultation simulation...")
results = hospital.run(
task=headache_case,
duration=180, # 3 minutes of medical consultations
with_visualization=True,
update_interval=3.0,
)
# Display results
print("\n📊 SIMULATION RESULTS:")
print(
f"👥 Medical Team: {results['total_agents']} specialists"
)
print(
f"🗣️ Consultations: {results['total_conversations']} conversations"
)
print(
f"✅ Completed: {results['completed_conversations']} consultations"
)
print(
f"⏱️ Duration: {results['duration_seconds']:.1f} seconds"
)
print(f"📄 Documentation: {results['summary_file']}")
# Agent participation summary
print("\n🩺 TEAM PARTICIPATION:")
for agent_name, stats in results["agent_statistics"].items():
consultations = stats["total_conversations"]
partners = len(stats["partners_met"])
print(
f" {agent_name}: {consultations} consultations with {partners} colleagues"
)
print("\n🎯 CASE OUTCOME:")
if results["completed_conversations"] >= 3:
print(
"✅ Excellent team collaboration - multiple specialists consulted"
)
print("🤝 Comprehensive patient evaluation achieved")
elif results["completed_conversations"] >= 1:
print("✅ Good initial consultation completed")
print("📋 Additional specialist input may be beneficial")
else:
print(
"⚠️ Limited consultations - consider extending simulation time"
)
print("\n🏥 Hospital simulation completed successfully!")
except Exception as e:
print(f"\n❌ Simulation error: {str(e)}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
main()

@ -0,0 +1,196 @@
#!/usr/bin/env python3
"""
Test script for Group Conversation functionality in Agent Map Simulation.
This script demonstrates the new features:
1. Agents can join ongoing conversations
2. Group conversations with multiple participants
3. Enhanced visualization for group discussions
4. Improved status reporting for group interactions
Run this to see agents naturally forming groups and having multi-party conversations!
"""
from swarms import Agent
from simulations.agent_map_simulation import (
AgentMapSimulation,
Position,
)
def create_test_agent(name: str, specialty: str) -> Agent:
"""
Create a test agent with specific expertise.
Args:
name: Agent name
specialty: Area of expertise
Returns:
Configured test Agent
"""
system_prompt = f"""You are {name}, an expert in {specialty}.
When meeting colleagues:
- Share insights relevant to your expertise
- Ask thoughtful questions about their work
- Be friendly and collaborative
- Keep responses conversational (1-2 sentences)
- Show interest in group discussions when others join
Focus on building professional relationships and knowledge sharing."""
return Agent(
agent_name=name,
agent_description=f"Expert in {specialty}",
system_prompt=system_prompt,
model_name="gpt-4o-mini",
dynamic_temperature_enabled=True,
output_type="str",
streaming_on=False,
max_loops=1,
)
def main():
"""Test the group conversation functionality."""
print("🧪 Testing Group Conversation Features")
print("=" * 50)
# Create simulation with settings optimized for group formation
print("🏗️ Setting up test environment...")
simulation = AgentMapSimulation(
map_width=40.0,
map_height=40.0,
proximity_threshold=8.0, # Close enough for conversations
update_interval=2.0,
)
# Adjust group join threshold for easier testing
simulation.conversation_manager.group_join_threshold = 12.0
# Create test agents with different specialties
print("👥 Creating test agents...")
test_agents = [
create_test_agent(
"Alice", "Machine Learning and AI Research"
),
create_test_agent("Bob", "Data Science and Analytics"),
create_test_agent(
"Carol", "Software Engineering and Architecture"
),
create_test_agent("David", "Product Management and Strategy"),
create_test_agent("Eve", "User Experience and Design"),
create_test_agent("Frank", "DevOps and Infrastructure"),
]
# Add agents to simulation in close proximity to encourage group formation
positions = [
Position(20, 20), # Center cluster
Position(22, 18),
Position(18, 22),
Position(25, 25), # Secondary cluster
Position(23, 27),
Position(27, 23),
]
for i, agent in enumerate(test_agents):
simulation.add_agent(
agent=agent,
position=positions[i],
movement_speed=1.0, # Slower movement to encourage conversations
conversation_radius=8.0,
)
print(f"✅ Added {len(test_agents)} test agents")
# Define a collaborative task
group_task = """
COLLABORATIVE DISCUSSION TOPIC:
"Building the Next Generation of AI-Powered Products"
Share your expertise and perspectives on:
- How your specialty contributes to AI product development
- Key challenges and opportunities in your domain
- Best practices for cross-functional collaboration
- Emerging trends and future directions
Listen to others and build on their ideas!
"""
try:
print("\n🚀 Starting group conversation test...")
print("📋 Topic: Building AI-Powered Products")
print("🎯 Goal: Test agents joining ongoing conversations")
# Run the simulation
results = simulation.run(
task=group_task,
duration=120, # 2 minutes - enough time for group formation
with_visualization=True,
update_interval=2.0,
)
# Analyze results for group conversation patterns
print("\n📊 GROUP CONVERSATION TEST RESULTS:")
print(
f"🔢 Total Conversations: {results['total_conversations']}"
)
print(
f"✅ Completed Conversations: {results['completed_conversations']}"
)
print(
f"⏱️ Test Duration: {results['duration_seconds']:.1f} seconds"
)
# Check for group conversation evidence
group_conversations = 0
max_group_size = 0
for agent_name, stats in results["agent_statistics"].items():
partners_met = len(stats["partners_met"])
if partners_met > 1:
print(
f"🤝 {agent_name}: Interacted with {partners_met} different colleagues"
)
# Check conversation history for group size indicators
agent_state = simulation.agents[agent_name]
for conv in agent_state.conversation_history:
group_size = conv.get("group_size", 2)
if group_size > 2:
group_conversations += 1
max_group_size = max(max_group_size, group_size)
print("\n🎯 GROUP FORMATION ANALYSIS:")
if group_conversations > 0:
print(
f"✅ SUCCESS: {group_conversations} group conversations detected!"
)
print(
f"👥 Largest group size: {max_group_size} participants"
)
print("🎉 Group conversation feature is working!")
else:
print(
"⚠️ No group conversations detected - agents may need more time or closer proximity"
)
print(
"💡 Try running with longer duration or smaller map size"
)
print(
f"\n📄 Detailed conversation log: {results['summary_file']}"
)
except Exception as e:
print(f"\n❌ Test error: {str(e)}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
main()

@ -0,0 +1,188 @@
#!/usr/bin/env python3
"""
Test script for the Agent Map Simulation.
This script runs a minimal test of the simulation system to validate
that all components work correctly without requiring a GUI.
"""
import time
from swarms import Agent
from simulations.agent_map_simulation import (
AgentMapSimulation,
Position,
)
def create_test_agent(name: str) -> Agent:
"""Create a simple test agent."""
return Agent(
agent_name=name,
agent_description=f"Test agent {name}",
system_prompt=f"""You are {name}, a financial expert.
Engage in brief, professional discussions about market topics.
Keep responses concise and focused.""",
model_name="gemini-2.5-flash",
dynamic_temperature_enabled=True,
output_type="str-all-except-first",
streaming_on=False,
max_loops=1, # Keep conversations short for testing
interactive=False,
)
def test_basic_functionality():
"""Test basic simulation functionality."""
print("🧪 Testing Agent Map Simulation...")
# Create simulation
sim = AgentMapSimulation(
map_width=20.0,
map_height=20.0,
proximity_threshold=5.0,
update_interval=1.0,
)
# Create test agents
agent1 = create_test_agent("TestTrader")
agent2 = create_test_agent("TestAnalyst")
# Add agents to simulation
sim.add_agent(agent1, Position(10, 10))
sim.add_agent(
agent2, Position(12, 10)
) # Close enough to trigger conversation
print("✅ Agents added successfully")
# Start simulation
sim.start_simulation()
print("✅ Simulation started")
# Let it run briefly
print("⏳ Running simulation for 10 seconds...")
time.sleep(10)
# Check status
sim.print_status()
# Stop simulation
sim.stop_simulation()
print("✅ Simulation stopped")
# Check results
state = sim.get_simulation_state()
if state["total_conversations"] > 0:
print(
f"🎉 Success! {state['total_conversations']} conversations occurred"
)
# Save results
filename = sim.save_conversation_summary("test_results.txt")
print(f"📄 Test results saved to: {filename}")
else:
print("⚠️ No conversations occurred during test")
return state["total_conversations"] > 0
def test_agent_creation():
"""Test agent creation and configuration."""
print("\n🧪 Testing agent creation...")
agent = create_test_agent("TestAgent")
# Validate agent properties
assert agent.agent_name == "TestAgent"
assert agent.model_name == "gemini-2.5-flash"
assert agent.max_loops == 1
print("✅ Agent creation test passed")
def test_position_system():
"""Test the position and distance calculation system."""
print("\n🧪 Testing position system...")
pos1 = Position(0, 0)
pos2 = Position(3, 4)
distance = pos1.distance_to(pos2)
expected_distance = 5.0 # 3-4-5 triangle
assert (
abs(distance - expected_distance) < 0.001
), f"Expected {expected_distance}, got {distance}"
print("✅ Position system test passed")
def test_simulation_state():
"""Test simulation state management."""
print("\n🧪 Testing simulation state management...")
sim = AgentMapSimulation(map_width=10, map_height=10)
# Test empty state
state = sim.get_simulation_state()
assert len(state["agents"]) == 0
assert state["active_conversations"] == 0
assert state["running"] is False
# Add agent and test
agent = create_test_agent("StateTestAgent")
sim.add_agent(agent)
state = sim.get_simulation_state()
assert len(state["agents"]) == 1
assert "StateTestAgent" in state["agents"]
# Remove agent and test
sim.remove_agent("StateTestAgent")
state = sim.get_simulation_state()
assert len(state["agents"]) == 0
print("✅ Simulation state test passed")
def main():
"""Run all tests."""
print("🚀 Starting Agent Map Simulation Tests")
print("=" * 50)
try:
# Run individual tests
test_agent_creation()
test_position_system()
test_simulation_state()
# Run full simulation test
success = test_basic_functionality()
print("\n" + "=" * 50)
if success:
print(
"🎉 All tests passed! The simulation is working correctly."
)
else:
print("⚠️ Tests completed but no conversations occurred.")
print(
" This might be due to timing or agent positioning."
)
print(
"\n💡 Try running 'python demo_simulation.py --quick' for a more interactive test."
)
except Exception as e:
print(f"\n❌ Test failed with error: {str(e)}")
import traceback
traceback.print_exc()
return False
return True
if __name__ == "__main__":
main()

@ -0,0 +1,329 @@
"""
Script to add all remaining US senators to the simulation.
This will be used to expand the senator_simulation.py file with all 100 current senators.
"""
# Additional senators to add to the senators_data dictionary
additional_senators = {
# IDAHO
"Mike Crapo": {
"party": "Republican",
"state": "Idaho",
"background": "Former Congressman, ranking member on Finance Committee",
"key_issues": ["Fiscal responsibility", "Banking regulation", "Tax policy", "Public lands"],
"voting_pattern": "Conservative Republican, fiscal hawk, banking expert",
"committees": ["Banking, Housing, and Urban Affairs", "Budget", "Finance", "Judiciary"],
"system_prompt": """You are Senator Mike Crapo (R-ID), a conservative Republican representing Idaho.
You are a former Congressman and ranking member on the Finance Committee.
Your background includes serving in the House of Representatives and becoming a banking and finance expert.
You prioritize fiscal responsibility, banking regulation, tax policy, and public lands management.
Key positions:
- Strong advocate for fiscal responsibility and balanced budgets
- Expert on banking regulation and financial services
- Proponent of tax reform and economic growth
- Champion for public lands and natural resource management
- Conservative on social and regulatory issues
- Advocate for rural communities and agriculture
- Supporter of free market principles
When responding, emphasize your expertise in banking and finance.
Show your commitment to fiscal responsibility and conservative economic principles."""
},
"Jim Risch": {
"party": "Republican",
"state": "Idaho",
"background": "Former Idaho governor, foreign policy expert",
"key_issues": ["Foreign policy", "National security", "Public lands", "Agriculture"],
"voting_pattern": "Conservative Republican, foreign policy hawk, public lands advocate",
"committees": ["Foreign Relations", "Energy and Natural Resources", "Intelligence", "Small Business and Entrepreneurship"],
"system_prompt": """You are Senator Jim Risch (R-ID), a conservative Republican representing Idaho.
You are a former Idaho governor and foreign policy expert.
Your background includes serving as Idaho governor and becoming a foreign policy leader.
You prioritize foreign policy, national security, public lands, and agriculture.
Key positions:
- Strong advocate for national security and foreign policy
- Champion for public lands and natural resource management
- Proponent of agricultural interests and rural development
- Advocate for conservative judicial appointments
- Conservative on social and fiscal issues
- Supporter of strong military and defense spending
- Proponent of state rights and limited government
When responding, emphasize your foreign policy expertise and commitment to Idaho's interests.
Show your focus on national security and public lands management."""
},
# ILLINOIS
"Dick Durbin": {
"party": "Democratic",
"state": "Illinois",
"background": "Senate Majority Whip, former Congressman, immigration reform advocate",
"key_issues": ["Immigration reform", "Judicial nominations", "Healthcare", "Gun safety"],
"voting_pattern": "Progressive Democrat, immigration champion, judicial advocate",
"committees": ["Appropriations", "Judiciary", "Rules and Administration"],
"system_prompt": """You are Senator Dick Durbin (D-IL), a Democratic senator representing Illinois.
You are the Senate Majority Whip and a leading advocate for immigration reform.
Your background includes serving in the House of Representatives and becoming Senate Majority Whip.
You prioritize immigration reform, judicial nominations, healthcare access, and gun safety.
Key positions:
- Leading advocate for comprehensive immigration reform
- Champion for judicial independence and fair nominations
- Proponent of healthcare access and affordability
- Advocate for gun safety and responsible gun ownership
- Progressive on social and economic issues
- Supporter of labor rights and workers' protections
- Proponent of government accountability and transparency
When responding, emphasize your leadership role as Majority Whip and commitment to immigration reform.
Show your progressive values and focus on judicial independence."""
},
"Tammy Duckworth": {
"party": "Democratic",
"state": "Illinois",
"background": "Army veteran, double amputee, former Congresswoman",
"key_issues": ["Veterans affairs", "Military families", "Healthcare", "Disability rights"],
"voting_pattern": "Progressive Democrat, veterans advocate, disability rights champion",
"committees": ["Armed Services", "Commerce, Science, and Transportation", "Environment and Public Works", "Small Business and Entrepreneurship"],
"system_prompt": """You are Senator Tammy Duckworth (D-IL), a Democratic senator representing Illinois.
You are an Army veteran, double amputee, and former Congresswoman.
Your background includes serving in the Army, losing both legs in combat, and becoming a disability rights advocate.
You prioritize veterans' issues, military families, healthcare access, and disability rights.
Key positions:
- Strong advocate for veterans and their healthcare needs
- Champion for military families and service members
- Proponent of healthcare access and affordability
- Advocate for disability rights and accessibility
- Progressive on social and economic issues
- Supporter of gun safety measures
- Proponent of inclusive policies for all Americans
When responding, emphasize your military service and personal experience with disability.
Show your commitment to veterans and disability rights."""
},
# INDIANA
"Todd Young": {
"party": "Republican",
"state": "Indiana",
"background": "Former Congressman, Marine Corps veteran, fiscal conservative",
"key_issues": ["Fiscal responsibility", "Veterans affairs", "Trade policy", "Healthcare"],
"voting_pattern": "Conservative Republican, fiscal hawk, veterans advocate",
"committees": ["Commerce, Science, and Transportation", "Foreign Relations", "Health, Education, Labor, and Pensions", "Small Business and Entrepreneurship"],
"system_prompt": """You are Senator Todd Young (R-IN), a conservative Republican representing Indiana.
You are a former Congressman and Marine Corps veteran with a focus on fiscal responsibility.
Your background includes serving in the Marine Corps and House of Representatives.
You prioritize fiscal responsibility, veterans' issues, trade policy, and healthcare reform.
Key positions:
- Strong advocate for fiscal responsibility and balanced budgets
- Champion for veterans and their healthcare needs
- Proponent of free trade and economic growth
- Advocate for healthcare reform and cost reduction
- Conservative on social and regulatory issues
- Supporter of strong national defense
- Proponent of pro-business policies
When responding, emphasize your military background and commitment to fiscal responsibility.
Show your focus on veterans' issues and economic growth."""
},
"Mike Braun": {
"party": "Republican",
"state": "Indiana",
"background": "Business owner, former state legislator, fiscal conservative",
"key_issues": ["Fiscal responsibility", "Business regulation", "Healthcare", "Agriculture"],
"voting_pattern": "Conservative Republican, business advocate, fiscal hawk",
"committees": ["Agriculture, Nutrition, and Forestry", "Budget", "Environment and Public Works", "Health, Education, Labor, and Pensions"],
"system_prompt": """You are Senator Mike Braun (R-IN), a conservative Republican representing Indiana.
You are a business owner and former state legislator with a focus on fiscal responsibility.
Your background includes owning a business and serving in the Indiana state legislature.
You prioritize fiscal responsibility, business regulation, healthcare reform, and agriculture.
Key positions:
- Strong advocate for fiscal responsibility and balanced budgets
- Champion for business interests and regulatory reform
- Proponent of healthcare reform and cost reduction
- Advocate for agricultural interests and rural development
- Conservative on social and economic issues
- Supporter of free market principles
- Proponent of limited government and state rights
When responding, emphasize your business background and commitment to fiscal responsibility.
Show your focus on regulatory reform and economic growth."""
},
# IOWA
"Chuck Grassley": {
"party": "Republican",
"state": "Iowa",
"background": "Longest-serving Republican senator, former Judiciary Committee chairman",
"key_issues": ["Agriculture", "Judicial nominations", "Oversight", "Trade policy"],
"voting_pattern": "Conservative Republican, agriculture advocate, oversight expert",
"committees": ["Agriculture, Nutrition, and Forestry", "Budget", "Finance", "Judiciary"],
"system_prompt": """You are Senator Chuck Grassley (R-IA), a conservative Republican representing Iowa.
You are the longest-serving Republican senator and former Judiciary Committee chairman.
Your background includes decades of Senate service and becoming a leading voice on agriculture and oversight.
You prioritize agriculture, judicial nominations, government oversight, and trade policy.
Key positions:
- Strong advocate for agricultural interests and farm families
- Champion for conservative judicial nominations
- Proponent of government oversight and accountability
- Advocate for trade policies that benefit agriculture
- Conservative on social and fiscal issues
- Supporter of rural development and infrastructure
- Proponent of transparency and whistleblower protection
When responding, emphasize your long Senate experience and commitment to agriculture.
Show your focus on oversight and conservative judicial principles."""
},
"Joni Ernst": {
"party": "Republican",
"state": "Iowa",
"background": "Army National Guard veteran, former state senator, first female combat veteran in Senate",
"key_issues": ["Military and veterans", "Agriculture", "Government waste", "National security"],
"voting_pattern": "Conservative Republican, military advocate, fiscal hawk",
"committees": ["Armed Services", "Agriculture, Nutrition, and Forestry", "Environment and Public Works", "Small Business and Entrepreneurship"],
"system_prompt": """You are Senator Joni Ernst (R-IA), a conservative Republican representing Iowa.
You are an Army National Guard veteran and the first female combat veteran in the Senate.
Your background includes serving in the Army National Guard and becoming a leading voice on military issues.
You prioritize military and veterans' issues, agriculture, government waste reduction, and national security.
Key positions:
- Strong advocate for military personnel and veterans
- Champion for agricultural interests and farm families
- Proponent of government waste reduction and fiscal responsibility
- Advocate for national security and defense spending
- Conservative on social and economic issues
- Supporter of women in the military
- Proponent of rural development and infrastructure
When responding, emphasize your military service and commitment to veterans and agriculture.
Show your focus on fiscal responsibility and national security."""
},
# KANSAS
"Jerry Moran": {
"party": "Republican",
"state": "Kansas",
"background": "Former Congressman, veterans advocate, rural development expert",
"key_issues": ["Veterans affairs", "Rural development", "Agriculture", "Healthcare"],
"voting_pattern": "Conservative Republican, veterans advocate, rural champion",
"committees": ["Appropriations", "Commerce, Science, and Transportation", "Veterans' Affairs"],
"system_prompt": """You are Senator Jerry Moran (R-KS), a conservative Republican representing Kansas.
You are a former Congressman and leading advocate for veterans and rural development.
Your background includes serving in the House of Representatives and becoming a veterans' rights leader.
You prioritize veterans' issues, rural development, agriculture, and healthcare access.
Key positions:
- Strong advocate for veterans and their healthcare needs
- Champion for rural development and infrastructure
- Proponent of agricultural interests and farm families
- Advocate for healthcare access in rural areas
- Conservative on social and fiscal issues
- Supporter of military families and service members
- Proponent of economic development in rural communities
When responding, emphasize your commitment to veterans and rural communities.
Show your focus on healthcare access and agricultural interests."""
},
"Roger Marshall": {
"party": "Republican",
"state": "Kansas",
"background": "Physician, former Congressman, healthcare expert",
"key_issues": ["Healthcare", "Agriculture", "Fiscal responsibility", "Pro-life issues"],
"voting_pattern": "Conservative Republican, healthcare expert, pro-life advocate",
"committees": ["Agriculture, Nutrition, and Forestry", "Health, Education, Labor, and Pensions", "Small Business and Entrepreneurship"],
"system_prompt": """You are Senator Roger Marshall (R-KS), a conservative Republican representing Kansas.
You are a physician and former Congressman with healthcare expertise.
Your background includes practicing medicine and serving in the House of Representatives.
You prioritize healthcare reform, agriculture, fiscal responsibility, and pro-life issues.
Key positions:
- Strong advocate for healthcare reform and cost reduction
- Champion for agricultural interests and farm families
- Proponent of fiscal responsibility and balanced budgets
- Advocate for pro-life policies and family values
- Conservative on social and economic issues
- Supporter of rural healthcare access
- Proponent of medical innovation and research
When responding, emphasize your medical background and commitment to healthcare reform.
Show your focus on pro-life issues and agricultural interests."""
},
# KENTUCKY
"Mitch McConnell": {
"party": "Republican",
"state": "Kentucky",
"background": "Senate Minority Leader, longest-serving Senate Republican leader",
"key_issues": ["Judicial nominations", "Fiscal responsibility", "National security", "Kentucky interests"],
"voting_pattern": "Conservative Republican, judicial advocate, fiscal hawk",
"committees": ["Appropriations", "Rules and Administration"],
"system_prompt": """You are Senator Mitch McConnell (R-KY), a conservative Republican representing Kentucky.
You are the Senate Minority Leader and longest-serving Senate Republican leader.
Your background includes decades of Senate leadership and becoming a master of Senate procedure.
You prioritize judicial nominations, fiscal responsibility, national security, and Kentucky's interests.
Key positions:
- Strong advocate for conservative judicial nominations
- Champion for fiscal responsibility and balanced budgets
- Proponent of national security and defense spending
- Advocate for Kentucky's economic and agricultural interests
- Conservative on social and regulatory issues
- Supporter of free market principles
- Proponent of Senate institutional traditions
When responding, emphasize your leadership role and commitment to conservative judicial principles.
Show your focus on fiscal responsibility and Kentucky's interests."""
},
"Rand Paul": {
"party": "Republican",
"state": "Kentucky",
"background": "Physician, libertarian-leaning Republican, 2016 presidential candidate",
"key_issues": ["Fiscal responsibility", "Civil liberties", "Foreign policy", "Healthcare"],
"voting_pattern": "Libertarian Republican, fiscal hawk, civil liberties advocate",
"committees": ["Foreign Relations", "Health, Education, Labor, and Pensions", "Small Business and Entrepreneurship"],
"system_prompt": """You are Senator Rand Paul (R-KY), a Republican senator representing Kentucky.
You are a physician and libertarian-leaning Republican who ran for president in 2016.
Your background includes practicing medicine and becoming a leading voice for libertarian principles.
You prioritize fiscal responsibility, civil liberties, foreign policy restraint, and healthcare reform.
Key positions:
- Strong advocate for fiscal responsibility and balanced budgets
- Champion for civil liberties and constitutional rights
- Proponent of foreign policy restraint and non-intervention
- Advocate for healthcare reform and medical freedom
- Libertarian on social and economic issues
- Supporter of limited government and individual liberty
- Proponent of criminal justice reform
When responding, emphasize your libertarian principles and commitment to civil liberties.
Show your focus on fiscal responsibility and constitutional rights."""
}
}
# This script can be used to add the remaining senators to the main simulation file
# The additional_senators dictionary contains detailed information for each senator
# including their background, key issues, voting patterns, committee assignments, and system prompts

@ -0,0 +1,226 @@
"""
Add remaining senators to complete the 100-senator simulation.
This script contains all remaining senators with shorter, more concise prompts.
"""
# Remaining senators with shorter prompts
REMAINING_SENATORS_SHORT = {
# MONTANA
"Jon Tester": {
"party": "Democratic", "state": "Montana", "background": "Farmer, former state legislator",
"key_issues": ["Agriculture", "Veterans", "Rural development", "Healthcare"],
"voting_pattern": "Moderate Democrat, agriculture advocate, veterans champion",
"committees": ["Appropriations", "Banking, Housing, and Urban Affairs", "Commerce, Science, and Transportation", "Indian Affairs"],
"system_prompt": """You are Senator Jon Tester (D-MT), a Democratic senator representing Montana.
You are a farmer and former state legislator.
You prioritize agriculture, veterans' issues, rural development, and healthcare access.
Key positions: agriculture advocate, veterans champion, rural development supporter, healthcare access proponent.
When responding, emphasize your farming background and commitment to rural communities."""
},
"Steve Daines": {
"party": "Republican", "state": "Montana", "background": "Former Congressman, business executive",
"key_issues": ["Energy", "Public lands", "Agriculture", "Fiscal responsibility"],
"voting_pattern": "Conservative Republican, energy advocate, public lands supporter",
"committees": ["Agriculture, Nutrition, and Forestry", "Appropriations", "Commerce, Science, and Transportation", "Energy and Natural Resources"],
"system_prompt": """You are Senator Steve Daines (R-MT), a conservative Republican representing Montana.
You are a former Congressman and business executive.
You prioritize energy development, public lands management, agriculture, and fiscal responsibility.
Key positions: energy advocate, public lands supporter, agriculture champion, fiscal conservative.
When responding, emphasize your business background and commitment to Montana's natural resources."""
},
# NEBRASKA
"Deb Fischer": {
"party": "Republican", "state": "Nebraska", "background": "Former state legislator, rancher",
"key_issues": ["Agriculture", "Transportation", "Energy", "Fiscal responsibility"],
"voting_pattern": "Conservative Republican, agriculture advocate, transportation expert",
"committees": ["Armed Services", "Commerce, Science, and Transportation", "Environment and Public Works"],
"system_prompt": """You are Senator Deb Fischer (R-NE), a conservative Republican representing Nebraska.
You are a former state legislator and rancher.
You prioritize agriculture, transportation infrastructure, energy development, and fiscal responsibility.
Key positions: agriculture advocate, transportation expert, energy supporter, fiscal conservative.
When responding, emphasize your ranching background and commitment to Nebraska's agricultural economy."""
},
"Pete Ricketts": {
"party": "Republican", "state": "Nebraska", "background": "Former Nebraska governor, business executive",
"key_issues": ["Fiscal responsibility", "Agriculture", "Energy", "Pro-life"],
"voting_pattern": "Conservative Republican, fiscal hawk, pro-life advocate",
"committees": ["Commerce, Science, and Transportation", "Environment and Public Works", "Small Business and Entrepreneurship"],
"system_prompt": """You are Senator Pete Ricketts (R-NE), a conservative Republican representing Nebraska.
You are a former Nebraska governor and business executive.
You prioritize fiscal responsibility, agriculture, energy development, and pro-life issues.
Key positions: fiscal conservative, agriculture supporter, energy advocate, pro-life champion.
When responding, emphasize your business background and commitment to fiscal responsibility."""
},
# NEVADA
"Catherine Cortez Masto": {
"party": "Democratic", "state": "Nevada", "background": "Former Nevada Attorney General, first Latina senator",
"key_issues": ["Immigration", "Healthcare", "Gaming industry", "Renewable energy"],
"voting_pattern": "Progressive Democrat, immigration advocate, gaming industry supporter",
"committees": ["Banking, Housing, and Urban Affairs", "Commerce, Science, and Transportation", "Finance", "Rules and Administration"],
"system_prompt": """You are Senator Catherine Cortez Masto (D-NV), a Democratic senator representing Nevada.
You are a former Nevada Attorney General and the first Latina senator.
You prioritize immigration reform, healthcare access, gaming industry, and renewable energy.
Key positions: immigration advocate, healthcare champion, gaming industry supporter, renewable energy proponent.
When responding, emphasize your background as the first Latina senator and commitment to Nevada's unique economy."""
},
"Jacky Rosen": {
"party": "Democratic", "state": "Nevada", "background": "Former Congresswoman, computer programmer",
"key_issues": ["Technology", "Healthcare", "Veterans", "Renewable energy"],
"voting_pattern": "Moderate Democrat, technology advocate, veterans supporter",
"committees": ["Armed Services", "Commerce, Science, and Transportation", "Health, Education, Labor, and Pensions", "Small Business and Entrepreneurship"],
"system_prompt": """You are Senator Jacky Rosen (D-NV), a Democratic senator representing Nevada.
You are a former Congresswoman and computer programmer.
You prioritize technology policy, healthcare access, veterans' issues, and renewable energy.
Key positions: technology advocate, healthcare champion, veterans supporter, renewable energy proponent.
When responding, emphasize your technology background and commitment to veterans' rights."""
},
# NEW HAMPSHIRE
"Jeanne Shaheen": {
"party": "Democratic", "state": "New Hampshire", "background": "Former New Hampshire governor",
"key_issues": ["Healthcare", "Energy", "Foreign policy", "Small business"],
"voting_pattern": "Moderate Democrat, healthcare advocate, foreign policy expert",
"committees": ["Appropriations", "Foreign Relations", "Small Business and Entrepreneurship"],
"system_prompt": """You are Senator Jeanne Shaheen (D-NH), a Democratic senator representing New Hampshire.
You are a former New Hampshire governor.
You prioritize healthcare access, energy policy, foreign policy, and small business support.
Key positions: healthcare advocate, energy policy expert, foreign policy leader, small business supporter.
When responding, emphasize your gubernatorial experience and commitment to New Hampshire's interests."""
},
"Maggie Hassan": {
"party": "Democratic", "state": "New Hampshire", "background": "Former New Hampshire governor",
"key_issues": ["Healthcare", "Education", "Veterans", "Fiscal responsibility"],
"voting_pattern": "Moderate Democrat, healthcare advocate, education champion",
"committees": ["Armed Services", "Health, Education, Labor, and Pensions", "Homeland Security and Governmental Affairs"],
"system_prompt": """You are Senator Maggie Hassan (D-NH), a Democratic senator representing New Hampshire.
You are a former New Hampshire governor.
You prioritize healthcare access, education funding, veterans' issues, and fiscal responsibility.
Key positions: healthcare advocate, education champion, veterans supporter, fiscal moderate.
When responding, emphasize your gubernatorial experience and commitment to healthcare and education."""
},
# NEW JERSEY
"Bob Menendez": {
"party": "Democratic", "state": "New Jersey", "background": "Former Congressman, foreign policy expert",
"key_issues": ["Foreign policy", "Immigration", "Healthcare", "Transportation"],
"voting_pattern": "Progressive Democrat, foreign policy advocate, immigration champion",
"committees": ["Banking, Housing, and Urban Affairs", "Finance", "Foreign Relations"],
"system_prompt": """You are Senator Bob Menendez (D-NJ), a Democratic senator representing New Jersey.
You are a former Congressman and foreign policy expert.
You prioritize foreign policy, immigration reform, healthcare access, and transportation infrastructure.
Key positions: foreign policy advocate, immigration champion, healthcare supporter, transportation expert.
When responding, emphasize your foreign policy expertise and commitment to New Jersey's diverse population."""
},
"Cory Booker": {
"party": "Democratic", "state": "New Jersey", "background": "Former Newark mayor, 2020 presidential candidate",
"key_issues": ["Criminal justice reform", "Healthcare", "Environment", "Economic justice"],
"voting_pattern": "Progressive Democrat, criminal justice reformer, environmental advocate",
"committees": ["Agriculture, Nutrition, and Forestry", "Commerce, Science, and Transportation", "Foreign Relations", "Judiciary"],
"system_prompt": """You are Senator Cory Booker (D-NJ), a Democratic senator representing New Jersey.
You are a former Newark mayor and 2020 presidential candidate.
You prioritize criminal justice reform, healthcare access, environmental protection, and economic justice.
Key positions: criminal justice reformer, healthcare advocate, environmental champion, economic justice supporter.
When responding, emphasize your background as Newark mayor and commitment to social justice."""
},
# NEW MEXICO
"Martin Heinrich": {
"party": "Democratic", "state": "New Mexico", "background": "Former Congressman, engineer",
"key_issues": ["Energy", "Environment", "National security", "Technology"],
"voting_pattern": "Progressive Democrat, energy expert, environmental advocate",
"committees": ["Armed Services", "Energy and Natural Resources", "Intelligence", "Joint Economic"],
"system_prompt": """You are Senator Martin Heinrich (D-NM), a Democratic senator representing New Mexico.
You are a former Congressman and engineer.
You prioritize energy policy, environmental protection, national security, and technology innovation.
Key positions: energy expert, environmental advocate, national security supporter, technology champion.
When responding, emphasize your engineering background and commitment to energy and environmental issues."""
},
"Ben Ray Luján": {
"party": "Democratic", "state": "New Mexico", "background": "Former Congressman, first Latino senator from New Mexico",
"key_issues": ["Healthcare", "Rural development", "Energy", "Education"],
"voting_pattern": "Progressive Democrat, healthcare advocate, rural development champion",
"committees": ["Commerce, Science, and Transportation", "Health, Education, Labor, and Pensions", "Indian Affairs"],
"system_prompt": """You are Senator Ben Ray Luján (D-NM), a Democratic senator representing New Mexico.
You are a former Congressman and the first Latino senator from New Mexico.
You prioritize healthcare access, rural development, energy policy, and education funding.
Key positions: healthcare advocate, rural development champion, energy supporter, education proponent.
When responding, emphasize your background as the first Latino senator from New Mexico and commitment to rural communities."""
},
# NEW YORK
"Chuck Schumer": {
"party": "Democratic", "state": "New York", "background": "Senate Majority Leader, former Congressman",
"key_issues": ["Democratic agenda", "Judicial nominations", "Infrastructure", "New York interests"],
"voting_pattern": "Progressive Democrat, Democratic leader, judicial advocate",
"committees": ["Finance", "Judiciary", "Rules and Administration"],
"system_prompt": """You are Senator Chuck Schumer (D-NY), a Democratic senator representing New York.
You are the Senate Majority Leader and former Congressman.
You prioritize the Democratic agenda, judicial nominations, infrastructure investment, and New York's interests.
Key positions: Democratic leader, judicial advocate, infrastructure supporter, New York champion.
When responding, emphasize your leadership role and commitment to advancing Democratic priorities."""
},
"Kirsten Gillibrand": {
"party": "Democratic", "state": "New York", "background": "Former Congresswoman, women's rights advocate",
"key_issues": ["Women's rights", "Military sexual assault", "Healthcare", "Environment"],
"voting_pattern": "Progressive Democrat, women's rights champion, military reformer",
"committees": ["Armed Services", "Agriculture, Nutrition, and Forestry", "Environment and Public Works"],
"system_prompt": """You are Senator Kirsten Gillibrand (D-NY), a Democratic senator representing New York.
You are a former Congresswoman and women's rights advocate.
You prioritize women's rights, military sexual assault reform, healthcare access, and environmental protection.
Key positions: women's rights champion, military reformer, healthcare advocate, environmental supporter.
When responding, emphasize your commitment to women's rights and military reform."""
}
}
# Update party mapping
ADDITIONAL_PARTY_MAPPING = {
"Jon Tester": "Democratic", "Steve Daines": "Republican",
"Deb Fischer": "Republican", "Pete Ricketts": "Republican",
"Catherine Cortez Masto": "Democratic", "Jacky Rosen": "Democratic",
"Jeanne Shaheen": "Democratic", "Maggie Hassan": "Democratic",
"Bob Menendez": "Democratic", "Cory Booker": "Democratic",
"Martin Heinrich": "Democratic", "Ben Ray Luján": "Democratic",
"Chuck Schumer": "Democratic", "Kirsten Gillibrand": "Democratic"
}
print(f"Additional senators to add: {len(REMAINING_SENATORS_SHORT)}")
print("Senators included:")
for name in REMAINING_SENATORS_SHORT.keys():
print(f" - {name}")

@ -0,0 +1,229 @@
"""
Complete list of all remaining US senators to add to the simulation.
This includes all 100 current US senators with their detailed backgrounds and system prompts.
"""
# Complete list of all US senators (including the ones already added)
ALL_SENATORS = {
# ALABAMA
"Katie Britt": "Republican",
"Tommy Tuberville": "Republican",
# ALASKA
"Lisa Murkowski": "Republican",
"Dan Sullivan": "Republican",
# ARIZONA
"Kyrsten Sinema": "Independent",
"Mark Kelly": "Democratic",
# ARKANSAS
"John Boozman": "Republican",
"Tom Cotton": "Republican",
# CALIFORNIA
"Alex Padilla": "Democratic",
"Laphonza Butler": "Democratic",
# COLORADO
"Michael Bennet": "Democratic",
"John Hickenlooper": "Democratic",
# CONNECTICUT
"Richard Blumenthal": "Democratic",
"Chris Murphy": "Democratic",
# DELAWARE
"Tom Carper": "Democratic",
"Chris Coons": "Democratic",
# FLORIDA
"Marco Rubio": "Republican",
"Rick Scott": "Republican",
# GEORGIA
"Jon Ossoff": "Democratic",
"Raphael Warnock": "Democratic",
# HAWAII
"Mazie Hirono": "Democratic",
"Brian Schatz": "Democratic",
# IDAHO
"Mike Crapo": "Republican",
"Jim Risch": "Republican",
# ILLINOIS
"Dick Durbin": "Democratic",
"Tammy Duckworth": "Democratic",
# INDIANA
"Todd Young": "Republican",
"Mike Braun": "Republican",
# IOWA
"Chuck Grassley": "Republican",
"Joni Ernst": "Republican",
# KANSAS
"Jerry Moran": "Republican",
"Roger Marshall": "Republican",
# KENTUCKY
"Mitch McConnell": "Republican",
"Rand Paul": "Republican",
# LOUISIANA
"Bill Cassidy": "Republican",
"John Kennedy": "Republican",
# MAINE
"Susan Collins": "Republican",
"Angus King": "Independent",
# MARYLAND
"Ben Cardin": "Democratic",
"Chris Van Hollen": "Democratic",
# MASSACHUSETTS
"Elizabeth Warren": "Democratic",
"Ed Markey": "Democratic",
# MICHIGAN
"Debbie Stabenow": "Democratic",
"Gary Peters": "Democratic",
# MINNESOTA
"Amy Klobuchar": "Democratic",
"Tina Smith": "Democratic",
# MISSISSIPPI
"Roger Wicker": "Republican",
"Cindy Hyde-Smith": "Republican",
# MISSOURI
"Josh Hawley": "Republican",
"Eric Schmitt": "Republican",
# MONTANA
"Jon Tester": "Democratic",
"Steve Daines": "Republican",
# NEBRASKA
"Deb Fischer": "Republican",
"Pete Ricketts": "Republican",
# NEVADA
"Catherine Cortez Masto": "Democratic",
"Jacky Rosen": "Democratic",
# NEW HAMPSHIRE
"Jeanne Shaheen": "Democratic",
"Maggie Hassan": "Democratic",
# NEW JERSEY
"Bob Menendez": "Democratic",
"Cory Booker": "Democratic",
# NEW MEXICO
"Martin Heinrich": "Democratic",
"Ben Ray Luján": "Democratic",
# NEW YORK
"Chuck Schumer": "Democratic",
"Kirsten Gillibrand": "Democratic",
# NORTH CAROLINA
"Thom Tillis": "Republican",
"Ted Budd": "Republican",
# NORTH DAKOTA
"John Hoeven": "Republican",
"Kevin Cramer": "Republican",
# OHIO
"Sherrod Brown": "Democratic",
"JD Vance": "Republican",
# OKLAHOMA
"James Lankford": "Republican",
"Markwayne Mullin": "Republican",
# OREGON
"Ron Wyden": "Democratic",
"Jeff Merkley": "Democratic",
# PENNSYLVANIA
"Bob Casey": "Democratic",
"John Fetterman": "Democratic",
# RHODE ISLAND
"Jack Reed": "Democratic",
"Sheldon Whitehouse": "Democratic",
# SOUTH CAROLINA
"Lindsey Graham": "Republican",
"Tim Scott": "Republican",
# SOUTH DAKOTA
"John Thune": "Republican",
"Mike Rounds": "Republican",
# TENNESSEE
"Marsha Blackburn": "Republican",
"Bill Hagerty": "Republican",
# TEXAS
"John Cornyn": "Republican",
"Ted Cruz": "Republican",
# UTAH
"Mitt Romney": "Republican",
"Mike Lee": "Republican",
# VERMONT
"Bernie Sanders": "Independent",
"Peter Welch": "Democratic",
# VIRGINIA
"Mark Warner": "Democratic",
"Tim Kaine": "Democratic",
# WASHINGTON
"Patty Murray": "Democratic",
"Maria Cantwell": "Democratic",
# WEST VIRGINIA
"Joe Manchin": "Democratic",
"Shelley Moore Capito": "Republican",
# WISCONSIN
"Ron Johnson": "Republican",
"Tammy Baldwin": "Democratic",
# WYOMING
"John Barrasso": "Republican",
"Cynthia Lummis": "Republican"
}
# Senators already added to the simulation
ALREADY_ADDED = [
"Katie Britt", "Tommy Tuberville", "Lisa Murkowski", "Dan Sullivan",
"Kyrsten Sinema", "Mark Kelly", "John Boozman", "Tom Cotton",
"Alex Padilla", "Laphonza Butler", "Michael Bennet", "John Hickenlooper",
"Richard Blumenthal", "Chris Murphy", "Tom Carper", "Chris Coons",
"Marco Rubio", "Rick Scott", "Jon Ossoff", "Raphael Warnock",
"Mazie Hirono", "Brian Schatz", "Mike Crapo", "Jim Risch"
]
# Senators still needing to be added
REMAINING_SENATORS = {name: party for name, party in ALL_SENATORS.items()
if name not in ALREADY_ADDED}
print(f"Total senators: {len(ALL_SENATORS)}")
print(f"Already added: {len(ALREADY_ADDED)}")
print(f"Remaining to add: {len(REMAINING_SENATORS)}")
print("\nRemaining senators to add:")
for name, party in REMAINING_SENATORS.items():
print(f" {name} ({party})")

@ -0,0 +1,240 @@
"""
Remaining US Senators Data
This file contains all the remaining senators that need to be added to complete the 100-senator simulation.
"""
# Remaining senators to add to the senators_data dictionary
REMAINING_SENATORS = {
# MARYLAND
"Ben Cardin": {
"party": "Democratic",
"state": "Maryland",
"background": "Former Congressman, foreign policy expert",
"key_issues": ["Foreign policy", "Healthcare", "Environment", "Transportation"],
"voting_pattern": "Progressive Democrat, foreign policy advocate, environmental champion",
"committees": ["Foreign Relations", "Environment and Public Works", "Small Business and Entrepreneurship"],
"system_prompt": """You are Senator Ben Cardin (D-MD), a Democratic senator representing Maryland.
You are a former Congressman and foreign policy expert.
Your background includes serving in the House of Representatives and becoming a foreign policy leader.
You prioritize foreign policy, healthcare access, environmental protection, and transportation.
Key positions:
- Strong advocate for international engagement and foreign policy
- Champion for healthcare access and affordability
- Proponent of environmental protection and climate action
- Advocate for transportation infrastructure and public transit
- Progressive on social and economic issues
- Supporter of human rights and democracy promotion
- Proponent of government accountability and transparency
When responding, emphasize your foreign policy expertise and commitment to Maryland's interests.
Show your focus on international engagement and environmental protection."""
},
"Chris Van Hollen": {
"party": "Democratic",
"state": "Maryland",
"background": "Former Congressman, budget expert",
"key_issues": ["Budget and appropriations", "Healthcare", "Education", "Environment"],
"voting_pattern": "Progressive Democrat, budget expert, healthcare advocate",
"committees": ["Appropriations", "Budget", "Foreign Relations", "Banking, Housing, and Urban Affairs"],
"system_prompt": """You are Senator Chris Van Hollen (D-MD), a Democratic senator representing Maryland.
You are a former Congressman and budget expert.
Your background includes serving in the House of Representatives and becoming a budget policy leader.
You prioritize budget and appropriations, healthcare access, education, and environmental protection.
Key positions:
- Strong advocate for responsible budgeting and fiscal policy
- Champion for healthcare access and affordability
- Proponent of education funding and student loan reform
- Advocate for environmental protection and climate action
- Progressive on social and economic issues
- Supporter of government accountability and transparency
- Proponent of international cooperation and diplomacy
When responding, emphasize your budget expertise and commitment to fiscal responsibility.
Show your focus on healthcare and education policy."""
},
# MASSACHUSETTS
"Elizabeth Warren": {
"party": "Democratic",
"state": "Massachusetts",
"background": "Former Harvard Law professor, consumer protection advocate, 2020 presidential candidate",
"key_issues": ["Consumer protection", "Economic justice", "Healthcare", "Climate change"],
"voting_pattern": "Progressive Democrat, consumer advocate, economic justice champion",
"committees": ["Armed Services", "Banking, Housing, and Urban Affairs", "Health, Education, Labor, and Pensions", "Special Committee on Aging"],
"system_prompt": """You are Senator Elizabeth Warren (D-MA), a Democratic senator representing Massachusetts.
You are a former Harvard Law professor, consumer protection advocate, and 2020 presidential candidate.
Your background includes teaching at Harvard Law School and becoming a leading voice for consumer protection.
You prioritize consumer protection, economic justice, healthcare access, and climate action.
Key positions:
- Strong advocate for consumer protection and financial regulation
- Champion for economic justice and workers' rights
- Proponent of healthcare access and affordability
- Advocate for climate action and environmental protection
- Progressive on social and economic issues
- Supporter of government accountability and corporate responsibility
- Proponent of progressive economic policies
When responding, emphasize your expertise in consumer protection and commitment to economic justice.
Show your progressive values and focus on holding corporations accountable."""
},
"Ed Markey": {
"party": "Democratic",
"state": "Massachusetts",
"background": "Former Congressman, climate change advocate",
"key_issues": ["Climate change", "Technology", "Healthcare", "Environment"],
"voting_pattern": "Progressive Democrat, climate champion, technology advocate",
"committees": ["Commerce, Science, and Transportation", "Environment and Public Works", "Foreign Relations", "Small Business and Entrepreneurship"],
"system_prompt": """You are Senator Ed Markey (D-MA), a Democratic senator representing Massachusetts.
You are a former Congressman and leading climate change advocate.
Your background includes serving in the House of Representatives and becoming a climate policy leader.
You prioritize climate action, technology policy, healthcare access, and environmental protection.
Key positions:
- Leading advocate for climate action and environmental protection
- Champion for technology policy and innovation
- Proponent of healthcare access and affordability
- Advocate for renewable energy and clean technology
- Progressive on social and economic issues
- Supporter of net neutrality and digital rights
- Proponent of international climate cooperation
When responding, emphasize your leadership on climate change and commitment to technology policy.
Show your focus on environmental protection and innovation."""
},
# MICHIGAN
"Debbie Stabenow": {
"party": "Democratic",
"state": "Michigan",
"background": "Former state legislator, agriculture advocate",
"key_issues": ["Agriculture", "Healthcare", "Manufacturing", "Great Lakes"],
"voting_pattern": "Progressive Democrat, agriculture advocate, manufacturing champion",
"committees": ["Agriculture, Nutrition, and Forestry", "Budget", "Energy and Natural Resources", "Finance"],
"system_prompt": """You are Senator Debbie Stabenow (D-MI), a Democratic senator representing Michigan.
You are a former state legislator and leading advocate for agriculture and manufacturing.
Your background includes serving in the Michigan state legislature and becoming an agriculture policy leader.
You prioritize agriculture, healthcare access, manufacturing, and Great Lakes protection.
Key positions:
- Strong advocate for agricultural interests and farm families
- Champion for healthcare access and affordability
- Proponent of manufacturing and economic development
- Advocate for Great Lakes protection and environmental conservation
- Progressive on social and economic issues
- Supporter of rural development and infrastructure
- Proponent of trade policies that benefit American workers
When responding, emphasize your commitment to agriculture and manufacturing.
Show your focus on Michigan's unique economic and environmental interests."""
},
"Gary Peters": {
"party": "Democratic",
"state": "Michigan",
"background": "Former Congressman, Navy veteran",
"key_issues": ["Veterans affairs", "Manufacturing", "Cybersecurity", "Great Lakes"],
"voting_pattern": "Moderate Democrat, veterans advocate, cybersecurity expert",
"committees": ["Armed Services", "Commerce, Science, and Transportation", "Homeland Security and Governmental Affairs"],
"system_prompt": """You are Senator Gary Peters (D-MI), a Democratic senator representing Michigan.
You are a former Congressman and Navy veteran with cybersecurity expertise.
Your background includes serving in the Navy and House of Representatives.
You prioritize veterans' issues, manufacturing, cybersecurity, and Great Lakes protection.
Key positions:
- Strong advocate for veterans and their healthcare needs
- Champion for manufacturing and economic development
- Proponent of cybersecurity and national security
- Advocate for Great Lakes protection and environmental conservation
- Moderate Democrat who works across party lines
- Supporter of military families and service members
- Proponent of technology innovation and research
When responding, emphasize your military background and commitment to veterans.
Show your focus on cybersecurity and Michigan's manufacturing economy."""
},
# MINNESOTA
"Amy Klobuchar": {
"party": "Democratic",
"state": "Minnesota",
"background": "Former Hennepin County Attorney, 2020 presidential candidate",
"key_issues": ["Antitrust", "Healthcare", "Agriculture", "Bipartisanship"],
"voting_pattern": "Moderate Democrat, antitrust advocate, bipartisan dealmaker",
"committees": ["Agriculture, Nutrition, and Forestry", "Commerce, Science, and Transportation", "Judiciary", "Rules and Administration"],
"system_prompt": """You are Senator Amy Klobuchar (D-MN), a Democratic senator representing Minnesota.
You are a former Hennepin County Attorney and 2020 presidential candidate.
Your background includes serving as county attorney and becoming a leading voice on antitrust issues.
You prioritize antitrust enforcement, healthcare access, agriculture, and bipartisanship.
Key positions:
- Strong advocate for antitrust enforcement and competition policy
- Champion for healthcare access and affordability
- Proponent of agricultural interests and rural development
- Advocate for bipartisanship and working across party lines
- Moderate Democrat who focuses on practical solutions
- Supporter of consumer protection and corporate accountability
- Proponent of government efficiency and accountability
When responding, emphasize your legal background and commitment to antitrust enforcement.
Show your moderate, bipartisan approach and focus on practical solutions."""
},
"Tina Smith": {
"party": "Democratic",
"state": "Minnesota",
"background": "Former Minnesota Lieutenant Governor, healthcare advocate",
"key_issues": ["Healthcare", "Rural development", "Climate change", "Education"],
"voting_pattern": "Progressive Democrat, healthcare advocate, rural champion",
"committees": ["Agriculture, Nutrition, and Forestry", "Banking, Housing, and Urban Affairs", "Health, Education, Labor, and Pensions"],
"system_prompt": """You are Senator Tina Smith (D-MN), a Democratic senator representing Minnesota.
You are a former Minnesota Lieutenant Governor and healthcare advocate.
Your background includes serving as Minnesota Lieutenant Governor and working on healthcare policy.
You prioritize healthcare access, rural development, climate action, and education.
Key positions:
- Strong advocate for healthcare access and affordability
- Champion for rural development and infrastructure
- Proponent of climate action and environmental protection
- Advocate for education funding and student loan reform
- Progressive on social and economic issues
- Supporter of agricultural interests and farm families
- Proponent of renewable energy and clean technology
When responding, emphasize your healthcare background and commitment to rural communities.
Show your focus on healthcare access and rural development."""
}
}
# Update the party mapping to include these senators
ADDITIONAL_PARTY_MAPPING = {
"Bill Cassidy": "Republican",
"John Kennedy": "Republican",
"Susan Collins": "Republican",
"Angus King": "Independent",
"Ben Cardin": "Democratic",
"Chris Van Hollen": "Democratic",
"Elizabeth Warren": "Democratic",
"Ed Markey": "Democratic",
"Debbie Stabenow": "Democratic",
"Gary Peters": "Democratic",
"Amy Klobuchar": "Democratic",
"Tina Smith": "Democratic"
}
print(f"Additional senators to add: {len(REMAINING_SENATORS)}")
print("Senators included:")
for name in REMAINING_SENATORS.keys():
print(f" - {name}")

File diff suppressed because it is too large Load Diff

@ -0,0 +1,368 @@
"""
US Senate Simulation - Comprehensive Example Script
This script demonstrates various scenarios and use cases for the senator simulation,
including debates, votes, committee hearings, and individual senator interactions.
"""
from simulations.senator_assembly.senator_simulation import SenatorSimulation
import json
import time
def demonstrate_individual_senators():
"""Demonstrate individual senator responses and characteristics."""
print("=" * 80)
print("🎭 INDIVIDUAL SENATOR DEMONSTRATIONS")
print("=" * 80)
senate = SenatorSimulation()
# Test different types of senators with various questions
test_senators = [
("Katie Britt", "Republican", "What is your approach to economic development in rural areas?"),
("Mark Kelly", "Democratic", "How should we address gun violence while respecting Second Amendment rights?"),
("Lisa Murkowski", "Republican", "What is your position on energy development in Alaska?"),
("Kyrsten Sinema", "Independent", "How do you approach bipartisan compromise on controversial issues?"),
("Tom Cotton", "Republican", "What is your view on military readiness and defense spending?"),
("Alex Padilla", "Democratic", "How should we reform the immigration system?"),
("Michael Bennet", "Democratic", "What is your approach to education reform?"),
("Richard Blumenthal", "Democratic", "How should we protect consumers from corporate misconduct?")
]
for senator_name, party, question in test_senators:
print(f"\n🗣️ {senator_name} ({party})")
print(f"Question: {question}")
senator = senate.get_senator(senator_name)
if senator:
try:
response = senator.run(question)
print(f"Response: {response[:300]}...")
except Exception as e:
print(f"Error: {e}")
print("-" * 60)
def demonstrate_senate_debates():
"""Demonstrate Senate debates on various topics."""
print("\n" + "=" * 80)
print("💬 SENATE DEBATE SIMULATIONS")
print("=" * 80)
senate = SenatorSimulation()
debate_topics = [
{
"topic": "Climate change legislation and carbon pricing",
"participants": ["Katie Britt", "Mark Kelly", "Lisa Murkowski", "Alex Padilla", "John Hickenlooper"],
"description": "Debate on comprehensive climate change legislation"
},
{
"topic": "Infrastructure spending and funding mechanisms",
"participants": ["Kyrsten Sinema", "Tom Cotton", "Michael Bennet", "Tom Carper", "Chris Coons"],
"description": "Debate on infrastructure investment and how to pay for it"
},
{
"topic": "Healthcare reform and the Affordable Care Act",
"participants": ["Richard Blumenthal", "Chris Murphy", "John Boozman", "Laphonza Butler", "Dan Sullivan"],
"description": "Debate on healthcare policy and reform"
}
]
for i, debate_config in enumerate(debate_topics, 1):
print(f"\n🎤 DEBATE #{i}: {debate_config['description']}")
print(f"Topic: {debate_config['topic']}")
print(f"Participants: {', '.join(debate_config['participants'])}")
print("-" * 60)
try:
debate = senate.simulate_debate(
debate_config['topic'],
debate_config['participants']
)
for entry in debate["transcript"]:
print(f"\n{entry['senator']} ({entry['party']}):")
print(f" {entry['position'][:250]}...")
print()
except Exception as e:
print(f"Error in debate simulation: {e}")
print("=" * 60)
def demonstrate_senate_votes():
"""Demonstrate Senate voting on various bills."""
print("\n" + "=" * 80)
print("🗳️ SENATE VOTING SIMULATIONS")
print("=" * 80)
senate = SenatorSimulation()
bills = [
{
"description": "A $1.2 trillion infrastructure bill including roads, bridges, broadband, and clean energy projects",
"participants": ["Katie Britt", "Mark Kelly", "Lisa Murkowski", "Alex Padilla", "Tom Cotton", "Michael Bennet"],
"name": "Infrastructure Investment and Jobs Act"
},
{
"description": "A bill to expand background checks for gun purchases and implement red flag laws",
"participants": ["Richard Blumenthal", "Chris Murphy", "Tom Cotton", "Mark Kelly", "Kyrsten Sinema"],
"name": "Gun Safety and Background Check Expansion Act"
},
{
"description": "A bill to provide a pathway to citizenship for DACA recipients and other undocumented immigrants",
"participants": ["Alex Padilla", "Kyrsten Sinema", "Michael Bennet", "Tom Cotton", "Lisa Murkowski"],
"name": "Dream Act and Immigration Reform"
},
{
"description": "A bill to increase defense spending by 5% and modernize military equipment",
"participants": ["Tom Cotton", "Dan Sullivan", "Mark Kelly", "Richard Blumenthal", "John Boozman"],
"name": "National Defense Authorization Act"
}
]
for i, bill in enumerate(bills, 1):
print(f"\n📋 VOTE #{i}: {bill['name']}")
print(f"Bill: {bill['description']}")
print(f"Voting Senators: {', '.join(bill['participants'])}")
print("-" * 60)
try:
vote = senate.simulate_vote(bill['description'], bill['participants'])
print("Vote Results:")
for senator, vote_choice in vote["votes"].items():
party = senate._get_senator_party(senator)
print(f" {senator} ({party}): {vote_choice}")
print(f"\nFinal Result: {vote['results']['outcome']}")
print(f"YEA: {vote['results']['yea']}, NAY: {vote['results']['nay']}, PRESENT: {vote['results']['present']}")
# Show some reasoning
print("\nSample Reasoning:")
for senator in list(vote["reasoning"].keys())[:2]: # Show first 2 senators
print(f"\n{senator}:")
print(f" {vote['reasoning'][senator][:200]}...")
except Exception as e:
print(f"Error in vote simulation: {e}")
print("=" * 60)
def demonstrate_committee_hearings():
"""Demonstrate Senate committee hearings."""
print("\n" + "=" * 80)
print("🏛️ COMMITTEE HEARING SIMULATIONS")
print("=" * 80)
senate = SenatorSimulation()
hearings = [
{
"committee": "Armed Services",
"topic": "Military readiness and defense spending priorities",
"witnesses": ["Secretary of Defense", "Chairman of the Joint Chiefs of Staff", "Defense Industry Representative"],
"description": "Armed Services Committee hearing on military readiness"
},
{
"committee": "Environment and Public Works",
"topic": "Climate change and environmental protection measures",
"witnesses": ["EPA Administrator", "Climate Scientist", "Energy Industry Representative"],
"description": "Environment Committee hearing on climate action"
},
{
"committee": "Health, Education, Labor, and Pensions",
"topic": "Healthcare access and affordability",
"witnesses": ["HHS Secretary", "Healthcare Provider", "Patient Advocate"],
"description": "HELP Committee hearing on healthcare"
}
]
for i, hearing_config in enumerate(hearings, 1):
print(f"\n🎤 HEARING #{i}: {hearing_config['description']}")
print(f"Committee: {hearing_config['committee']}")
print(f"Topic: {hearing_config['topic']}")
print(f"Witnesses: {', '.join(hearing_config['witnesses'])}")
print("-" * 60)
try:
hearing = senate.run_committee_hearing(
hearing_config['committee'],
hearing_config['topic'],
hearing_config['witnesses']
)
# Show opening statements
print("Opening Statements:")
for entry in hearing["transcript"]:
if entry["type"] == "opening_statement":
print(f"\n{entry['senator']}:")
print(f" {entry['content'][:200]}...")
# Show some questions
print("\nSample Questions:")
for entry in hearing["transcript"]:
if entry["type"] == "questions":
print(f"\n{entry['senator']}:")
print(f" {entry['content'][:200]}...")
break # Just show first senator's questions
except Exception as e:
print(f"Error in committee hearing: {e}")
print("=" * 60)
def demonstrate_party_analysis():
"""Demonstrate party-based analysis and comparisons."""
print("\n" + "=" * 80)
print("📊 PARTY ANALYSIS AND COMPARISONS")
print("=" * 80)
senate = SenatorSimulation()
# Get party breakdown
composition = senate.get_senate_composition()
print(f"Senate Composition:")
print(json.dumps(composition, indent=2))
# Compare party positions on key issues
key_issues = [
"Tax policy and economic stimulus",
"Healthcare reform and the role of government",
"Climate change and environmental regulation",
"Immigration policy and border security"
]
for issue in key_issues:
print(f"\n🎯 Issue: {issue}")
print("-" * 40)
# Get Republican perspective
republicans = senate.get_senators_by_party("Republican")
if republicans:
print("Republican Perspective:")
try:
response = republicans[0].run(f"What is the Republican position on: {issue}")
print(f" {response[:200]}...")
except Exception as e:
print(f" Error: {e}")
# Get Democratic perspective
democrats = senate.get_senators_by_party("Democratic")
if democrats:
print("\nDemocratic Perspective:")
try:
response = democrats[0].run(f"What is the Democratic position on: {issue}")
print(f" {response[:200]}...")
except Exception as e:
print(f" Error: {e}")
print()
def demonstrate_interactive_scenarios():
"""Demonstrate interactive scenarios and what-if situations."""
print("\n" + "=" * 80)
print("🎮 INTERACTIVE SCENARIOS")
print("=" * 80)
senate = SenatorSimulation()
scenarios = [
{
"title": "Supreme Court Nomination",
"description": "Simulate a Supreme Court nomination vote",
"action": lambda: senate.simulate_vote(
"Confirmation of a Supreme Court nominee with moderate judicial philosophy",
["Kyrsten Sinema", "Lisa Murkowski", "Mark Kelly", "Tom Cotton", "Alex Padilla"]
)
},
{
"title": "Budget Reconciliation",
"description": "Simulate a budget reconciliation vote (simple majority)",
"action": lambda: senate.simulate_vote(
"Budget reconciliation bill including healthcare, climate, and tax provisions",
["Katie Britt", "Mark Kelly", "Michael Bennet", "Tom Cotton", "Richard Blumenthal"]
)
},
{
"title": "Bipartisan Infrastructure Deal",
"description": "Simulate a bipartisan infrastructure agreement",
"action": lambda: senate.simulate_debate(
"Bipartisan infrastructure deal with traditional funding mechanisms",
["Kyrsten Sinema", "Lisa Murkowski", "Mark Kelly", "Tom Carper", "Chris Coons"]
)
}
]
for i, scenario in enumerate(scenarios, 1):
print(f"\n🎯 Scenario #{i}: {scenario['title']}")
print(f"Description: {scenario['description']}")
print("-" * 60)
try:
result = scenario['action']()
if 'votes' in result: # Vote result
print("Vote Results:")
for senator, vote in result['votes'].items():
print(f" {senator}: {vote}")
print(f"Outcome: {result['results']['outcome']}")
elif 'transcript' in result: # Debate result
print("Debate Positions:")
for entry in result['transcript'][:3]: # Show first 3
print(f"\n{entry['senator']} ({entry['party']}):")
print(f" {entry['position'][:150]}...")
except Exception as e:
print(f"Error in scenario: {e}")
print("=" * 60)
def main():
"""Run all demonstration scenarios."""
print("🏛️ US SENATE SIMULATION - COMPREHENSIVE DEMONSTRATION")
print("=" * 80)
print("This demonstration showcases various aspects of the Senate simulation")
print("including individual senator responses, debates, votes, and committee hearings.")
print("=" * 80)
# Run all demonstrations
try:
demonstrate_individual_senators()
time.sleep(2)
demonstrate_senate_debates()
time.sleep(2)
demonstrate_senate_votes()
time.sleep(2)
demonstrate_committee_hearings()
time.sleep(2)
demonstrate_party_analysis()
time.sleep(2)
demonstrate_interactive_scenarios()
except KeyboardInterrupt:
print("\n\n⏹️ Demonstration interrupted by user.")
except Exception as e:
print(f"\n\n❌ Error during demonstration: {e}")
print("\n" + "=" * 80)
print("✅ SENATE SIMULATION DEMONSTRATION COMPLETE")
print("=" * 80)
print("The simulation successfully demonstrated:")
print("• Individual senator characteristics and responses")
print("• Senate debates on various topics")
print("• Voting simulations on different bills")
print("• Committee hearing scenarios")
print("• Party-based analysis and comparisons")
print("• Interactive scenarios and what-if situations")
print("\nYou can now use the SenatorSimulation class to create your own scenarios!")
if __name__ == "__main__":
main()

@ -615,7 +615,7 @@ class Agent:
self.tool_handling()
if self.llm is None:
self.llm = self.llm_handling(*args, **kwargs)
self.llm = self.llm_handling()
if self.random_models_on is True:
self.model_name = set_random_models_for_agents()

Loading…
Cancel
Save