Leaders Logo

Arquiteturas Orientadas a Documentação: MarkDown como Camada de Coordenação e Geração de Código em Ecossistemas Multiagentes com IA

Compreensão da Coordenação e Geração de Código

A consolidação de agentes de IA integrados ao VS Code, como assistentes baseados em Large Language Models (LLMs), copilots e agentes autônomos conectados ao repositório, transformou profundamente a dinâmica da engenharia de software. Nesse novo paradigma, o MarkDown deixa de ser apenas um formato de documentação e passa a funcionar como camada declarativa de intenção arquitetural, capaz de coordenar agentes e gerar implementações concretas em múltiplas linguagens (ZHANG et al., 2024).

Nesta perspectiva, C# e Go não representam a lógica do agente em si, mas o resultado material da interpretação de um artefato documental estruturado. O MarkDown torna-se o contrato; o código, sua manifestação.

MarkDown como Especificação Executável

Quando estruturado de forma semântica e disciplinada, um documento MarkDown pode atuar como:

  • Especificação funcional;
  • Contrato arquitetural;
  • Definição de métricas e restrições técnicas;
  • Prompt estruturado para agentes de IA.

Modelos contemporâneos de linguagem demonstram elevada capacidade de derivar implementações a partir de descrições formais e semi-formais (BEURER-KELLNER et al., 2023). Nesse contexto, a estrutura, clareza e disciplina sintática do MarkDown influenciam significativamente a qualidade e previsibilidade do código gerado, podendo servir como ponto de orquestração para múltiplas requisições simultâneas, inclusive em arquiteturas baseadas em sistemas multiagentes de IA.

Imagem SVG do Artigo

Especificação de API REST

Nesta seção, uma especificação da API a partir de uma abordagem declarativa é apresentada, utilizando MarkDown como contrato formal de intenção. Antes de qualquer implementação em linguagem específica, os objetivos, requisitos, modelo de dados e regras de negócio de maneira estruturada e independente de tecnologia são definidos. Essa camada documental orienta os agentes de IA na geração consistente de código em múltiplos ecossistemas.

MarkDown Declarativo

# Serviço de Cadastro de Usuários

## Objetivo
Expor uma API REST para cadastro e consulta de usuários.

## Requisitos Funcionais
- Criar usuário
- Buscar usuário por ID

## Modelo de Dados
User:
- Id (GUID)
- Name (string, obrigatório)
- Email (string, obrigatório, único)

## Regras
- Email deve ser único
- Name não pode ser vazio
- Respostas em JSON

Este documento atua como camada de intenção. A partir dele, agentes de IA podem gerar implementações coerentes em diferentes linguagens.

Resultado Gerado em C#

public class User
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
}

Resultado Gerado em Go

type User struct {
    Id    string `json:"id"`
    Name  string `json:"name"`
    Email string `json:"email"`
}

Observe que o código é consequência direta da estrutura declarativa do MarkDown. A consistência entre linguagens é garantida pelo contrato documental.

Especificação de Política de Cache

Nesta seção, a documentação assume um papel ainda mais estratégico: em vez de apenas definir estruturas de dados, ela explicita decisões arquiteturais relacionadas a desempenho, escalabilidade e observabilidade. A política de cache é descrita de forma declarativa, permitindo que agentes de IA traduzam intenções de performance e restrições operacionais em implementações concretas, mantendo alinhamento com métricas de sucesso previamente estabelecidas.

MarkDown Declarativo

# Estratégia de Cache

## Contexto
Sistema de alta leitura com necessidade de baixa latência.

## Estratégia
- Cache-Aside
- TTL de 5 minutos

## Regras
- Invalidar cache em atualização
- Logar falhas de acesso ao cache

## Métrica de Sucesso
- Latência média menor que 50ms
- Hit ratio maior que 85%

Aqui, o MarkDown não descreve apenas estrutura de dados, mas decisões arquiteturais e restrições operacionais.

Resultado Esperado em C#

public async Task GetUserAsync(Guid id)
{
    var cacheKey = $"user:{id}";
    var cached = await _cache.GetAsync(cacheKey);

    if (cached != null)
        return Deserialize(cached);

    var user = await _repository.GetByIdAsync(id);

    await _cache.SetAsync(cacheKey, Serialize(user),
        new DistributedCacheEntryOptions
        {
            AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(5)
        });

    return user;
}

Resultado Esperado em Go

func GetUser(id string) (*User, error) {
    key := fmt.Sprintf("user:%s", id)

    cached, err := redisClient.Get(ctx, key).Result()
    if err == nil {
        return deserialize(cached), nil
    }

    user, err := repository.GetById(id)
    if err != nil {
        return nil, err
    }

    redisClient.Set(ctx, key, serialize(user), 5*time.Minute)

    return user, nil
}

Mais uma vez, a decisão arquitetural foi expressa documentalmente; o código é a execução dessa intenção.

MarkDown como Camada de Coordenação em Ecossistemas Multiagentes

Em ambientes com múltiplos agentes no VS Code, responsáveis por geração de código, testes, refatoração e validação, o MarkDown atua como:

  • Fonte única de verdade (Single Source of Truth);
  • Contrato versionado no Git;
  • Base de contexto para prompts automáticos;
  • Orquestrador semântico de múltiplas linguagens.

Isso se alinha a abordagens de coordenação em sistemas multiagentes baseadas em artefatos compartilhados no ambiente e é ampliado ao considerar LLMs como agentes capazes de atuar em diferentes etapas do ciclo de desenvolvimento de software (HE; TREUDE; LO, 2025).

A Importância da Arquitetura na Escrita do MarkDown

A capacidade generativa de um documento estruturado em MarkDown está diretamente associada à maturidade arquitetural de quem o elabora. Em engenharia de software, decisões arquiteturais são responsáveis por determinar atributos de qualidade como escalabilidade, desempenho, segurança, modificabilidade e disponibilidade, sendo resultado de trade-offs explícitos entre restrições funcionais e não funcionais (BASS; CLEMENTS; KAZMAN, 2012).

Assim, quando princípios como SOLID, arquitetura em camadas, Domain-Driven Design (DDD), consistência e concorrência, bem como preocupações de observabilidade e infraestrutura, não são adequadamente compreendidos e explicitados na especificação, o artefato tende a permanecer superficial.

Adicionalmente, a literatura sobre documentação arquitetural demonstra que a clareza e a estrutura da documentação influenciam diretamente a qualidade das decisões de implementação subsequentes (CLEMENTS et al., 2010). No âmbito da modelagem de domínio, a precisão conceitual e a linguagem ubíqua são determinantes para a robustez estrutural do software (EVANS, 2003).

Nesse contexto, ao incorporar agentes baseados em Large Language Models no processo de desenvolvimento, observa-se um efeito amplificador: os modelos tendem a refletir a qualidade, a clareza e a profundidade arquitetural da especificação fornecida. Especificações rasas produzem implementações igualmente rasas; especificações arquiteturalmente consistentes tendem a resultar em código estruturalmente sólido. Em outras palavras, agentes de IA amplificam a qualidade da intenção arquitetural expressa no artefato.

Conclusão

Arquiteturas Orientadas a Documentação representam um estágio evolutivo na engenharia de software contemporânea. O MarkDown deixa de ser suporte narrativo e passa a ser camada declarativa executável, capaz de coordenar agentes de IA e produzir implementações consistentes em múltiplas linguagens. Nesse modelo, o engenheiro de software assume um papel ainda mais estratégico: não apenas escreve código, mas projeta intenções arquiteturais que serão materializadas por agentes autônomos.

Referências

  • BEURER-KELLNER, Luca; FISCHER, Marc; VECHEV, Martin. Prompting is programming: A query language for large language models. Proceedings of the ACM on Programming Languages, v. 7, n. PLDI, p. 1946-1969, 2023. reference.Description
  • ZHANG, Wuyang et al. Renaissance of literate programming in the era of llms: Enhancing llm-based code generation in large-scale projects. arXiv preprint arXiv:2502.17441, 2024. reference.Description
  • HE, Junda; TREUDE, Christoph; LO, David. Llm-based multi-agent systems for software engineering: Literature review, vision, and the road ahead. ACM Transactions on Software Engineering and Methodology, v. 34, n. 5, p. 1-30, 2025. reference.Description
  • BASS, Len. Software architecture in practice. Pearson Education India, 2012. reference.Description
  • CLEMENTS, Paul. Documenting Software Architectures: Views and Beyond, Portable Documents. 2010. reference.Description
  • EVANS, Eric. Domain-driven design: tackling complexity in the heart of software. Addison-Wesley Professional, 2004. reference.Description
Sobre o autor