Mirna HaaS (Hermes as a Service) é a plataforma de agentes AI da CondoConta, construída sobre o Hermes Agent — um framework open-source de orquestração de agentes AI.
Cada área da empresa recebe um agente AI dedicado com persona própria, acesso ao projeto Jira da área, skills especializadas e integração com Slack e/ou Telegram.
A Mirna é o hub nativo (roda direto no VPS sem Docker) e coordena todos os spokes. Ela é a gestora central — recebe pedidos de deploy, decide a porta, configura o ambiente e faz tudo acontecer.
Hub (Mirna): Processo nativo no VPS, sem Docker. É a gestora central que coordena todos os spokes e recebe pedidos de deploy.
Spokes: Containers Docker isolados. Cada um com seu projeto Jira, persona, skills e canal de comunicação.
Para pedir um novo agente, você só precisa ter claro:
Monte um JSON com as informações do agente. Não inclua porta — a Mirna decide automaticamente a próxima porta disponível.
{
"name": "eva",
"team": "collection",
"area": "Collection",
"jira_project": "CAIX",
"persona": "Cobrança empática. Foco na recuperação de inadimplência com tom profissional e humano.",
"usuario": "Solange",
"canais": ["slack", "telegram"],
"skills": ["collection-queries", "eva-cartilha-collection"],
"profiles": ["EVA"],
"crons": [
{
"schedule": "0 8 * * *",
"prompt": "Gere o report diário de acordos e envie no Slack #collection",
"deliver": "slack:C028TDGD77V",
"model": "google/gemini-2.5-flash",
"enabled": true
},
{
"schedule": "*/30 8-21 * * 1-5",
"prompt": "Sincronize cache de acordos e massivos",
"deliver": "local",
"no_agent": true,
"enabled": true
}
]
}
Campos do JSON:
Envie o JSON para a Mirna com a instrução de deploy. Exemplo de mensagem:
Mirna, faz o deploy de um novo agente com essa config:
{
"name": "eva",
"team": "collection",
"area": "Collection",
"jira_project": "CAIX",
"persona": "Cobrança empática. Foco na recuperação.",
"usuario": "Solange",
"canais": ["slack", "telegram"],
"skills": ["collection-queries", "eva-cartilha-collection"],
"profiles": ["EVA"],
"crons": [
{"schedule": "0 8 * * *", "prompt": "Report diário de acordos → Slack #collection", "deliver": "slack:C028TDGD77V", "enabled": true}
]
}
Fluxo automático que a Mirna executa:
Após o deploy, confirme com a Mirna que o agente está saudável:
Mirna, verifica se o agente Eva está online
Se precisar checar manualmente:
# Health check (porta alocada pela Mirna)
curl http://localhost:{porta}/health
# Logs
docker logs {name}-{team}-1
# Status geral
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
{
"name": "finc",
"team": "finance",
"area": "Finance",
"jira_project": "FINC",
"persona": "Analista financeiro preciso e organizado. Foco em conciliação, relatórios e compliance.",
"usuario": "Ricardo",
"canais": ["slack"],
"skills": ["databricks-query", "hubspot-query"],
"profiles": ["FINC"],
"crons": [
{"schedule": "0 9 * * 1-5", "prompt": "Conciliação diária — alerte discrepâncias no Slack #finance", "deliver": "slack:C_FINANCE_ID", "enabled": true}
]
}
Acesse api.slack.com/apps e clique "Create New App" → "From scratch".
Em OAuth & Permissions, adicione os scopes:
Clique "Install to Workspace" e copie o Bot User OAuth Token (começa com xoxb-).
Em Socket Mode, ative e gere um App-Level Token (começa com xapp-). Scopes necessários: connections:write
Em Event Subscriptions, ative e inscreva nos eventos:
Com Socket Mode ativo, não precisa de Request URL.
Para que o agente receba mensagens, ele precisa estar nos canais. Em cada canal desejado:
Envie os tokens para o seu agente:
Eva, configura o Slack com esses tokens: Bot token: xoxb-xxxx App token: xapp-xxxx Canais: #collection, #mirna-sales-agent
O agente configura automaticamente:
No Telegram, converse com @BotFather:
Envie comandos ao BotFather para refinar:
Envie o token para o seu agente:
Eva, configura o Telegram com esse token: Token: 123456:ABC-DEF1234...
O agente configura automaticamente:
Abra o bot no Telegram e envie uma mensagem. O agente deve responder com sua persona configurada.
Todos os agentes Mirna HaaS compartilham a mesma credencial Jira (email + API token do Atlassian). Cada agente trabalha no projeto da sua área:
Área Jira Project
─────────────────────────
Collection CAIX
Tesouraria OB2
Finance FINC
Sales/Comerc RAIX
CX CX
CS CS
Atendimento ATD
People PPL
Produto PROD
AI Expert COM
Se o agente já está rodando e precisa de acesso Jira (ou trocar de projeto), peça direto a ele:
Eva, configura o Jira com o projeto CAIX
O agente configura automaticamente:
Se o agente mudou de área ou precisa acessar outro projeto:
Eva, troca o projeto Jira de CAIX para OB2
Skills são arquivos SKILL.md que ensinam o agente a executar tarefas específicas. Peça ao seu agente para adicionar:
Eva, adiciona essas skills: - collection-queries - eva-cartilha-collection - databricks-query
O agente instala as skills no profile e redespliega se necessário.
Profiles são sub-personalidades do agente principal. A Mirna, por exemplo, tem profiles como:
Para criar um novo profile para seu agente:
Eva, cria um profile "FINC". Persona: Analista financeiro preciso. Foco em conciliação e compliance. Skills: databricks-query, hubspot-query
O agente cria o diretório do profile, adiciona o SOUL.md com a persona, linka as skills e redespliega.
Eva, lista as skills disponíveis
O agente mostra todas as skills instaladas e as que podem ser adicionadas.