1. Propósito e Escopo
Este documento define todos os prompts, configurações de memória, transição entre estados e demais requisitos funcionais para o Agente de IA "Documentação Automática de APIs", que tem como objetivo gerar documentação detalhada e atualizada de APIs a partir de especificações técnicas. Essa documentação é um modelo de PRD ou Documento de Requisitos de Produto específicos para construção de Agentes de IA.
O objetivo principal é transformar especificações técnicas em documentação de API completa, incluindo exemplos de uso e descrições de endpoints, mantendo a documentação atualizada com as mudanças nas APIs.
2. Contexto e Problema
Cenário Atual
Muitas empresas enfrentam desafios em manter a documentação de suas APIs atualizada e precisa, o que resulta em dificuldades para desenvolvedores que dependem de exemplos claros e detalhados para implementar integrações. Os principais problemas incluem:
- Falta de documentação atualizada e precisa para APIs.
- Dificuldades em manter a documentação em dia com as atualizações das APIs.
- Necessidade de exemplos claros e detalhados para desenvolvedores.
Problemas Identificados
- Desatualização: Documentação muitas vezes não acompanha as mudanças frequentes nas APIs, resultando em informações obsoletas.
- Complexidade: A elaboração manual de documentação detalhada é um processo complexo e propenso a erros.
- Falta de exemplos: A ausência de exemplos práticos dificulta a compreensão e implementação por parte dos desenvolvedores.
3. Impactos Esperados
A implementação deste agente visa alcançar os seguintes resultados:
- Automatização da documentação: Gerar documentação atualizada automaticamente a partir das especificações técnicas.
- Facilidade de atualização: Atualizar a documentação em tempo real conforme alterações são feitas nas APIs.
- Exemplos práticos: Incluir exemplos de uso claros e detalhados para facilitar a compreensão dos desenvolvedores.
4. Visão Geral da Solução
O agente de IA para documentação automática de APIs gera documentação detalhada e atualizada a partir das especificações técnicas, incluindo exemplos de uso e descrições de endpoints. A seguir são detalhadas todas as regras de negócio e especificações funcionais necessárias para que esse agente atue como um assistente útil e autônomo na documentação de APIs.
A solução consiste em um fluxo de automação composto por vários agentes de IA. O processo inicia com a normalização das especificações das APIs e termina com a geração de uma documentação navegável e completa para desenvolvedores.
A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo. O fluxo inclui etapas condicionais que são executadas apenas se critérios específicos forem atendidos, conforme detalhado após a tabela.
| Agentes | Função Principal |
|---|---|
Agente de Normalização de Especificações de API (RF 1)
| Validar, interpretar e normalizar especificações de API para um JSON unificado de trabalho. |
Agente de Geração de Documentação de APIs (RF 2)
| Produzir documentação desenvolvedor-centrada, completa e navegável em Markdown. |
Agente de Geração de Exemplos de Uso (RF 3)
| Criar um pacote de exemplos práticos e claros para desenvolvedores. |
Agente de Atualização e Controle de Versão da Documentação (RF 4)
| Comparar especificações e documentação para propor e produzir atualizações incrementais. |
Regras de Execução Condicional ou Edges
- Ativação do Agente de Atualização e Controle de Versão da Documentação (RF 4): Este agente só será executado se uma versão anterior da documentação estiver disponível para comparação. Caso contrário, o fluxo prosseguirá diretamente para a geração da documentação base.
5. Protótipos
Para proporcionar uma visão clara e tangível da solução proposta, criamos protótipos interativos que demonstram tanto o fluxo de trabalho dos agentes quanto o resultado final que o cliente receberá. Explore os links abaixo para entender melhor a solução em ação.
6. Requisitos Funcionais
RF 1. Agente de Normalização de Especificações de API
1.1 Tarefa do Agente
Validar, interpretar e normalizar especificações de API (OpenAPI/Swagger 2.0, OpenAPI 3.x, RAML, GraphQL SDL) para um JSON unificado de trabalho.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo a especificação técnica de uma API. Este documento pode estar em formatos como OpenAPI, Swagger, RAML ou GraphQL SDL.
# 2. Objetivo
Validar, interpretar e normalizar a especificação recebida, gerando um JSON unificado que servirá de base para a documentação.
# 3. Regras que você deve seguir para gerar sua resposta
- Suporte formatos: OpenAPI 3.0/3.1, Swagger 2.0, RAML 1.0 e GraphQL SDL.
- Detecte automaticamente o formato se spec_format vier vazio; use cabeçalhos típicos (openapi:, swagger:, #%RAML, schema {).
- Resolva $ref locais e remotos presentes no documento, consolidando em components_resolved; se houver ciclos, marque no normalization_report com tipo=erro e detalhe o caminho.
- Padronize tipos para o conjunto: string, number, integer, boolean, object, array, null; preserve formatos (date, date-time, uuid, email, uri) em field.format.
- Para cada endpoint, normalize: method (upper), path (com {param}), tag primária (primeiro item em tags ou 'default' se ausente), summary, description, parameters (local e path-level), requestBody (conteúdos por mediaType), responses (mapa por status, com schemas resolvidos e mediaTypes).
- Se faltar summary, derive um a partir de description curta (máx. 120 caracteres); registre a derivação no normalization_report.
- Combine security global e por operação e gere security_effective; se nenhum esquema, defina 'public'.
- Inferências permitidas: a) se path contém {id} e schema possui property id, tipar parâmetro como integer ou string conforme schema; b) se responses não tiver 2xx, mas 200 existir implícito, defina 200; c) se nenhum server, derive de basePath/host (Swagger 2) ou '/'.
- Identifique convenções de paginação examinando parâmetros comuns (page, per_page, limit, offset) e padronize em pagination_conventions com strategy ('page-per_page'| 'limit-offset' | 'cursor'); se response tem 'links' ou 'pageInfo', registre.
- Identifique rate limiting por headers padrão (X-RateLimit-*) ou seções em components; preencha rate_limit_conventions com header_names e janela típica se detectável.
- Para GraphQL, gere pseudo-endpoints: POST /graphql com operações derivadas (query/mutation/subscription) em endpoints_index, com exemplos de payloads a partir dos tipos e argumentos.
- Mantenha operationId único; se ausente, gere slug: __; registre no report.
- Não descarte conteúdo desconhecido; preserve-o em normalized_spec.extra.
- O output deve ser determinístico: ordene endpoints por tag asc, depois path, depois method. 1.3 Configurações do Agente
1.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente é o ponto de partida do fluxo e deve ser acionado pelo envio de especificações técnicas da API via API. Na fase de testes, o fluxo será iniciado pelo envio manual das especificações, que serão enviadas para o agente diretamente por upload na interface da Prototipe AI, para acelerar o processo de validação.
- Tipo do input: O input inicial para o fluxo é um documento de especificação técnica da API.
-
Formatos Suportados: Esse agente deve ser capaz de receber especificações nos formatos:
.yaml,.json,.graphql. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 100.000 caracteres.
1.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON estruturado que contenha a especificação normalizada da API, incluindo todos os detalhes necessários para a geração da documentação.
-
Exemplo de Estrutura de Output:
{ "normalized_spec": { ... }, "normalization_report": { ... }, "api_metadata": { ... }, "endpoints_index": [ ... ], "components_resolved": { ... }, "webhooks": [ ... ], "pagination_conventions": { ... }, "rate_limit_conventions": { ... } } - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 10.000 caracteres, podendo variar conforme a complexidade da especificação.
1.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
1.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: Não se conecta a sistemas externos.
1.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Geração de Documentação de APIs (RF 2).
1.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Geração de Documentação de APIs (RF 2).
RF 2. Agente de Geração de Documentação de APIs
2.1 Tarefa do Agente
Produzir documentação desenvolvedor-centrada, completa e navegável em Markdown a partir do normalized_spec.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um JSON com a especificação normalizada de uma API. # 2. Objetivo Produzir documentação desenvolvedor-centrada, completa e navegável em Markdown, cobrindo visão geral, autenticação, endpoints, modelos de dados, erros, paginação, rate limiting e webhooks. # 3. Regras que você deve seguir para gerar sua resposta - Estrutura fixa do documento: a) Capa (Título, versão, data ISO8601, sumário executivo de 2-3 linhas). b) Começando Rápido (chaves necessárias, URL base, primer de 60-120s). c) Autenticação (tipos suportados, headers, escopos, exemplos). d) Convenções (URLs, media types, paginação, versionamento, rate limiting). e) Endpoints por Tag (ordem alfabética). f) Webhooks (se houver). g) Modelos de Dados (schemas com propriedades, tipos, constraints, exemplos). h) Erros (tabela de códigos e significados, estrutura de erro). i) Changelog (placeholder se não houver histórico). - Para cada endpoint: exiba bloco com método, path, anchor estável anchor=_ _ ; inclua: Summary, Descrição, Autenticação requerida (sim/não e esquema), Parâmetros (tabela: nome, in, tipo, obrigatório, default, descrição), Corpo da Requisição (por mediaType com schema e exemplo), Respostas (para 2xx, 4xx, 5xx): status, descrição, schema, exemplo; Campos de paginação e filtros (se detectados). - Gere exemplos sintéticos válidos a partir dos schemas, respeitando formatos (uuid, date-time, etc.) e constraints (minLength, enum, pattern). - Quando type=oneOf/anyOf/allOf, escolha o caso mais simples e documente os demais como variações, listando discriminators se houver. - Marque campos deprecated com aviso visual e nota de remoção sugerida. - Para GraphQL, inclua exemplos de query e mutation com fragments mínimos e indicação de tipagem. - Padronize tabelas com cabeçalhos fixos e mantenha ordenação: required desc, depois alfabética. - Links internos: sumário (doc_toc) deve refletir âncoras geradas e permitir navegação consistente; nunca duplique anchors. - Idioma: use preferred_language se fornecido; padrões pt-BR técnico, evitando jargões ambíguos; traduza nomes de seções, nunca traduza nomes de campos/paths. - Se style_guide existir, aplique: a) título em Sentence case; b) headings H1..H3; c) código em blocos com linguagem marcada; d) limite linhas de exemplos a 120 colunas. - Inclua observações de segurança quando scopes ou dados sensíveis são requeridos (PII, tokens). - Se não houver requestBody ou responses definidos, registre no endpoint um aviso 'Especificação incompleta' e inclua sugestão de como completar.
2.3 Configurações do Agente
2.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão bem-sucedida do agente anterior (RF 1).
- Tipo do input: Este agente deve ser apto a receber como input um JSON estruturado com a especificação normalizada da API.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 10.000 caracteres.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um documento em **Markdown** que contenha a documentação completa da API, seguindo a estrutura fixa definida no prompt.
-
Exemplo de Estrutura de Output:
# API Documentation ## Capa Título: API de Exemplo Versão: 1.0.0 Data: 2025-12-19 ## Sumário Executivo Esta documentação abrange todos os aspectos da API, incluindo autenticação, endpoints e exemplos de uso. ## Começando Rápido Chaves necessárias, URL base, primer de 60-120s. ## Autenticação Tipos suportados, headers, escopos, exemplos. ## Endpoints - GET /example - Summary: Exemplo de endpoint - Descrição: Este endpoint serve como exemplo. ## Modelos de Dados Schemas com propriedades, tipos, constraints, exemplos. ## Erros Tabela de códigos e significados, estrutura de erro. ## Changelog Placeholder se não houver histórico.
- Número de caracteres esperado: O documento em Markdown gerado deve ter um tamanho estimado em torno de 15.000 caracteres, dependendo da quantidade de endpoints e detalhes da API.
2.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
2.3.4 Ferramentas do Agente
- Documentos: Não consulta.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
2.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
- Visibilidade da Resposta: A resposta (documentação em Markdown) deve ser visível para o Agente de Geração de Exemplos de Uso (RF 3).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Geração de Exemplos de Uso (RF 3).
RF 3. Agente de Geração de Exemplos de Uso
3.1 Tarefa do Agente
Criar um pacote de exemplos práticos e claros para desenvolvedores, incluindo snippets multi-idioma e uma coleção Postman/HTTP pronta para importação, derivados do normalized_spec.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo a especificação normalizada de uma API e a documentação em Markdown.
# 2. Objetivo
Criar um pacote de exemplos práticos e claros para desenvolvedores, incluindo snippets multi-idioma e uma coleção Postman/HTTP pronta para importação.
# 3. Regras que você deve seguir para gerar sua resposta
- Sempre inclua cURL e pelo menos duas linguagens adicionais se sample_languages não for fornecido (padrão: javascript-fetch e python-requests).
- Use variáveis de ambiente para credenciais e base URL: BASE_URL, API_KEY, ACCESS_TOKEN, ORG_ID etc.; nos exemplos, referencie-as (${VAR} no Postman; entre chaves nos snippets apenas como placeholders, nunca valores reais).
- Construa headers obrigatórios (Accept, Content-Type) conforme mediaType do endpoint.
- Gere corpo de requisição coerente com schema, preenchendo todos os campos required e alguns opcionais representativos; respeite formatos.
- Inclua pelo menos um exemplo por resposta 2xx principal e um exemplo de erro 4xx, com mensagem e code coerentes ao esquema de erro do normalized_spec.
- Para endpoints paginados, forneça exemplo de paginação com parâmetros e interpretação de links/offsets.
- Se houver OAuth2, inclua exemplo do fluxo de obtenção de token (client_credentials ou authorization_code) com passos e chamadas.
- Para GraphQL, forneça exemplo de operação (query/mutation) e JSON de variables correspondente.
- Geração determinística: ordene exemplos pelo anchor do endpoint; mantenha chaves ordenadas alfabeticamente em JSON nos snippets.
- A coleção Postman deve herdar variáveis de environment_variables e agrupar requests por tag; cada request inclui test script mínimo para validar status 2xx. 3.3 Configurações do Agente
3.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão bem-sucedida do agente anterior (RF 2).
- Tipo do input: Este agente deve ser apto a receber como input a especificação normalizada da API e a documentação em Markdown.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs nos formatos:
.jsone.md. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input combinado de até 25.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um pacote de exemplos em **JSON**, contendo snippets multi-idioma e uma coleção Postman/HTTP pronta para importação.
-
Exemplo de Estrutura de Output:
{ "examples_pack": { ... }, "postman_collection": { ... }, "environment_variables": [ ... ], "negative_test_examples": [ ... ] } - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 20.000 caracteres, dependendo da quantidade de endpoints e exemplos gerados.
3.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
3.3.4 Ferramentas do Agente
- Documentos: Não consulta.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
3.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
- Visibilidade da Resposta: A resposta (pacote de exemplos) deve ser visível para o Agente de Atualização e Controle de Versão da Documentação (RF 4).
3.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Atualização e Controle de Versão da Documentação (RF 4).
RF 4. Agente de Atualização e Controle de Versão da Documentação
4.1 Tarefa do Agente
Comparar a especificação normalizada atual com a anterior e a documentação vigente para propor e produzir atualizações incrementais, incluindo changelog e sugestão de version bump semântico.
4.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo a especificação normalizada atual e, opcionalmente, a especificação e documentação anteriores. # 2. Objetivo Comparar a especificação normalizada atual com a anterior e a documentação vigente para propor e produzir atualizações incrementais, incluindo changelog e sugestão de version bump semântico. # 3. Regras que você deve seguir para gerar sua resposta - Classifique diferenças por endpoint, schema e autenticação: a) Added (novos endpoints, novos campos opcionais); b) Changed (descrições, exemplos, defaults); c) Deprecated (marcados como deprecated=true); d) Removed (endpoints/campos removidos); e) Security (mudança de auth); f) Rate limiting (novos limites ou alterações). - Defina breaking change quando: remover endpoint, alterar tipo de campo, tornar campo antes opcional em obrigatório, mudar sem compatibilidade um caminho, mudar formato de resposta, remover status 2xx ou alterar sem backward compatibility o significado de um campo. - Regra de bump: major se houver breaking_changes_detected; minor se Added sem breaking; patch para Changed/Fixed sem novos recursos. - Preserve anchors existentes; se path mudou mas substituto for fornecido (x-replaced-by), crie redirecionamento anotado e nota de migração. - Ao atualizar previous_doc_markdown, edite apenas seções afetadas; mantenha a ordem e cabeçalhos; acrescente notas de depreciação com horizonte (ex.: 'remoção em 90 dias') quando aplicável. - Se previous_* não for fornecido, emita changelog inicial com 'Initial release' e retorne bump_suggestion='minor' por padrão. - Liste affected_endpoints com tipo_impacto: added|changed|deprecated|removed|security|ratelimit e detalhe do campo/razão. - Seja determinístico: ordene changelog por tipo (na ordem: Security, Removed, Deprecated, Changed, Added, Fixed) e dentro de cada tipo por anchor.
4.3 Configurações do Agente
4.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 3), apenas se uma versão anterior da documentação estiver disponível.
- Tipo do input: Este agente deve ser apto a receber como input a especificação normalizada atual e, opcionalmente, a especificação e documentação anteriores.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs nos formatos:
.jsone.md. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input combinado de até 30.000 caracteres.
4.3.2 Especificação do Output
- Formato de output: O output deve ser um conjunto de documentos em **Markdown** e **JSON**, incluindo a documentação atualizada, changelog e sugestões de version bump.
-
Exemplo de Estrutura de Output:
{ "updated_doc_markdown": "# API Documentation Updated...", "changelog_markdown": "## Changelog\n- Added: New endpoint /example...", "bump_suggestion": "minor", "breaking_changes_detected": false, "affected_endpoints": [ ... ], "migration_notes": [ ... ] } - Número de caracteres esperado: O conjunto de documentos gerado deve ter um tamanho estimado em torno de 25.000 caracteres.
4.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
4.3.4 Ferramentas do Agente
- Documentos: Não consulta.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
4.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
- Visibilidade da Resposta: A resposta (documentação atualizada e changelog) é o entregável final e não é passada para outros agentes internos.
4.3.6 Regras de Orquestração e Transição
A execução deste agente finaliza o fluxo. A documentação atualizada e o changelog gerado são os resultados que devem ser disponibilizados ao usuário.