synsema
PT Português

Linguagem de programação · framework para agentes de IA · segura por padrão

Pessoas leem a página.
Agentes leem a fonte.

Uma URL, negociada por conteúdo. Synsema é uma linguagem de programação rápida e segura por padrão para agentes de IA, com o framework de agentes embutido: a mesma rota serve HTML para pessoas e Markdown para modelos. Alterne o painel para ver exatamente o Markdown que um LLM recebe desta página.

Aprenda construindo em try.synsema.com: cursos com um sandbox real, sem instalar nada.

GET synsema.com/pt
200 OK · Content-Type: text/markdown
# Synsema
> Uma linguagem de programação para agentes de IA.

## O que é
- Rápida. 47.200 req/s, à frente de Go e Node.
- Segura por padrão. Sem `require`, sem acesso.
- Nativa para agentes. Uma rota, HTML ou Markdown.

## Instalar
curl -fsSL synsema.com/install.sh | sh
Índice para agentes: /llms.txt

Synsema

Uma linguagem de programação para agentes de IA.

Desempenho
47.200req/s
vs Go (net/http)
+10%
Segura por padrão
Nativa para agentes

↑ o mesmo recurso, duas representações · curl -H "Accept: text/markdown" synsema.com/pt

Rápida · req/s com c=50

47.200req/s

À frente de Go (42.800) e Node (38.700)1. Assíncrona por natureza, multinúcleo de verdade, um binário estático, sem runtime.

Segura por padrão

-- sem require, sem acesso
require net("api.shop.com")
fetch("api.shop.com")  ✓ permitido
fetch("evil.com")      ⊘ recusado

Sem require não há acesso: o interpretador recusa, não uma revisão de código. Autenticação, validação e intenção são declarativas.

Nativa para agentes

Esta página é a demo. Cada rota serve HTML para pessoas e Markdown/JSON para agentes, com /llms.txt, /sitemap.xml e /openapi.json derivados da tabela de rotas.

A documentação expõe um servidor MCP: agentes pesquisam, leem, executam e testam código por um único endpoint.

1 · medido em um VPS Linux, 6 cargas, c=50, mediana das execuções (a primeira descartada). Harness reproduzível: synsema-arena.

O que você constrói com ela

Um framework para agentes de IA e uma linguagem de programação, em um único binário.

Tudo o que um app agêntico precisa está na linguagem, não em um framework colado por cima: chamadas ao LLM, uso de ferramentas, memória, aprovação humana, orquestração multiagente, um servidor de produção e o modelo de segurança. Por isso a mesma linguagem também constrói a API, o site, o cron e a CLI em volta do agente.

Agentes

Agentes de IA e apps com LLM

reason, decide, analyze e generate são primitivas: respostas validadas, novas tentativas, qualquer provedor, a chave selada como segredo.

docs ↗

Orquestração

Sistemas multiagente

Agentes em threads reais, um quadro compartilhado, sinais, um barramento de eventos e memória durável, sem broker de mensagens para operar.

docs ↗

Humano no circuito

Aprovações e portões

approve, confirm e ask esperam por uma pessoa real, no terminal ou enfileirados atrás de links de uso único; sem ninguém, é negado.

docs ↗

Ferramentas

Servidores MCP

Exponha o que um programa faz para Claude Code, Cursor ou Lampson. O servidor MCP da própria documentação é escrito assim.

docs ↗

Backends

APIs REST e CRUD

Rotas, auth e validação declarativas, paginação, SQLite, Postgres, MySQL, Mongo ou Redis, em um arquivo e com o servidor de produção incluído.

docs ↗

Tempo real

Apps agênticos

WebSockets de entrada, processos filhos observados linha a linha, um select sobre tudo, cancelamento e desligamento ordenado.

docs ↗

Web

Sites, SSR

Templates, layouts e componentes; cada página negociada para agentes; /llms.txt, sitemap e OpenAPI de graça. Este site é um deles.

docs ↗

Deploy

HTTPS automático

--tls-auto voce@site.com: certificados e renovações do Let's Encrypt, HTTP/2, www para o apex, um reverse proxy quando precisar.

docs ↗

Apps

Um app: web, celular e desktop

synsema init --desktop: o mesmo app renderizado no servidor instala-se no Android e iOS como PWA com push nativo, e é distribuído como app de desktop — um binário, uma janela de app do navegador, o seu ícone, sem console.

docs ↗

Automação

Cron, webhooks, jobs

Tarefas agendadas e feeds ao vivo por WebSocket; trabalho de longa duração sobre um event loop real, com observabilidade incluída.

docs ↗

Dados

Dados e gráficos

CSV, SQL, estatística, arrays numéricos e gráficos SVG nativos que agentes leem como dados e pessoas como imagens; exportação para PNG e PDF.

docs ↗

Distribuir

Um binário, ou WASM

synsema build sela programa e assets em um executável; o interpretador também roda em navegadores, edge e TEEs.

docs ↗

Um arquivo

O backend inteiro, com as permissões no topo.

Um programa Synsema começa declarando o que pode tocar. Tudo abaixo dessa linha roda dentro dela: as rotas, o banco de dados, os segredos, o modelo. Os dois arquivos abaixo compilam e rodam como estão.

api.synConstruir uma API REST ↗
-- A bookshop API. The `require` lines are the whole permission
-- surface: a port, one database file, one secret. Nothing else.
intent: "public read API; writes need the staff token"

require serve(8080)
require db("./shop.db")
require secret("API_TOKEN")

task check_token(token)
    let want be hmac_sha256("staff", token)
    when verify_hmac("staff", want, secret("API_TOKEN"))
        give {"role": "staff"}
    give nothing

serve on 8080
    auth with check_token
    rate_limit 120 per minute

    route "GET /books"
        give paged("SELECT id, title, price FROM books")

    route "POST /books" requires auth
        expect body {title: text, price: number}
        let b be json of request
        sql_exec("INSERT INTO books (title, price) VALUES (?, ?)",
                 [b.title, b.price])
        give created(b)

    route "GET /about"
        let doc be page([heading(1, "Bookshop"),
                         prose("HTML or Markdown, one route.")],
                        {"title": "Bookshop"})
        give content(doc)
agent.synPrimitivas de LLM ↗
-- An agent that triages support tickets. The model decides;
-- a human approves refunds; the API key is a sealed secret.
intent: "triage open tickets; refunds wait for a human"

require llm
require net("api.example.com")
require secret("SUPPORT_TOKEN")

let api be "https://api.example.com"
let auth be {"Authorization": bearer(secret("SUPPORT_TOKEN"))}
let r be http_get(api + "/tickets?open=1", auth)
let tickets be json_decode(body of r)

each t in tickets
    let msg be t["text"]
    let kind be decide between ["bug", "billing", "other"] given msg
    when kind == "billing"
        let amount be analyze msg for "the amount to refund"
        let who be t["customer"]
        approve "Refund " + text(amount) + " to " + who + "?" within 1h
    otherwise
        let reply be generate "a short, kind answer" given msg
        let url be api + "/tickets/" + t["id"] + "/reply"
        http_post(url, {"text": reply}, auth)
  • require é a superfície de permissões. Uma porta, um arquivo de banco, um segredo. Um fetch para qualquer outro host é recusado pelo interpretador.
  • Auth e validação são declarações. auth with nomeia a task que diz quem é um token; expect body rejeita um payload ruim com um 400 que nomeia o campo.
  • Uma rota, todos os leitores. content() responde HTML aos navegadores e Markdown ou JSON aos agentes; paged() pagina resultados grandes por você.
  • O modelo é uma primitiva. decide devolve uma das opções ou tenta de novo; analyze e generate têm tipo, não são strings de prompt coladas à mão.
  • Uma pessoa também é uma primitiva. approve … within 1h espera alguém de verdade; sem ninguém, nega.
  • Segredos nunca se materializam. A chave viaja selada até o socket; o modelo vê um marcador.

Feito com Synsema

Três coisas que você pode usar hoje.

Agente de programação

Lampson

Um agente de programação com IA, open source, para o seu terminal e navegador, escrito inteiramente em Synsema: ferramentas confinadas ao seu projeto, permissões sob seu controle, subagentes, tarefas agendadas, plugins.

lampson.org ↗

Capacidades para agentes

Lamps

Unidades portáteis de capacidade: um manifesto declara o que o código pode tocar, um runtime faz cumprir e audita cada chamada. lamp add e depois lamp mcp para Claude Code, Cursor ou qualquer agente MCP.

lamps.sh ↗

Aprender

Try Synsema

Aprenda construindo software para negócios reais, no navegador: cursos, missões verificadas em um sandbox real, XP e níveis. Sem instalar nada.

try.synsema.com ↗

Do blog

Benchmarks, decisões de design, guias.

Todos os posts → · RSS