Trabalhando com Skills, Hooks, Agents e Commands no Claude Code/Droid/Opencode

Trabalhando com Skills, Hooks, Agents e Commands no Claude Code/Droid/Opencode

Introdução e Abertura

  • Boa noite a todos, aguardando a chegada do público.
  • Início da transmissão com 64 participantes presentes.
  • Apresentação de um servidor e impressora 3D.

Apresentação dos Participantes

  • Jeff se apresenta como City da Lerian, com 13 anos de experiência na área.
  • Fred Amaral, CEO da Lerian, fala sobre sua função multifuncional na empresa.
  • Discussão sobre a importância das perguntas durante o webinar.

História e Captação de Recursos

  • Fred menciona dois processos de captação realizados pela empresa.
  • Reflexão sobre resistência à inteligência artificial no desenvolvimento.
  • Importância do capital para construir projetos inovadores.

Mudanças no Cenário de Investimentos

  • Descrição do processo de captação com diversos fundos internacionais.
  • Observações sobre mudanças nas perguntas feitas por investidores em potencial.
  • Necessidade de adaptação ao novo cenário econômico e tecnológico.

Nível de Produtividade e Expectativas do Mercado

  • Discussão sobre níveis de throughput de commits, PRs e resolução de problemas.
  • Importância do tempo no desenvolvimento, especialmente em junho e julho de 2024.
  • Referência a startups pequenas alcançando marcos financeiros significativos.

Interpretação das Expectativas do Mercado

  • Necessidade de entender as expectativas dos investidores institucionais.
  • A interpretação pessoal sobre o baseline da produtividade no desenvolvimento tecnológico.
  • Mudanças esperadas na exigência de produtividade para desenvolvedores.

Aprendizado e Ferramentas

  • Evolução nas métricas de produtividade ao longo do tempo.
  • Importância do conhecimento adquirido para utilizar ferramentas eficazmente.
  • Objetivo de entregar produtos melhores e mais rápidos aos clientes.

Experiência com Inteligência Artificial

  • Discussão sobre a experiência prática com IA no desenvolvimento.
  • Sensibilidade em relação à qualidade do código gerado por IA.
  • Ceticismo inicial sobre a eficácia da IA em gerar código assertivo.

Desafios na Implementação da IA

  • Crítica às métricas tradicionais que não refletem qualidade real do código.
  • Necessidade de garantir padrões de qualidade ao usar ferramentas baseadas em IA.
  • Debate sobre como equilibrar uso da IA com manutenção da qualidade do software.

Desenvolvimento Seguro e Escalável

  • A importância de um desenvolvimento seguro e de qualidade para atender às expectativas dos investidores.
  • Desafios enfrentados com códigos gerados por inteligência artificial, necessitando de ajustes pela equipe técnica.
  • Evolução das ferramentas que permitiram alcançar um padrão adequado de desenvolvimento.

Uso de Agentes e Especializações

  • Implementação de agentes especializados em serviços financeiros para lidar com complexidades como risco.
  • Aprendizado contínuo sobre a utilização eficaz da IA na criação de soluções.
  • Introdução da skill como uma virada chave no desenvolvimento, permitindo a criação de personas reutilizáveis.

Validação do Código Gerado

  • Quase 75% do código gerado atualmente é validado pela equipe técnica da Lerian.
  • Importância da validação contínua e ajuste dos outputs gerados pela IA.
  • Discussão sobre o que a IA não deve fazer, incluindo técnicas para melhorar resultados.

Camadas do Desenvolvimento

  • Necessidade de empatia ao entender as dificuldades enfrentadas na criação de software determinístico.
  • Início da explicação sobre as camadas até chegar ao usuário final no processo de desenvolvimento.
  • Relevância do treinamento em LLM (Modelos Linguísticos Grandes), injetando dados em máquinas.

Treinamento e Qualidade dos Modelos

  • Diferenças nos processos de treinamento entre grandes empresas que desenvolvem LLM, como Google e OpenAI.
  • Importância do "system prompt" na qualidade dos modelos treinados para nichos específicos.
  • Análise das características dos modelos LLM conforme suas aplicações específicas.

Diferenças entre Provedores de LLM

  • A OpenAI é mais fechada em comparação à Anthropic, que é mais aberta sobre system prompts.
  • Provedores de LLM utilizam uma camada de API com um system prompt injetado para acesso aos modelos.
  • No final do ano passado, houve discussões sobre o uso de "alma" nos prompts da Anthropic.

Comportamento dos Modelos

  • Modelos da Anthropic têm um "system prompt" que influencia seu comportamento e interação com usuários.
  • O GPT tende a ser mais seco nas respostas, enquanto outros modelos têm linguagens diferentes.
  • A importância do treinamento e dos system prompts é crucial para a diferenciação entre os modelos.

Ferramentas e Ambientes

  • Para operar efetivamente, uma LLM precisa utilizar ferramentas disponíveis no ambiente do usuário.
  • Exemplos de ferramentas incluem LS, GRAP e TLDR, que ajudam na manipulação de dados.
  • Ferramentas também podem buscar informações na internet através de web fetchers.

Integração de Ferramentas

  • É importante informar à LLM sobre as ferramentas disponíveis no ambiente para melhor desempenho.
  • O uso de ferramentas como RIP Grap pode melhorar a análise estática em ambientes específicos.
  • Acesso a MCP (Multi Contextual Processing) pode expandir as capacidades da LLM.

Desenvolvimento e Uso de CLI

  • Foi desenvolvido um conjunto de CLIs para auxiliar agentes em revisões de código.
  • Code Rabbit é uma ferramenta escolhida por sua eficácia em análises comparadas aos agentes humanos.
  • O volume crescente de código torna essencial o uso dessas ferramentas baseadas em AI.

Análise de Code Rabbit e Ferramentas

  • Discussão sobre a análise estática em agentes e a construção de um pacote para melhorar a performance.
  • Importância da camada de "hardness" no desenvolvimento de código, permitindo orquestração de modelos.
  • A camada "harness" é crucial para manipular LLMs e orquestrar diferentes modelos.

Camadas e Orquestração

  • O cloud code é agnóstico em relação às LLMs, permitindo o uso flexível de diferentes modelos.
  • A qualidade do harness impacta na eficácia dos comandos e agentes utilizados.
  • Cada desenvolvedor tem preferências por diferentes ferramentas, como Jet Brains ou Visual Studio.

Padrões em Harnesses

  • Os cinco principais harnesses incluem cloud code, codex, droid, open code e amp.
  • Todos esses harnesses suportam quatro tipos principais de plugins para melhor manipulação das LLMs.
  • As ferramentas (tools), skills, agents e hooks trabalham juntas nos harnesses.

Ambiente e Ferramentas

  • Os harnesses não apenas entregam ambientes, mas também possuem ferramentas específicas que variam conforme as preferências dos usuários.
  • O ambiente local se tornou uma ferramenta bash padrão para interação com LLM.
  • Exemplos práticos mostram como diferentes ferramentas podem ser utilizadas dentro dos harnesses.

Open Source e Desenvolvimento

  • O Open Code permite acesso ao código-fonte, facilitando melhorias nas skills desenvolvidas.
  • Diversas ferramentas estão disponíveis no GitHub para personalização das experiências com os harnesses.
  • A entrega do ambiente adequado é essencial para o funcionamento eficaz das LLM.

Introdução ao Ring

  • O Ring é uma ferramenta que permite criar e utilizar skills personalizadas, facilitando o desenvolvimento.
  • A primeira skill criada foi baseada em uma open source de brainstorming, adaptada para um projeto específico.
  • O conceito de "ring" é inspirado em nomes do Senhor dos Anéis, representando um conjunto de ferramentas e habilidades.

Desenvolvimento do Ring

  • O Ring começou a ser desenvolvido após discussões sobre a eficácia da skill de brainstorming.
  • É uma combinação de skills, tools e agentes que padronizam o comportamento das LLM durante o desenvolvimento.
  • O objetivo é garantir que as LLM se comportem adequadamente no contexto de desenvolvimento de código.

Funcionalidades do Midas e Agentes

  • Midas possui suas próprias skills específicas, sendo um produto principal para powerbanking.
  • O Ring é agnóstico e pode ser utilizado em diversos projetos sem estar restrito à Lerian.
  • Padrões estabelecidos pela Lerian estão disponíveis para uso por outros desenvolvedores.

Geração de Documentos e TDD

  • O Ring inclui agentes para geração automática de documentos contábeis e outros tipos relevantes.
  • Cada skill tem metadados específicos que podem ser personalizados conforme necessário.
  • A implementação do TDD (Test Driven Development) é discutida como parte fundamental do processo.

Implementação Prática do TDD

  • Um plugin dentro do Ring facilita a aplicação prática do TDD no desenvolvimento.
  • No TDD, primeiro escreve-se um teste que falha antes de implementar a funcionalidade desejada.
  • A abordagem garante alta cobertura de testes desde o início do desenvolvimento.

Desenvolvimento de Skills e Orquestração

Importância da Skill

  • A skill é essencial para orquestrar o desenvolvimento manual, evitando trabalho excessivo.
  • A skill garante um ciclo de desenvolvimento que inclui TDD, QA e SRE.
  • Responsabilidade da skill é assegurar a execução correta dos passos do processo.

Validação e Compliance

  • O código deve passar por validações rigorosas antes de ser aceito no ciclo.
  • Se os testes não atenderem aos critérios, o desenvolvedor permanece no ciclo até a conformidade.
  • Validação humana final é necessária para garantir a implementação correta.

Melhoria Contínua do Prompt

  • O prompt da skill está em constante evolução para melhorar resultados.
  • Exemplo prático: arquitetura disponível em githack.com/larianestudio/ring.
  • A skill se baseia em um front-end que orienta a LLM durante o desenvolvimento.

Estrutura e Triggers

  • Nome e descrição são cruciais na criação de uma skill eficaz.
  • Triggers ajudam a iniciar processos como desenvolvimento ou correção de bugs automaticamente.
  • A LLM segue as instruções da skill conforme os triggers definidos.

Racionalização e TDD

  • A habilidade de seguir regras sem racionalizar é fundamental para o sucesso do TDD.
  • É importante que a LLM siga estritamente as diretrizes estabelecidas pela skill.
  • Analogias com práticas reais ajudam a reforçar a necessidade do TDD antes do desenvolvimento.

Práticas de Desenvolvimento e TDD

Implementação de Práticas

  • A prática de pular etapas é comum, mas deve ser evitada em favor do TDD.
  • Criação de uma tabela de antirracionalização para evitar decisões impulsivas durante o desenvolvimento.
  • Importância da tabela para garantir que atividades não sejam puladas.

Construção da Tabela de Antirracionalização

  • A tabela foi desenvolvida a partir da experiência com DDD e TDD.
  • Adaptação de códigos existentes para criar uma skill que teste a aplicação do TDD.
  • Uso de hooks para identificar problemas comuns, como conectividade SSL.

Testando Skills com Subagentes

  • Processo automatizado para verificar se as skills seguem os padrões estabelecidos.
  • O subagente inicial não carrega a skill se não houver testes escritos.
  • Diálogo humorístico sobre prazos e falta de testes no código entregue.

Racionalizações e Melhorias

  • O segundo subagente testa se a skill está sendo seguida após carregar corretamente.
  • Racionalizações são apresentadas quando há pressão por resultados imediatos.
  • O terceiro subagente injeta racionalizações na skill testada até torná-la robusta.

Conclusão das Práticas

  • Uso contínuo do processo de teste com subagentes para garantir qualidade nas skills desenvolvidas.

Conexão com Banco de Dados

  • A interface de conexão com o banco de dados deve atender SSL e estar configurada corretamente.
  • Importância de testar skills e a flexibilidade na escrita dos agents, podendo usar YAML ou texto corrido.
  • Todos os cinco handlers têm pelo menos name e type; é necessário ler a documentação para organizar os fronts.

Uso do Cloud Code

  • O cloud code permite o uso de um agent que chama subagents em contextos diferentes.
  • O consumo atual dos fronts no cloud code é 2900 tokens, considerado baixo em comparação a outros NCPs.
  • Importância do input para agents, especialmente ao trabalhar com arquitetura e contexto.

Análise de Código com Agents

  • Demonstração do agent de code review que analisa a correção do código e design patterns.
  • O agent pode incluir change logs, mas não é sempre necessário seguir padrões rígidos.
  • Agents podem ter output ou input; exemplo dado sobre agentes da equipe David que utilizam atividades.

Documentação e Padrões

  • Documentação do cloud code menciona a possibilidade de incluir input e output esquema nos agents.
  • Front deve carregar LLM com formato markdown, incluindo seções obrigatórias como padrões verificados.
  • A forma como as instruções são passadas aos agents é crucial para garantir resultados desejados.

A Importância da Subjetividade no Output

  • Ao enviar um prompt, a forma de resposta pode variar. É crucial incluir subjetividade.
  • O output deve ser invocado apenas em situações específicas, como quando o usuário solicita "mod analysis only".
  • O uso do front matter em YAML é essencial para direcionar a LLM de maneira subjetiva.

Estrutura e Padrões dos Agentes

  • Um agente de desenvolvimento backend deve seguir padrões estabelecidos na equipe.
  • É importante definir frameworks e pacotes que o agente pode utilizar durante o desenvolvimento.
  • As tabelas de antirracionalização são incluídas para agentes, mas eles tendem a racionalizar menos.

Contexto e Racionalização nas LLMs

  • A invocação de habilidades no cloud code geralmente já utiliza contexto prévio.
  • LLMs da quinta geração são treinadas para otimizar o uso do contexto disponível.
  • Após 40% do contexto utilizado, as LLMs aceleram a entrega das respostas.

Diferenças entre Skills e Agentes

  • Habilidades devem ser chamadas com cuidado para evitar sobrecarga de contexto.
  • Agentes operam com contexto zerado, reduzindo a probabilidade de racionalização excessiva.
  • A escolha entre criar uma skill ou um agente depende da necessidade específica da tarefa.

Estratégias para Execução Eficiente

  • Criar uma skill é preferível se a mesma atividade precisa ser executada repetidamente.
  • Para agentes, é necessário passar sempre um contexto claro para execução eficaz.

Discussão sobre Skills e Agentes

  • A ideia é que a skill sempre passe a mesma instrução para simplificar a execução.
  • Discussão sobre a diferença entre skills e agentes, com foco em analogias de cozinha.
  • Skill é comparada a uma receita, enquanto o agente é quem executa essa receita.

Exemplos Práticos de Skills e Agentes

  • O agente carrega diferentes receitas (skills) para realizar tarefas específicas.
  • Exemplo do AMP que não utiliza comandos, mas skills para executar ações como commits.
  • Comandos são utilizados para facilitar processos repetitivos, como organizar commits.

Implementação de Comandos e Tracking

  • Criação de um comando que organiza commits feitos por IA e humanos.
  • O comando pergunta ao usuário se está de acordo com as mudanças antes de finalizar o commit.
  • O AMP substitui comandos por skills, permitindo um uso mais minimalista.

Agentes de Code Review

  • Existem cinco agentes de code review que realizam análises estáticas do código.
  • Um comando específico faz o dispatch dos agentes para consolidar revisões.

Hooks e Eventos no Open Code

  • Hooks permitem rastrear eventos em diferentes harnesses, variando conforme cada sistema.
  • O Open Code realiza tracking extensivo de eventos, possibilitando diversas funcionalidades.

Atualizações Automáticas e Hooks

  • Implementação de um hook chamado session start para comparar versões do código localmente.
  • Se houver discrepância entre versões, o script clona novamente o repositório.

Atualização Automática do Ring

  • O repositório para atualização automática do ring não é mais necessário, pois todos os harness atualizam automaticamente.
  • É possível criar um Shell script que registra ações da LLM e as envia para análise posterior.
  • Aprendizados podem ser armazenados em project rules ou arquivos para avaliação futura.

Uso de Hacking e Hooks

  • Hooks são utilizados para capturar eventos e melhorar o uso de prompts na equipe.
  • Telemetria pode ser implementada para monitorar a frequência e tipo de prompts enviados.
  • Cuidado com plugins no cloud code, pois dados podem ser enviados inadvertidamente.

Workflow de Code Review

  • Exemplo de workflow: comando ring code review permite revisar arquivos específicos ou todos os unstaged files.
  • O comando invoca cinco agentes com diferentes focos, como segurança e lógica de negócios.
  • Cada agente contribui para um relatório final sobre a revisão do código.

Plugins do Ring

  • O ring é um plugin open source utilizado em produção, recebendo atualizações constantes.
  • Inclui subplugins como Dev Team e Finops, ajudando na construção de templates regulatórios.
  • Integração entre PM e dev é essencial; o ring serve como plugin padrão.

Desenvolvimento de Features

  • Existem dois tipos de features: full (nove gates com perguntas detalhadas) e normal (quatro perguntas).
  • A feature full envolve desenvolvimento significativo, enquanto a normal foca em ajustes menores.

Incrementos no Código Atual

  • Discussão sobre o que incrementar no sistema atual, focando em uma visão funcional do produto.
  • Geração de PRD e TRD para requisitos técnicos e funcionais, incluindo feature map e dependências.
  • Integração com a equipe de desenvolvimento através de testes e atividades organizadas.

Responsabilidade na Construção do Produto

  • Comparação entre construção de casas e desenvolvimento de software, destacando papéis essenciais como engenheiros e arquitetos.
  • Importância da presença dos engenheiros na supervisão do projeto, mesmo que não estejam sempre presentes.
  • A responsabilidade final recai sobre os engenheiros, enfatizando a necessidade de visibilidade nas operações.

Agradecimentos e Feedback

  • Agradecimento aos participantes pela presença na discussão sobre o desenvolvimento do Ring.
  • Incentivo ao feedback dos usuários para melhorias no padrão utilizado.
Video description

Neste webinar, Fred Amaral e Jeff Rodrigues mostram, na prática, como trabalhar com Skills, Hooks, Agents e Commands no Claude Code / Droid / Opencode, criando fluxos mais modulares, autônomos e escaláveis. Uma conversa direta para devs e builders que querem ir além do prompt e estruturar sistemas inteligentes de verdade.