Tudo o Que Você Precisa para Orquestrar IA
O EDDI fornece uma plataforma completa e pronta para produção para construir, implantar e gerenciar agentes de IA, sem escrever boilerplate.

Como flui um turno de conversa
Selecione uma etapa para ver o que ela faz, a sua configuração e o que escreve.
Input
O que acontece aqui
Uma mensagem chega do chat, do Slack, da API ou de um cliente MCP. O texto original passa a ser a primeira entrada de um novo passo na Conversation memory. Nenhum task correu ainda, por isso esta etapa mostra o passo de memória e não uma entrada de auditoria.
Valores de exemplo ilustrativos
{
"key": "input",
"value": "What is the weather?"
}Parser
O que acontece aqui
O parser normaliza o texto e procura-o nos dicionários do agente, transformando palavras e frases em expressões semânticas como trigger(current_weather). É uma consulta, não uma chamada a um modelo: o mesmo texto dá sempre as mesmas expressões.
Cada task do pipeline escreve uma entrada: assinada com HMAC, apenas de acréscimo e com verificação de sequência.
Valores de exemplo ilustrativos
{
"words": [
{
"word": "weather",
"expressions": "trigger(current_weather)",
"frequency": 0
}
],
"phrases": [
{
"phrase": "what is the weather",
"expressions": "trigger(current_weather)"
}
]
}{
"id": "0b5e9a0c-6f3d-4b1e-9d57-2c1f8a7e4d10",
"conversationId": "6650f1c2a7b94e0012ab34cd",
"agentId": "support-agent",
"agentVersion": 1,
"userId": "user-4711",
"environment": "production",
"stepIndex": 0,
"taskId": "ai.labs.parser",
"taskType": "expressions",
"taskIndex": 0,
"durationMs": 3,
"input": {
"input": "What is the weather?"
},
"output": {
"expressions": [
"trigger(current_weather)"
]
},
"actions": [],
"cost": 0,
"timestamp": "2026-10-14T09:12:41.208Z",
"hmac": "v4:a3f1c09e5b7d2468a3f1c09e5b7d2468a3f1c09e5b7d2468a3f1c09e5b7d2468",
"agentSignature": "MEUCIQDk3x…9fQ==",
"sequence": 0
}Behavior Rules
O que acontece aqui
As Behavior Rules são condições SE-ENTÃO sobre as expressões e a Conversation memory. Cada regra que corresponde emite ações. O encaminhamento é configuração e não código, por isso a mesma entrada segue sempre o mesmo caminho.
Cada task do pipeline escreve uma entrada: assinada com HMAC, apenas de acréscimo e com verificação de sequência.
Valores de exemplo ilustrativos
{
"behaviorGroups": [
{
"name": "",
"behaviorRules": [
{
"name": "Ask for City",
"actions": [
"ask_for_city"
],
"conditions": [
{
"type": "inputmatcher",
"configs": {
"expressions": "trigger(current_weather)"
},
"conditions": []
}
]
}
]
}
]
}{
"id": "0b5e9a0c-6f3d-4b1e-9d57-2c1f8a7e4d10",
"conversationId": "6650f1c2a7b94e0012ab34cd",
"agentId": "support-agent",
"agentVersion": 1,
"userId": "user-4711",
"environment": "production",
"stepIndex": 0,
"taskId": "ai.labs.behavior",
"taskType": "behavior_rules",
"taskIndex": 1,
"durationMs": 1,
"input": {
"expressions": [
"trigger(current_weather)"
]
},
"output": {
"behavior_rules:success": [
"Ask for City"
]
},
"actions": [
"ask_for_city"
],
"cost": 0,
"timestamp": "2026-10-14T09:12:41.208Z",
"hmac": "v4:a3f1c09e5b7d2468a3f1c09e5b7d2468a3f1c09e5b7d2468a3f1c09e5b7d2468",
"agentSignature": "MEUCIQDk3x…9fQ==",
"sequence": 1
}Tasks
O que acontece aqui
Os tasks escutam ações: uma chamada a um LLM, uma chamada HTTP, uma ferramenta MCP ou uma consulta a uma base de conhecimento. Cada task escreve uma entrada de auditoria assinada com o que leu, o que produziu e os detalhes do modelo e das ferramentas.
Cada task do pipeline escreve uma entrada: assinada com HMAC, apenas de acréscimo e com verificação de sequência.
Valores de exemplo ilustrativos
{
"tasks": [
{
"actions": [
"send_message"
],
"id": "simpleChat",
"type": "anthropic",
"description": "Answers weather questions",
"parameters": {
"apiKey": "${vault:anthropic-key}",
"modelName": "claude-sonnet-5-5",
"systemMessage": "You are a helpful assistant",
"addToOutput": "true"
}
}
]
}{
"id": "0b5e9a0c-6f3d-4b1e-9d57-2c1f8a7e4d10",
"conversationId": "6650f1c2a7b94e0012ab34cd",
"agentId": "support-agent",
"agentVersion": 1,
"userId": "user-4711",
"environment": "production",
"stepIndex": 0,
"taskId": "ai.labs.llm",
"taskType": "langchain",
"taskIndex": 2,
"durationMs": 1840,
"input": {
"input": "What is the weather in Vienna?",
"actions": [
"send_message"
]
},
"output": {
"text": "Vienna: 14 °C, light rain."
},
"llmDetail": {
"modelName": "claude-sonnet-5-5",
"inputTokens": 412,
"outputTokens": 18
},
"toolCalls": {
"name": "get_weather",
"args": {
"city": "Vienna"
},
"result": "14 °C, light rain"
},
"actions": [
"send_message"
],
"cost": 0.0016,
"timestamp": "2026-10-14T09:12:41.208Z",
"hmac": "v4:a3f1c09e5b7d2468a3f1c09e5b7d2468a3f1c09e5b7d2468a3f1c09e5b7d2468",
"agentSignature": "MEUCIQDk3x…9fQ==",
"sequence": 2
}Output
O que acontece aqui
Os modelos de Output transformam as ações emitidas na resposta: texto e quick replies. A resposta é guardada na memória e devolvida ao canal de onde veio a mensagem.
Valores de exemplo ilustrativos
{
"outputSet": [
{
"action": "ask_for_city",
"timesOccurred": 0,
"outputs": [
{
"valueAlternatives": [
{
"type": "text",
"text": "Which city would you like to know the weather of?"
}
]
}
],
"quickReplies": []
}
]
}{
"key": "output",
"value": [
"Which city would you like to know the weather of?"
]
}Tool boundary
O que acontece aqui
Toda a chamada a uma ferramenta, seja qual for a origem, atravessa a mesma fronteira. As chamadas que correspondem a um padrão de toolApprovals ficam em pausa até uma pessoa decidir, e a decisão é escrita no ledger como uma entrada hitl.approval. As credenciais vêm do vault como referências ${vault:keyName}.
Cada task do pipeline escreve uma entrada: assinada com HMAC, apenas de acréscimo e com verificação de sequência.
Valores de exemplo ilustrativos
{
"hitlConfig": {
"toolApprovals": {
"requireApproval": [
"mcp:*",
"delete_*",
"transfer_funds"
],
"exempt": [
"mcp:read_*"
],
"approvalTimeout": "PT30M",
"timeoutPolicy": "AUTO_REJECT",
"pauseReason": "Approval required for {toolNames}"
}
}
}{
"id": "0b5e9a0c-6f3d-4b1e-9d57-2c1f8a7e4d10",
"conversationId": "6650f1c2a7b94e0012ab34cd",
"agentId": "support-agent",
"agentVersion": 1,
"userId": "user-4711",
"environment": "production",
"stepIndex": -1,
"taskId": "hitl.approval",
"taskType": "hitl",
"taskIndex": -1,
"durationMs": 0,
"input": {},
"output": {
"verdict": "APPROVED",
"decidedBy": "slack:U04EXAMPLE",
"automated": false,
"pauseType": "TOOL_CALL",
"toolDecisions": [
{
"callId": "call_01",
"toolName": "transfer_funds",
"verdict": "APPROVED",
"amended": false,
"argsDigest": "sha256:9c1d…e407"
}
]
},
"actions": [],
"cost": 0,
"timestamp": "2026-10-14T09:12:41.208Z",
"hmac": "v4:a3f1c09e5b7d2468a3f1c09e5b7d2468a3f1c09e5b7d2468a3f1c09e5b7d2468",
"agentSignature": "MEUCIQDk3x…9fQ==",
"sequence": 3
}Conversation memory
O que acontece aqui
A Conversation memory guarda cada passo (input, expressions, actions, output) e propriedades com âmbito de passo, conversa ou utilizador (longTerm). O estado da conversa (READY, IN_PROGRESS, ENDED, AWAITING_HUMAN ou ERROR) é guardado com ela.
Valores de exemplo ilustrativos
{
"conversationState": "READY",
"conversationSteps": [
{
"data": [
{
"key": "input",
"value": "What is the weather?"
},
{
"key": "expressions",
"value": [
"trigger(current_weather)"
]
},
{
"key": "actions",
"value": [
"ask_for_city"
]
},
{
"key": "output",
"value": [
"Which city would you like to know the weather of?"
]
}
]
}
],
"conversationProperties": {
"chosenCity": "Vienna"
}
}Plataforma Central
As capacidades essenciais que fazem do EDDI uma plataforma completa de orquestração de IA.
🖥️ EDDI Manager
Uma interface React pronta para produção para construir, implantar e monitorar agentes visualmente, com i18n em 11 idiomas, depuração de chat ao vivo e painéis de auditoria.
⚙️ Config-as-Code
A lógica do agente é configuração JSON, não código compilado. Engenheiros de prompt iteram instantaneamente, sem necessidade de reimplantação.
🔌 Servidor MCP (89 Ferramentas)
Controle completo nativo de IA via Model Context Protocol. Claude Desktop, Cursor e clientes personalizados gerenciam agentes programaticamente.
🔐 Segurança em Primeiro Lugar
Sem eval(), integração com vault, proteção contra path traversal, OIDC/Keycloak, espaços de trabalho por usuário, trilhas de auditoria criptográficas.
✋ Humano no circuito
Pause um turno, controle uma chamada de ferramenta ou exija aprovação de uma fase. Fluxos de aprovação com políticas de tempo limite, cartões do Slack e estado à prova de falhas.
🚀 Desempenho
Runtime empresarial com milhões de threads leves para cargas de trabalho LLM com I/O intensivo.
🤖 Multi-Agente
Descoberta baseada em intenção, conversas gerenciadas e colaboração em grupo com votação, artefatos compartilhados e pessoas como membros.
Capacidades de IA
Recursos avançados de IA que tornam os agentes EDDI mais inteligentes, rápidos e econômicos.
🧠 Memória e Contexto
Memória persistente, consolidação onírica, resumos contínuos e janelamento consciente de tokens. Agentes que lembram.
📚 Conhecimento e RAG
Rastreie um site ou envie arquivos PDF, Word, Excel e PowerPoint para uma base de conhecimento, atualizada de forma agendada. 8 provedores de embedding, 6 armazéns vetoriais. Recuperação de conhecimento empresarial pronta para uso.
📈 Cascata de Modelos
Roteamento multi-modelo otimizado com estratégias de confiança. Implantações publicadas desse padrão relatam custo de inferência de 31 a 58% menor com a mesma qualidade (evidências).
🧭 19 Provedores LLM
Claude, GPT, Gemini, Grok, DeepSeek, Kimi, Qwen, GLM, Mistral, Llama e outros, na nuvem ou locais. O catálogo de modelos mostra em que cada um se destaca e como executá-lo.
⏰ Agendamento e Heartbeats
Gatilhos cron, ativações por heartbeat, ciclos oníricos. Agentes proativos que agem por conta própria.
Ferramentas de Agente Integradas
O EDDI vem com 12 ferramentas prontas para uso que os agentes podem chamar durante as conversas, sem configuração externa.
Config e Portabilidade
Configurações de agentes são portáveis, compostas e prontas para sincronização, mova agentes entre ambientes sem atrito.
📤 Import / Export
Agentes portáveis como arquivos ZIP com limpeza automática de segredos. A importação mescla ou sobrescreve, sem conflitos de versão.
🔄 Agent Sync
Sincronização ao vivo entre instâncias com correspondência estrutural, diff de conteúdo e seleção seletiva de recursos.
📝 Prompt Snippets
Blocos de prompts de sistema reutilizáveis e versionados. Referência como {{snippets.safety_rules}}.
Excelência em Engenharia
📊 Observabilidade
Cada etapa do pipeline registrada com trilhas de auditoria imutáveis, tokens, custo, tempo e chamadas de ferramentas.
🧪 Qualidade de Código
20.000+ testes, verdes em cada merge. Cobertura obrigatória de >90% das instruções e >80% dos branches. Gates de CodeQL, Checkstyle e formatador no CI.
🧩 Preparado para IA
89 ferramentas MCP, uma API compatível com OpenAI, padrões CRUD previsíveis, APIs autodocumentadas. Projetado para agentes de codificação trabalharem.