222 lines
5.2 KiB
Markdown
222 lines
5.2 KiB
Markdown
# 🤖 Protocolo para Agentes de IA
|
|
|
|
**LEIA ISTO ANTES DE TRABALHAR NO CÓDIGO**
|
|
|
|
Este documento define os protocolos obrigatórios para agentes de IA trabalhando no projeto Antigravity Brain.
|
|
|
|
---
|
|
|
|
## 🎯 Diretivas Primárias
|
|
|
|
1. **LEIA O CONHECIMENTO PRIMEIRO** - Antes de escrever QUALQUER código, leia os `src/knowledge/standards/*.md` relevantes
|
|
2. **NUNCA HARDCODE SEGREDOS** - Use a classe `Config` e variáveis de ambiente
|
|
3. **FERRAMENTAS NÃO DEVEM LANÇAR EXCEÇÕES** - Sempre retorne strings de erro, nunca raise exceptions
|
|
4. **TESTE ANTES DE COMMITAR** - Verifique alterações com `docker-compose restart app`
|
|
|
|
---
|
|
|
|
## 📖 Leitura Obrigatória por Tipo de Tarefa
|
|
|
|
| Tarefa | Deve Ler Primeiro |
|
|
|--------|-------------------|
|
|
| Ferramentas Python | `python_tool_standards.md` |
|
|
| Alterações Docker | `docker_standards.md` |
|
|
| Novos agentes | `DEVELOPER_GUIDE.md#adicionando-novos-agentes` |
|
|
| Banco de dados | `database_standards.md` |
|
|
| Segurança | `security_standards.md` |
|
|
| Operações Git | `git_standards.md` |
|
|
| Alterações de UI | `ui_ux_standards.md` |
|
|
|
|
---
|
|
|
|
## ✅ Checklist de Alteração de Código
|
|
|
|
Antes de fazer qualquer alteração:
|
|
|
|
- [ ] Ler arquivo de padrões relevante
|
|
- [ ] Verificar se o padrão já existe no código
|
|
- [ ] Planejar alteração com impacto mínimo
|
|
- [ ] Adicionar tratamento de erros
|
|
- [ ] Testar localmente
|
|
|
|
Após fazer a alteração:
|
|
|
|
- [ ] Reiniciar container: `docker-compose restart app`
|
|
- [ ] Verificar logs por erros: `docker logs antigravity_brain --tail 50`
|
|
- [ ] Verificar se a funcionalidade funciona
|
|
- [ ] Commitar com formato de mensagem adequado
|
|
|
|
---
|
|
|
|
## 📝 Formato de Mensagem de Commit
|
|
|
|
```
|
|
<tipo>: <descrição curta>
|
|
|
|
<corpo opcional>
|
|
```
|
|
|
|
Tipos:
|
|
- `feat:` Nova funcionalidade
|
|
- `fix:` Correção de bug
|
|
- `docs:` Documentação
|
|
- `refactor:` Limpeza de código
|
|
- `test:` Testes
|
|
- `chore:` Manutenção
|
|
|
|
Exemplo:
|
|
```
|
|
feat: Adicionar nova persona de agente DevOps
|
|
|
|
- Criado persona-devops-dan.md
|
|
- Adicionado à crew de Infraestrutura
|
|
- Atribuídas ferramentas Docker
|
|
```
|
|
|
|
---
|
|
|
|
## 🔧 Protocolo de Desenvolvimento de Ferramentas
|
|
|
|
```python
|
|
class MinhaTool(BaseTool):
|
|
name: str = "Nome Descritivo" # Agente lê isto
|
|
description: str = (
|
|
"Descrição DETALHADA de quando usar esta ferramenta. "
|
|
"Inclua exemplos de entrada e saídas esperadas."
|
|
)
|
|
args_schema: type = MinhaToolInput # Modelo Pydantic com descrições Field
|
|
|
|
def _run(self, **kwargs) -> str:
|
|
try:
|
|
# Sua lógica
|
|
return "Sucesso: ..."
|
|
except ErroEspecifico as e:
|
|
return f"Erro: Tratamento específico para {e}"
|
|
except Exception as e:
|
|
return f"Erro: Inesperado - {str(e)[:100]}"
|
|
```
|
|
|
|
**NUNCA:**
|
|
- Use `input()` para interação com usuário
|
|
- Lance exceções
|
|
- Retorne JSON bruto (use texto narrativo)
|
|
- Use type hints `Any`
|
|
|
|
---
|
|
|
|
## 🤖 Protocolo de Desenvolvimento de Agentes
|
|
|
|
### Arquivos de Persona
|
|
|
|
1. Use frontmatter YAML para metadados
|
|
2. Inclua campos `**Papel:**` e `**Objetivo:**`
|
|
3. Escreva backstory na voz do personagem
|
|
4. Defina protocolos/procedimentos claros
|
|
|
|
### Atribuição de Ferramentas
|
|
|
|
- Atribua apenas ferramentas que o agente realmente precisa
|
|
- Considere `model_tier`: ferramentas que requerem raciocínio → `smart`
|
|
- Ferramentas de memória são auto-atribuídas a todos os agentes
|
|
|
|
---
|
|
|
|
## 📁 Regras de Localização de Arquivos
|
|
|
|
| Tipo de Conteúdo | Localização |
|
|
|------------------|-------------|
|
|
| Personas de agentes | `src/agents/personas/persona-*.md` |
|
|
| Ferramentas | `src/tools/*.py` |
|
|
| Padrões de conhecimento | `src/knowledge/standards/*.md` |
|
|
| Conhecimento dinâmico | `src/knowledge/dynamic/*/*.md` |
|
|
| Definições de crew | `src/crews/definitions.py` |
|
|
| Configuração | `src/config.py` |
|
|
|
|
---
|
|
|
|
## ⚠️ Erros Comuns a Evitar
|
|
|
|
### 1. Nomes de Variáveis em Padrões
|
|
|
|
❌ ERRADO:
|
|
```python
|
|
return f"Erro: Arquivo '{path}' não encontrado" # {path} interpretado como template
|
|
```
|
|
|
|
✅ CORRETO:
|
|
```python
|
|
return f"Erro: Arquivo 'PATH_VAR' não encontrado" # Escapado
|
|
```
|
|
|
|
### 2. Rate Limiting Ausente
|
|
|
|
❌ ERRADO:
|
|
```python
|
|
while True:
|
|
api.call() # Queima cota instantaneamente
|
|
```
|
|
|
|
✅ CORRETO:
|
|
```python
|
|
for attempt in range(MAX_RETRIES):
|
|
result = api.call()
|
|
if success: break
|
|
time.sleep(DELAY * (2 ** attempt))
|
|
```
|
|
|
|
### 3. Configuração Hardcoded
|
|
|
|
❌ ERRADO:
|
|
```python
|
|
model = "gpt-4"
|
|
api_key = "sk-xxx"
|
|
```
|
|
|
|
✅ CORRETO:
|
|
```python
|
|
config = Config.get_llm_config(mode="smart")
|
|
```
|
|
|
|
---
|
|
|
|
## 🧪 Protocolo de Teste
|
|
|
|
1. **Teste local:**
|
|
```bash
|
|
docker-compose restart app
|
|
docker logs antigravity_brain --tail 50
|
|
```
|
|
|
|
2. **Verificar ausência de erros:**
|
|
```bash
|
|
docker logs antigravity_brain 2>&1 | findstr "Error ERROR Exception"
|
|
```
|
|
|
|
3. **Teste interativo:**
|
|
- Abra http://localhost:8000
|
|
- Envie mensagem de teste
|
|
- Verifique roteamento correto de crew
|
|
- Confira resposta do agente
|
|
|
|
---
|
|
|
|
## 🚀 Protocolo de Deploy
|
|
|
|
1. **Commitar alterações:**
|
|
```bash
|
|
git add .
|
|
git commit -m "feat: Descrição"
|
|
git push
|
|
```
|
|
|
|
2. **No servidor de produção:**
|
|
```bash
|
|
git pull
|
|
docker-compose build --no-cache app
|
|
docker-compose up -d
|
|
```
|
|
|
|
---
|
|
|
|
**Lembre-se:** Qualidade acima de velocidade. Leia os padrões. Teste suas alterações.
|