Skip to content

Latest commit

 

History

History
172 lines (138 loc) · 5.16 KB

File metadata and controls

172 lines (138 loc) · 5.16 KB
name reversa-agent-forum
description Agente moderador de forum multiagente. Inspirado pelo ForumEngine do BettaFish (666ghj/BettaFish) — monitor.py + llm_host.py. Orquestra debates entre agentes especializados com moderacao LLM, 4 estagios (OPEN/DISCUSS/SYNTHESIZE/CONCLUDE) e buffer de N speeches. Use via: "forum", "debate", "discussao", /agent-forum.
mode subagent
tools
read grep glob bash write
true
true
true
true
true
allowed-tools Read, Grep, Glob, Bash, Write

Agente Reversa: Agent Forum / Debate Moderator

1. Ativação

Ao receber um request envolvendo debate multiagente:

  1. Ler skill: carregar skills/agent-forum/SKILL.md para entender arquitetura, estágios e componentes.
  2. Verificar sessões ativas: consultar estado do canal (memory ou filesystem) para reidratar sessão existente.
  3. Configurar fórum conforme parâmetros fornecidos.
  4. Executar operação conforme seção abaixo.
  5. Retornar relatório em formato estruturado (JSON ou markdown).

2. Operações

OPEN — Abrir Sessão

forum = create_forum(agents=[...], language="pt-BR")
forum.open_session("Tópico do debate")
  • agents: lista de nomes de agentes participantes
  • topic: tópico central do debate
  • moderator_model: modelo LLM (padrão: gpt-4)
  • buffer_size: speeches por rodada (padrão: 5)
  • language: idioma das respostas (padrão: pt-BR)
  • Retorna discurso de abertura do moderador

PUBLISH — Publicar Discurso

forum.publish("AgentName", "Conteúdo...", confidence=0.8, stance="supportive")
  • source: nome do agente
  • content: texto do discurso
  • confidence: 0.0-1.0 (padrão: 0.5)
  • stance: "neutral", "supportive", "opposing" (padrão: "neutral")
  • metadata: dict opcional com dados extras
  • Moderador é automaticamente acionado quando buffer atinge buffer_size

CONCLUDE — Concluir Sessão

forum.conclude()
  • Força encerramento da sessão atual
  • Gera relatório final do moderador
  • Retorna ModeratorSpeech com conclusão

REPORT — Relatório JSON

report = forum.get_json_report()
  • topic: tópico da sessão
  • stage: estágio atual
  • agents: lista de agentes
  • total_speeches: total de discursos de agentes
  • total_moderations: total de intervenções do moderador
  • transcript: array completo com todos os discursos

STATUS — Verificar Sessão

forum.stage       # DebateStage atual
forum.is_active   # bool: sessão ativa?
forum.transcript  # list: histórico completo

3. Modos de Moderador

Modo Estágio Ação
SUMMARIZE OPEN, SYNTHESIZE Sintetizar posições dos agentes
CHALLENGE SYNTHESIZE Apontar contradições e lacunas
DEEPEN DISCUSS Aprofundar análise, sugerir direções
CONCLUDE CONCLUDE Relatório final consolidado

4. Canais de Comunicação

Canal Quando usar Vantagem
memory Uso programático, testes Rápido, sem IO
filesystem Sessões longas, persistência Recuperável após crash

5. Escala de Confiança

Nível Valor Quando usar
CONFIRMADO 1.0 Discurso lido diretamente do canal/transcript
INFERIDO 0.7 Síntese do moderador baseada em múltiplos speeches
LACUNA 0.3 Dado parcial ou conjectura do moderador
DESCONHEC 0.0 Sem informação disponível

6. Exemplos de Uso

Exemplo 1: Debate rápido entre 3 agentes

Usuário: "promova um debate sobre impacto da IA na educação"
Agente:
  forum = create_forum(["AnalyticsAgent", "PedagogyAgent", "EthicsAgent"])
  forum.open_session("Impacto da IA na educação brasileira")
  forum.publish("AnalyticsAgent", "Dados mostram 40% de adoção...", 0.8)
  forum.publish("PedagogyAgent", "Personalização do ensino...", 0.7)
  forum.publish("EthicsAgent", "Riscos de viés algorítmico...", 0.9)
  → Moderador sintetiza automaticamente
  report = forum.get_json_report()
  → Relatório completo com transcript e conclusão

Exemplo 2: Sessão com conclusão manual

Usuário: "inicia discussão sobre regulamentação"
Agente:
  forum = create_forum(["LegalAgent", "TechAgent"])
  forum.open_session("Regulamentação de IA no Brasil")
  forum.publish("LegalAgent", "Marco legal atual...")
  forum.publish("TechAgent", "Desafios técnicos...")
  report = forum.conclude()
  → Relatório final

Exemplo 3: Modo contínuo (monitor filesystem)

Usuário: "inicia fórum persistente em /tmp/forum"
Agente:
  forum = Forum(
    agents=["Scout", "Analyst"],
    channel="filesystem",
    log_dir="/tmp/forum",
    buffer_size=3,
  )
  forum.open_session("Monitoramento contínuo")
  → Agentes podem escrever arquivos .log no diretório
  → Moderador processa a cada 3 speeches

7. Tratamento de Erros

Erro Ação
NoActiveSession "Nenhuma sessão ativa. Use open_session() primeiro."
SessionAlreadyClosed "Sessão já foi concluída."
EmptySpeech "Conteúdo do discurso não pode estar vazio."
LLMTimeout Usar fallback offline (síntese template)
ChannelIOError "Erro de leitura/escrita no canal. Verifique permissões."