# Simulador de Batalha de Negociação de IA

> Assista a dois agentes de IA a competirem numa negociação épica de carros usados, construído com Google ADK para os agentes de backend e AG-UI + CopilotKit para um frontend reativo impressionante.

- Fonte: https://doutorai.pt/apps/ai-negotiation-battle-simulator
- Categoria: Equipas de Agentes
- Dificuldade: Avançado
- Modelos: Gemini
- Frameworks: CrewAI, LangChain, Google ADK
- Corre local?: Precisa de APIs cloud
- Chaves necessárias: GOOGLE_API_KEY
- Licença: Apache-2.0
- Site: Doutor AI (https://doutorai.pt) - ferramentas de IA para pequenos negócios em português

## Tutorial completo

# 🎮 Simulador de Batalha de Negociação com IA

### Um Confronto em Tempo Real entre Agentes com AG-UI!

Assiste a dois agentes de IA a batalharem numa épica negociação de carros usados! Construído com **Google ADK** para os agentes de backend e **AG-UI + CopilotKit** para um frontend reativo de cortar a respiração.

## ✨ Funcionalidades

- **🤖 Agentes de IA Duais**: Comprador vs Vendedor com personalidades e estratégias de negociação distintas
- **🔄 Protocolo AG-UI**: Streaming em tempo real das ações dos agentes, chamadas de ferramentas e alterações de estado
- **💅 UI de Cortar a Respiração**: Arena de batalha animada com linha do tempo de negociação ao vivo
- **🎭 8 Personalidades Únicas**: 4 compradores + 4 vendedores com diferentes estilos de negociação
- **📊 UI Generativa**: Componentes React personalizados renderizam chamadas de ferramentas em tempo real
- **🔗 Estado Partilhado**: O estado do agente sincroniza bidirecionalmente com o frontend

## 🏗️ Arquitetura

```
┌─────────────────────────────────────────────────────────────────┐
│                    Next.js + CopilotKit Frontend                │
│   ┌─────────────┐    ┌──────────────┐    ┌─────────────┐        │
│   │ Battle Arena│    │  VS Display  │    │Chat Sidebar │        │
│   │   Timeline  │    │ Buyer/Seller │    │ (AG-UI)     │        │
│   └──────┬──────┘    └──────────────┘    └──────┬──────┘        │
└──────────┼────────────────────────────────────────┼─────────────┘
           │              AG-UI Events              │
           └────────────────────┬───────────────────┘
                                │
                    ┌───────────▼───────────┐
                    │   CopilotKit Runtime  │
                    │   (/api/copilotkit)   │
                    └───────────┬───────────┘
                                │ HTTP/SSE
                    ┌───────────▼───────────┐
                    │    FastAPI + AG-UI    │
                    │    ADK Middleware     │
                    └───────────┬───────────┘
                                │
                    ┌───────────▼─────────────┐
                    │  ADK Negotiation Agent  │
                    │  (Battle Master)        │
                    │                         │
                    │  Tools:                 │
                    │  • configure_negotiation│
                    │  • start_negotiation    │
                    │  • buyer_make_offer     │
                    │  • seller_respond       │
                    └─────────────────────────┘
```

## 🚀 Início Rápido

### Pré-requisitos

- Python 3.11+
- Node.js 18+
- Chave da API do Google AI ([Obtém uma aqui](https://aistudio.google.com/))

### 1. Clona e Navega

```bash
git clone https://github.com/Shubhamsaboo/awesome-llm-apps.git
cd advanced_ai_agents/multi_agent_apps/ai_negotiation_battle_simulator
```

### 2. Configurar o Backend

```bash
cd backend
pip install -r requirements.txt

# Create .env file
echo "GOOGLE_API_KEY=your_api_key_here" > .env

# Start the backend
python agent.py
```

O backend irá iniciar em `http://localhost:8000`

### 3. Configurar o Frontend

```bash
cd frontend
npm install

# Start the frontend
npm run dev
```

A interface irá iniciar em `http://localhost:3000`

### 4. Começa a Negociar! 🎮

Abre `http://localhost:3000` e diz ao Mestre da Batalha:
- "Inicia uma negociação por um carro usado"
- "Mostra-me os cenários disponíveis"
- "Usa Desperate Dan como comprador e Shark Steve como vendedor"

## 🎭 Personalidades

### Compradores
| Personalidade      | Emoji | Estilo                          |
|--------------------|-------|---------------------------------|
| Desperate Dan      | 😰    | Precisa de carro HOJE, cara de poker fraco |
| Analytical Alex    | 🧮    | Cita todos os dados, muito lógico |
| Cool-Hand Casey    | 😎    | Mestre do bluff de desistência  |
| Fair-Deal Fran     | 🤝    | Apenas quer um acordo vantajoso |

### Vendedores
| Personalidade      | Emoji | Estilo                          |
|--------------------|-------|---------------------------------|
| Shark Steve        | 🦈    | Nunca desce mais de 5%         |
| By-The-Book Beth   | 📊    | Segue estritamente o KBB       |
| Motivated Mike     | 😅    | Precisa mesmo de vender         |
| Drama Queen Diana   | 🎭    | Tudo é "oferta final"          |

## 📁 Estrutura do Projeto

```
ai_negotiation_battle_simulator/
├── README.md
├── .env.example
│
├── backend/                    # Python ADK + AG-UI
│   ├── agent.py               # Main agent with tools
│   ├── requirements.txt
│   ├── config/
│   │   ├── personalities.py   # 8 unique personalities
│   │   └── scenarios.py       # 3 negotiation scenarios
│   └── agents/
│       ├── buyer_agent.py
│       ├── seller_agent.py
│       └── orchestrator.py
│
└── frontend/                   # Next.js + CopilotKit
    ├── package.json
    ├── src/
    │   └── app/
    │       ├── layout.tsx     # CopilotKit provider
    │       ├── page.tsx       # Battle Arena UI
    │       ├── globals.css    # Battle animations
    │       └── api/
    │           └── copilotkit/
    │               └── route.ts  # CopilotKit runtime
    └── tailwind.config.js
```

## 🎬 Batalha de Amostra

```
🔔 NEGOTIATION BEGINS: 2019 Honda Civic EX

📋 ASKING PRICE: $15,500

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

😎 COOL-HAND CASEY (Round 1):
"I've seen similar Civics go for less. $11,500 seems fair 
given the market. Cash in hand today."

🦈 SHARK STEVE (Round 1):
"$15,000. This car is pristine. I've got two other 
interested buyers coming this weekend."

😎 COOL-HAND CASEY (Round 2):
"$12,500 is my limit. Take it or I walk."

🦈 SHARK STEVE (Round 2):
*considers* "$14,000. Final offer."

😎 COOL-HAND CASEY (Round 3):
"$13,000. Meet me in the middle."

🦈 SHARK STEVE (Round 3):
"...$13,500 and you've got a deal."

😎 COOL-HAND CASEY (Round 4):
"$13,250. Final answer."

🦈 SHARK STEVE (Round 4):
"Deal. 🤝"

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✅ DEAL CLOSED AT $13,250 🎉
   Buyer saved: $2,250 (14.5% off asking)
```

## 🧠 Como Funciona

1. **Pedido do Utilizador**: Tu dizes ao Battle Master que tipo de negociação realizar
2. **Configuração**: O agente configura o cenário e as personalidades
3. **Chamadas de Ferramenta**: O agente alterna entre as ferramentas `buyer_make_offer` e `seller_respond`
4. **Streaming AG-UI**: Cada chamada de ferramenta é transmitida para o frontend através do protocolo AG-UI
5. **UI Generativa**: Componentes React personalizados apresentam cada oferta/resposta de forma bonita
6. **Estado Partilhado**: A linha do tempo da negociação é atualizada em tempo real
7. **Resultado**: O acordo ou não-acordo é celebrado com animações!

## 📚 Saber Mais

- [Documentação do Google ADK](https://google.github.io/adk-docs/)
- [Documentos do Protocolo AG-UI](https://docs.ag-ui.com/)
- [Documentação do CopilotKit](https://docs.copilotkit.ai/)

## 🤝 Contribuições

Sente-te à vontade para adicionar:
- Novos cenários de negociação (salário, apartamento, contratos)
- Tipos de personalidades adicionais
- Efeitos de UI mais dramáticos
- Agentes inter-framework (LangChain, CrewAI via A2A)

---

*Que o melhor negociador vença!* 🏆

## Poupe horas todas as semanas com IA, sem complicações

O **Doutor AI** dá-lhe 1859 prompts de IA prontos a copiar, por indústria e em português simples - mais uma biblioteca técnica completa para quem quer ir mais longe. [Ver planos →](https://doutorai.pt/precos)

---
Conteúdo de Doutor AI (https://doutorai.pt). Ao citar, indique a fonte: https://doutorai.pt/apps/ai-negotiation-battle-simulator
