👋Why We Built This

During the Nous RL Environments Hackathon, we set out to make AI agents interact like real people — not just answer prompts. Most multi-agent systems today lack evolving relationships, emotional nuance, or social memory. They talk, but they don’t relate.

SimuChat changes that. It’s a WhatsApp-style group chat where multiple AI agents (Alice, Bob, Charlie) engage in autonomous conversation — building trust, expressing emotions, remembering history, and earning rewards for insightful social behavior.

Instead of treating each response as isolated, SimuChat lets agents grow through conversation. It’s not just text — it’s interaction with consequences.

🔄How It Works

SimuChat simulates a multi-agent group chat. Users can watch or participate while the agents talk among themselves.

What happens:

🧱 Tech Stack

🧠 Under the Hood

🔧Agent Configuration

Each agent is defined via JSON, including their system prompt, mood, and memory limit:


  "name": "Alice",
  "emoji": "🧠",
  "system_prompt": "You are Alice, a kind and empathetic AI...",
  "core_emotion": "curious",
  "mood": "hopeful",
  "memory_limit": 3,
  "initial_trust": 0.5
}

🧠 Memory System

Agents track the last 3 messages from others and their own recent insights:

self.memory = deque(maxlen=self.memory_limit)

def get_memory_context(self):
    # Returns formatted memory + insights
    ...

🔄 Trust Engine

Agents update trust scores (0.0 to 1.0) based on agreement, content similarity, and social alignment:

if agent2.lower() in content1.lower():
    if agreement_score > disagreement_score:
        trust_change = +0.03 to +0.08
    elif disagreement_score > agreement_score:
        trust_change = -0.03 to -0.08

💬 Insight Detection

The system detects when agents change their mind or have realization moments:

# Detect insight if:
# - "I see now", "I understand", etc. appear
# - Agent shifts from disagreeing to agreeing

🎯Reward Mechanism

Agents earn:

🔁 Auto Conversation Mode

Agents continue chatting in rounds, autonomously, up to a max number of turns:

if auto_mode and current_auto_round < max_auto_rounds:
    st.session_state.is_generating = True
    time.sleep(1)
    st.rerun()

🤖 LLaMA API Integration

messages = [{"role": "system", "content": enhanced_prompt}, ...]
response = call_llama_api(messages, temperature=agent_temperature)

🏁 What Happened at the Hackathon

SimuChat was built during the Nous RL Environments Hackathon. Our demo showcased agents evolving their relationships over time — discussing topics like climate change and AI ethics.

Judges highlighted:

Our project was praised for modularity and potential research impact.

🚀 Why SimuChat Matters

📌 What’s Next

SimuChat shows that AI isn’t just about being smart — it’s about being socially aware.

Demo Video : https://www.loom.com/share/decea568856a4340be0a596129c71693