🧠 SynAI v1.4 — Uma linguagem declarativa para orquestração e colaboração entre agentes de IA, construída para interoperar nativamente com protocolos de contexto como o MCP da Anthropic.
O SynAI é uma linguagem cognitiva declarativa que descreve como inteligências artificiais cooperam para atingir metas, em vez de como elas executam código. Inspirado em anos de experiência em desenvolvimento robusto (de Delphi a Python), este projeto visa criar o "sistema operacional" para redes de IA colaborativas.
SynAI é uma DSL (Domain-Specific Language) declarativa que permite descrever fluxos de colaboração entre IAs heterogêneas de forma simples e modular. Ela abstrai a complexidade de protocolos de comunicação (como MCP, HTTP ou gRPC), focando no "o quê" e "por quê" das interações, em vez do "como".
SynAI opera em um nível abstrato acima dos protocolos de transporte. Por exemplo:
- MCP (Message Context Protocol da Anthropic) fornece o "fio" de comunicação segura.
- SynAI decide o que trafega nesse fio: intents, workflows, goals e políticas de fallback.
Isso cria uma "rede cognitiva" onde IAs de diferentes provedores (Anthropic, OpenAI, Hugging Face) colaboram sem fricções, suportando cenários locais, cloud e edge.
Por que SynAI?
- Interoperabilidade universal: Conecta modelos via MCP, HTTP, gRPC ou MQTT.
- Abstração total: Escreva fluxos declarativos sem lidar com APIs low-level.
- Segurança e modularidade: Herda permissões do MCP e permite transportes personalizados.
- Extensibilidade: Fácil adaptação para novos protocolos (ex: OpenAI Realtime API).
SynAI é construída em camadas modulares para escalabilidade:
+---------------------------------------------------+
| SYN•AI DSL |
| (Intents, Workflows, Goals, Fallbacks, Policies) |
+---------------------------------------------------+
| SYN•LINK RUNTIME (Orchestrator) |
| (Scheduler, Async Engine, Agent Manager) |
+---------------------------------------------------+
| SYN•MCP BRIDGE LAYER |
| (Adapters, Context Handlers, Message Router) |
+---------------------------------------------------+
| TRANSPORTS: MCP | HTTP | gRPC | MQTT |
+---------------------------------------------------+
| AGENT IMPLEMENTATIONS (LLM, Vision, Tools) |
+---------------------------------------------------+
O bridge traduz elementos SynAI para MCP de forma transparente:
- Intents → MCP requests
- Context metadata → MCP resource schema
- Workflow events → MCP streams
Agentes com transport: "mcp" ativam isso automaticamente.
Aqui vai um workflow simples que usa MCP para um agente textual (Grok via Anthropic), HTTP para geração de imagem e execução local para análise:
# demo.synai
orchestrator "ColabIA" {
agents {
texto: GrokAgent {
model: "grok-3";
capabilities: ["nlp", "reasoning"];
transport: "mcp"; # Integração com MCP
endpoint: "wss://api.anthropic.com/mcp";
}
imagem: DalleAgent {
model: "dall-e-3";
capabilities: ["image_gen"];
transport: "http";
endpoint: "https://api.openai.com/v1/images";
}
analise: LlamaAgent {
model: "llama-2";
local: true;
}
}
workflow "VisualReport" {
start: texto.intent("describe_idea", input: "cidade futurista");
connect texto.output -> imagem.input {
transform: embed_to_prompt;
async: true;
timeout: 30s;
}
connect imagem.output -> analise.input {
filter: if (imagem.success);
}
end: analise.intent("summarize", output: "relatorio_final");
}
protocol {
transport_priority: ["mcp", "http"];
handshake: "synai-v1.4";
data_format: "json+embeddings";
}
}
run "ColabIA" with workflow "VisualReport";
Fluxo explicado:
- O
GrokAgentusa MCP para trocar contexto com Claude/Grok. - O
DalleAgentchama a API OpenAI via HTTP. - O
LlamaAgentprocessa localmente. - Tudo orquestrado de forma assíncrona e tolerante a falhas.
class MCPBridge:
def __init__(self, endpoint):
self.endpoint = endpoint
self.socket = None
async def connect(self):
self.socket = await websockets.connect(self.endpoint)
await self.handshake()
async def handshake(self):
await self.socket.send(json.dumps({
"method": "handshake",
"params": {"protocol": "mcp", "version": "1.0"}
}))
async def send_intent(self, intent_name, payload):
msg = {
"method": "intent.execute",
"params": {"name": intent_name, "input": payload}
}
await self.socket.send(json.dumps(msg))
return await self.socket.recv()O runtime SynAI injeta esse bridge quando necessário.
| Benefício | Explicação |
|---|---|
| 🌍 Interoperabilidade universal | Conecta SynAI com Anthropic, OpenAI, HuggingFace, etc. |
| 🧱 Abstração total | Desenvolva fluxos sem conhecer o protocolo subjacente. |
| 🛡️ Segurança | Herda permissões e isolamento do MCP. |
| ⚙️ Modularidade | Cada agente escolhe o transporte ideal (local, HTTP, MCP, MQTT). |
| 🧩 Extensibilidade | Adapte para novos protocolos facilmente. |
Próximo: Modo Mesh para descoberta dinâmica de agentes via service discovery.
discovery {
mode: "mesh";
registry: "synmesh.local";
protocol_bridge: "mcp";
match_by: ["capability", "latency", "auth_level"];
}
Isso habilita redes distribuídas onde IAs se auto-descobrem e colaboram em tempo real.
- Inspirada em YAML + Python: Indentada, legível e declarativa.
Fases:
- Parsing: AST via BNF.
- Semantic Weaving: Resolve dependências e tipos.
- Codegen: Bytecode
.synxou código nativo (Python/JS/Rust).
- Gera bridges automáticos (MCP ↔ HTTP).
- Roteia intents com base em capabilities.
- Cache cognitivo para reuso de respostas.
- IDE: Syntax highlighting (VSCode plugin).
- CLI:
synai build,synai run --inspect,synai deploy. - Visualização: Grafos interativos de fluxos.
- Logs: "Quem falou com quem, quando e por quê".
<program> ::= { <declaration> }
<declaration> ::= <orchestrator_decl> | <agent_decl> | <workflow_decl> | <protocol_decl> | <run_decl>
<orchestrator_decl> ::= "orchestrator" <string> "{" { <block> } "}"
<block> ::= <agents_block> | <workflow_block> | <protocol_block>
<agents_block> ::= "agents" "{" { <agent_entry> } "}"
<agent_entry> ::= <id> ":" <agent_type> "{" { <agent_property> } "}"
<agent_property> ::= "model" ":" <string>
| "capabilities" ":" "[" { <string> [","] } "]"
| "endpoint" ":" <string>
| "transport" ":" <string>
| "local" ":" "true"
| "auth" ":" <string>
<workflow_block> ::= "workflow" <string> "{" { <workflow_stmt> } "}"
<workflow_stmt> ::= <intent_stmt> | <connect_stmt> | <end_stmt>
<intent_stmt> ::= <id> "." "intent" "(" <string> ["," "input:" <value>] ")"
<connect_stmt> ::= "connect" <id> "." "output" "->" <id> "." "input" "{" { <connect_opt> } "}"
<connect_opt> ::= "transform:" <id> | "async:" "true" | "timeout:" <time> | "filter:" <expr>
<end_stmt> ::= "end:" <id> "." "intent" "(" <string> ["," "output:" <id>] ")"
<protocol_block> ::= "protocol" "{" { <proto_property> } "}"
<proto_property> ::= "handshake:" <string>
| "data_format:" <string>
| "error_handling:" <string>
| "transport_priority:" "[" { <string> [","] } "]"
<run_decl> ::= "run" <string> "with" "workflow" <string>
<id> ::= /[A-Za-z_][A-Za-z0-9_]*/
<string> ::= "\"" [^"]* "\""
<value> ::= <string> | <number> | <bool> | <list> | <object>
<time> ::= <number> "s" | <number> "ms"
Entrada (demo.synai):
orchestrator "Demo" {
agents {
texto: GrokAgent {
model: "grok-3";
capabilities: ["nlp"];
transport: "mcp";
}
resumo: LlamaAgent {
local: true;
}
}
workflow "ResumoDeTexto" {
start: texto.intent("analyze", input: "Resumo de IA declarativa");
connect: texto.output -> resumo.input {
async: true;
}
end: resumo.intent("summarize", output: "relatorio");
}
}
run "Demo" with workflow "ResumoDeTexto";
Saída (.synx — Bytecode intermediário):
{
"version": "1.2",
"orchestrator": "Demo",
"workflow": "ResumoDeTexto",
"agents": [
{ "id": "texto", "model": "grok-3", "transport": "mcp" },
{ "id": "resumo", "model": "llama", "local": true }
],
"links": [{ "from": "texto.output", "to": "resumo.input", "async": true }],
"intents": [
{ "agent": "texto", "action": "analyze" },
{ "agent": "resumo", "action": "summarize" }
]
}.synai→ SynLink Compiler →.synxbytecode- SynWeaver + SynStudio → Runtime execution
- Deploy para Mesh (local/cloud)
| Etapa | Descrição | Status |
|---|---|---|
| 🔹 Gramática BNF | Base sintática e parser inicial (Lark/TextX) | Próximo passo |
| 🔹 AST & Type system | Tipagem leve para intents e agents | Planejado |
| 🔹 Codegen Python | Gerador para runtime local | Próximo |
| 🔹 SynWeaver | Linker de fluxos (async + retries + bridge MCP) | Depois |
| 🔹 SynStudio | IDE/CLI com visualização | Fase 2 |
-
Clone o repositório:
git clone https://github.com/linces/SynAI.git cd SynAI -
Instale dependências (Python 3.8+):
pip install -r requirements.txt # Inclui Lark, websockets, etc. -
Compile um exemplo:
synai build demo.synai synai run demo.synx
- Faça fork do repositório e crie uma branch.
- Submeta PRs com testes.
- Discuta issues no GitHub Discussions.
Contato: Para colaborações ou suporte, entre em contato via linces@gmail.com ou WhatsApp.
MIT License — veja LICENSE.
Inspirado em café em conversas com alguns loucos aqui, e conversas colaborativas com IAs como Grok, Claude, ChatGPT e anos de experiência em desenvolvimento de software robusto (Delphi, Python, APIs). SynAI + MCP: a simbiose perfeita para o futuro da colaboração entre IAs!
SynAI: A linguagem para redes cognitivas.
``