Dukk API
v1 · OpenAPI 3.1 · spec 2.2.0
O servidor Dukk expõe orquestração de sessões de IA, execução isolada em sandbox, ferramentas, mensageria, agentes, busca e telemetria. Atende tanto o aplicativo (JWT do Zitadel) quanto integrações locais por Bearer token. Veja Funcionalidades para o que cada parte faz.
Visão limpa em três colunas, ideal para leitura e consulta de schemas.
try-itExecute requisições direto do navegador com autenticação Bearer.
specArquivo-fonte para gerar SDKs, mocks e clientes em qualquer linguagem.
sdkInstalação, quickstart e status de distribuição de dukk e @dukk/sdk.
Chat, mensagens, eventos em tempo real, permissões, plan mode e questions.
saasContainers por usuário com volumes persistentes e streaming JPEG do navegador.
saasBoards, cards, comentários, stage area de mudanças propostas e SSE de eventos.
saasArquivos gerados pelo agente, extração de uploads e exportação nativa em PDF.
saasCatálogo unificado de skills, rotinas automatizadas (cron) e integrações OAuth.
saasUma mensagem no chat vira um turno completo do agente, com histórico e tools, e a resposta volta pelo mesmo canal. Chats novos ficam pendentes até o dono aprovar.
saasLigue um agente Agno publicado a um canal de mensageria e ele passa a responder ali — como @seu_bot no Telegram/Slack ou pelo número no WhatsApp. Fila, deduplicação, anti-loop e aprovação de chat continuam por conta do canal.
Busca full-text sobre as mensagens das suas conversas, com stemming em português e trechos destacados.
headlessread/write/edit/glob/grep escopados, comandos git e gestão de servidores MCP.
adminInvites, waitlist, users, logs, skill store queue e welcome shortcuts.
webhooksInbound assinado de mensageria, GitHub e CRM, e callbacks OAuth de conectores.
Cada bloco abaixo descreve uma capacidade do servidor: o que ela resolve, como funciona por dentro e por quais rotas se fala com ela. Os endpoints completos, com schemas e exemplos, estão no Redoc e no Swagger.
Uma sessão é o agente vivo em execução; uma conversa é o histórico persistido. Você cria a sessão, manda mensagens e acompanha o trabalho em tempo real — token a token, tool a tool.
ask, writer e agent definem o que roda sem perguntar. Em ask, o turno pausa e aguarda sua decisão.POST /v1/sessions
POST /v1/sessions/{id}/messages
GET /v1/sessions/{id}/events
GET /v1/sessions/{id}/permissions/pending
POST /v1/permissions/{request_id}/decide
POST /v1/sessions/{id}/questions/answer
GET /v1/conversations
O mesmo agente roda sobre provedores diferentes, sem mudar código. Troque o modelo por chamada, por sessão ou por padrão da conta.
deepseek:,
ollama:, go:, zen:.
GET /v1/models
GET /v1/providers
POST /v1/auth/api-key
POST /dukk/compat/v1/chat/completions
/v1/chat/completions é compatível com o formato OpenAI: SDKs e
ferramentas existentes funcionam apontando a base URL para o Dukk.
O agente age através de ferramentas — ler e escrever arquivos, rodar comandos, navegar, consultar sistemas internos. O catálogo é declarativo e a seleção é semântica: o modelo recebe as ferramentas relevantes ao pedido, não as 139.
planejar_*) devolve o catálogo real de recursos, para o modelo
escolher identificadores que existem em vez de inventá-los; a segunda
(publicar_*, conectar_*) só executa com
confirmado=true, depois de você ver o que será feito.
GET /v1/tools
POST /v1/tools/exec
Toda alteração de arquivo passa por uma camada que registra, versiona e permite desfazer — o agente não escreve no seu disco sem rastro.
off — sem interceptação.partial (padrão) — cada escrita gera snapshot SHA-256, com rollback e registro em log de auditoria.full — as ferramentas de escrita são bloqueadas; o modelo emite blocos de ação que são aplicados transacionalmente, tudo ou nada.Comandos e código do agente rodam dentro de uma máquina isolada, não no servidor. Cada usuário tem a sua, com disco que sobrevive entre sessões.
/workspace é um volume nomeado dedicado ao sandbox, criado de
forma idempotente no boot e removido junto com ele. Sandboxes ociosas são
recolhidas automaticamente, com teto de tempo de vida — instância parada não
consome recurso indefinidamente.
POST /v1/sandboxes
GET /v1/sandboxes
DELETE /v1/sandboxes/{id}
GET /v1/sandboxes/{id}/files
O agente abre páginas, clica, preenche e extrai conteúdo — e você assiste a isso acontecendo, em tempo real.
POST /v1/sessions/{id}/browser/preview/start
GET /v1/sessions/{id}/browser/preview/ws
POST /v1/sessions/{id}/browser/preview/stop
Conecte um bot e fale com o agente pelo aplicativo de mensagem. Uma mensagem recebida roda um turno completo — mesmo histórico, mesmas ferramentas do desktop — e a resposta volta pelo mesmo chat.
GET /v1/messaging/platforms
POST /v1/messaging/channels
GET /v1/messaging/channels/{id}/chats
POST /v1/messaging/chats/{id}/authorize
Desenhe um agente conversacional a partir de um briefing em linguagem natural, publique-o de verdade e — se quiser — coloque-o para atender um canal de mensageria.
@seu_bot no
Telegram e no Slack, ou pelo número no WhatsApp. O canal continua dono da
fila, da deduplicação, do anti-loop, da aprovação de chats e dos limites —
só a geração da resposta muda de lugar. O histórico continua na mesma
conversa, então a busca segue encontrando.
PUT /v1/messaging/channels/{id}/agent
DELETE /v1/messaging/channels/{id}/agent
Quadros onde cada cartão pode virar trabalho de um agente. Útil para dividir uma tarefa grande entre execuções paralelas e revisar o resultado antes de aplicar.
GET /v1/kanban/boards
POST /v1/kanban/boards/{id}/cards
GET /v1/kanban/boards/{id}/events
Busca textual sobre tudo o que foi dito nas suas conversas, com trechos destacados.
GET /v1/search/messagesSkills são instruções reutilizáveis que o agente carrega quando o assunto aparece. Rotinas executam trabalho no horário marcado, sem ninguém presente.
GET /v1/skill-store
POST /v1/skill-store/import
GET /v1/skill-store/pinned
GET /v1/routines
GET /v1/plugins
O que torna possível "encontre a ferramenta certa" e "sugira a skill que serve aqui" sem lista fixa.
Preferências e decisões que você deu uma vez continuam valendo nas próximas conversas, sem precisar repetir.
GET /v1/learning/memory
GET /v1/learning/skills
Arquivos que o agente produz ficam guardados e acessíveis; arquivos que você envia são lidos e usados como contexto.
GET /v1/artifacts
POST /v1/uploads/extract
POST /v1/tools/pdf_generate
Ligue contas de terceiros uma vez e o agente passa a agir nelas. Servidores MCP adicionam ferramentas de fora sem alterar o Dukk.
GET /v1/connectors
GET /v1/connectors/{id}/authorize
GET /v1/mcp/servers
O acesso de usuários e organizações é feito com Zitadel como provedor de identidade. Integrações programáticas usam chave de API.
GET /v1/me
GET /v1/auth/status
POST /v1/auth/api-key
Operação da plataforma para a equipe interna: quem entra, o que está acontecendo e o que precisa de revisão.
GET /v1/admin/users
GET /v1/admin/logs
GET /v1/admin/invites
Eventos de fora entram por rotas públicas, sempre com verificação de autenticidade.
POST /v1/messaging/webhook/{platform}/{token}
POST /v1/webhooks/github/app