fonte-conhecimento-agente-delphi-tdd

RepositĂłrio pĂşblico com a fonte de conhecimento para o agente criado com a finalidade de auxiliar no desenvolvimento dos testes automatizados.

đź“‚ Estrutura do RepositĂłrio

Nossa estrutura dividida entre a documenta o/base de conhecimento e o c digo-fonte da solu o do Copilot Studio:

├── .github/workflows/      # Pipelines de CI/CD (Deploy da Solu o e MkDocs)
├── assets/                 # Arquivos auxiliares e scripts Delphi
├── docs/                   # Documenta o t cnica (MER, Mapeamento de Uses)
├── skills/                 # Base de Conhecimento do Agente (Arquivos .md)
├── src/                    # C digo-fonte desempacotado da Solu o Power Platform
│   ├── bots/               # Configura es principais do Agente
│   ├── botcomponents/      # T picos e Skills (A es) nativas do Copilot
│   ├── Connectors/         # Defini es de Conectores Customizados (MCPs)
│   └── Other/              # Metadados da Solu o (Solution.xml, etc.)
├── mkdocs.yml              # Configura o do portal de documenta o
└── README.md               # Este arquivo

🧩 Como Adicionar Novas Skills (Ações/Tópicos)

Para adicionar novas capacidades comportamentais ao agente, voc tem duas op

Op o 1: Base de Conhecimento (RAG) Se a skill for apenas informacional (como as diretrizes de TDD), adicione um novo diret rio e um arquivo SKILL.md dentro da pasta skills/.

Op o 2: A es do Copilot (Power e Actions) Se a skill exigir integra o l gica:

  1. Crie o rascunho visualmente no Copilot Studio.
  2. Exporte a solu o e fa a o unpack.
  3. Os novos t picos/skills aparecer o em src/botcomponents/. Voc pode editar o YAML diretamente nestes arquivos para ajustar l gica, prompts e vari veis.

🛠️ Como Criar Novas Skills via Código (Code-First)

Para que qualquer desenvolvedor adicione uma nova skill ao agente sem precisar acessar o portal do Copilot Studio, basta seguir este template.

O nosso agente principal tem o ID interno: cr6d8_delphitdd_fmc1IK. Todas as skills devem ser filhas dele.

Passo 1: Criar o DiretĂłrio da Skill

Dentro da pasta src/botcomponents/, crie uma nova pasta seguindo esta exata nomenclatura: cr6d8_delphitdd_fmc1IK.skill.[nome_da_skill]_[sufixo_aleatorio]

  • Exemplo: cr6d8_delphitdd_fmc1IK.skill.gerar_relatorio_abc
  • Nota: O sufixo aleatĂłrio (ex: abc, gLR, v1) garante que o ID nĂŁo conflite com outras skills no banco de dados.

Passo 2: Criar o Arquivo de Metadados (botcomponent.xml)

Dentro da nova pasta, crie um arquivo chamado botcomponent.xml e cole o template abaixo. Atenção: Substitua os valores entre colchetes [] pelos dados da sua skill. O schemaname deve ser idêntico ao nome da pasta que você acabou de criar.

<botcomponent schemaname="cr6d8_delphitdd_fmc1IK.skill.[nome_da_skill]_[sufixo_aleatorio]">
  <componenttype>9</componenttype>
  <description>[Escreva aqui para que serve essa skill, o agente usará isso para saber quando chamá-la]</description>
  <iscustomizable>0</iscustomizable>
  <name>[Nome Amigável da Skill]</name>
  <parentbotid>
    <schemaname>cr6d8_delphitdd_fmc1IK</schemaname>
  </parentbotid>
  <statecode>0</statecode>
  <statuscode>1</statuscode>
</botcomponent>

Passo 3: Criar o Arquivo de LĂłgica (data)

Na mesma pasta, crie um arquivo chamado apenas data (sem extensão). Este arquivo contém o Prompt ou fluxo em formato YAML. Cole o template abaixo e construa a sua lógica:

datakind: InlineAgentSkill
content: |
  ---
  name: [nome_da_skill_sem_espacos]
  description: [Mesma descrição usada no arquivo xml]
  ---
  <!-- bic:source=upload -->
  # Título da Instrução

  Escreva aqui as diretrizes da sua skill. VocĂŞ pode usar Markdown, criar regras condicionais e orientar como o agente deve se comportar quando esta skill for acionada.

Passo 4: Commit e Deploy

Após criar a pasta e os dois arquivos, faça o commit e envie para a branch main. Nossa pipeline CI/CD fará o empacotamento automático e a nova skill aparecerá no Copilot Studio em poucos minutos!


🚀 Por que isso funciona?

O Power Platform reconhece que qualquer subpasta dentro de src/botcomponents/ que possua um botcomponent.xml válido e faça referência ao parentbotid (no nosso caso, o cr6d8_delphitdd_fmc1IK) é um componente que deve ser amarrado ao agente.

Com esse manual no README.md, qualquer dev da sua equipe consegue fazer engenharia de prompt, criar ações e versionar tudo bonitinho via Pull Request!


🔌 Como Adicionar Novos MCPs (Conectores)

Os Model Context Protocols (MCPs) e conectores personalizados ficam armazenados em src/Connectors/.

Para adicionar um novo ou modificar um existente (como o context7):

  1. Defini o da API: Altere o arquivo [nome_do_conector]_openapidefinition.json para adicionar novos endpoints e m todos HTTP.
  2. Par metros: Ajuste as credenciais de autentica o no [nome_do_conector]_connectionparameters.json.
  3. Sincroniza o: Fa a o commit e push para a main. A pipeline ir empacotar a pasta src/ e atualizar a solu o no ambiente. Lembre-se de reautenticar a Refer ncia de Conex o (Connection Reference) no portal ap s o deploy, se as chaves mudarem.