@polymorphism-tech/morph-spec 1.0.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +1381 -0
- package/LICENSE +72 -0
- package/README.md +114 -12
- package/bin/detect-agents.js +225 -0
- package/bin/morph-spec.js +120 -0
- package/bin/render-template.js +302 -0
- package/bin/semantic-detect-agents.js +246 -0
- package/bin/validate-agents-skills.js +239 -0
- package/bin/validate-agents.js +69 -0
- package/bin/validate-phase.js +263 -0
- package/content/.azure/README.md +293 -0
- package/content/.azure/docs/azure-devops-setup.md +454 -0
- package/content/.azure/docs/branch-strategy.md +398 -0
- package/content/.azure/docs/local-development.md +515 -0
- package/content/.azure/pipelines/pipeline-variables.yml +34 -0
- package/content/.azure/pipelines/prod-pipeline.yml +319 -0
- package/content/.azure/pipelines/staging-pipeline.yml +234 -0
- package/content/.azure/pipelines/templates/build-dotnet.yml +75 -0
- package/content/.azure/pipelines/templates/deploy-app-service.yml +94 -0
- package/content/.azure/pipelines/templates/deploy-container-app.yml +120 -0
- package/content/.azure/pipelines/templates/infra-deploy.yml +90 -0
- package/content/.claude/commands/morph-apply.md +118 -26
- package/content/.claude/commands/morph-archive.md +9 -9
- package/content/.claude/commands/morph-clarify.md +184 -0
- package/content/.claude/commands/morph-design.md +275 -0
- package/content/.claude/commands/morph-proposal.md +56 -15
- package/content/.claude/commands/morph-setup.md +100 -0
- package/content/.claude/commands/morph-status.md +47 -32
- package/content/.claude/commands/morph-tasks.md +319 -0
- package/content/.claude/commands/morph-uiux.md +211 -0
- package/content/.claude/skills/specialists/ai-system-architect.md +604 -0
- package/content/.claude/skills/specialists/ms-agent-expert.md +143 -89
- package/content/.claude/skills/specialists/ui-ux-designer.md +744 -9
- package/content/.claude/skills/stacks/dotnet-blazor.md +244 -8
- package/content/.claude/skills/stacks/dotnet-nextjs.md +2 -2
- package/content/.morph/.morphversion +5 -0
- package/content/.morph/config/agents.json +101 -8
- package/content/.morph/config/azure-pricing.json +70 -0
- package/content/.morph/config/azure-pricing.schema.json +50 -0
- package/content/.morph/config/config.template.json +15 -3
- package/content/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +392 -0
- package/content/.morph/hooks/README.md +239 -0
- package/content/.morph/hooks/pre-commit-agents.sh +24 -0
- package/content/.morph/hooks/pre-commit-all.sh +48 -0
- package/content/.morph/hooks/pre-commit-costs.sh +91 -0
- package/content/.morph/hooks/pre-commit-specs.sh +49 -0
- package/content/.morph/hooks/pre-commit-tests.sh +60 -0
- package/content/.morph/project.md +5 -4
- package/content/.morph/schemas/agent.schema.json +296 -0
- package/content/.morph/standards/agent-framework-setup.md +453 -0
- package/content/.morph/standards/architecture.md +142 -7
- package/content/.morph/standards/azure.md +218 -23
- package/content/.morph/standards/coding.md +47 -12
- package/content/.morph/standards/dotnet10-migration.md +494 -0
- package/content/.morph/standards/fluent-ui-setup.md +590 -0
- package/content/.morph/standards/migration-guide.md +514 -0
- package/content/.morph/standards/passkeys-auth.md +423 -0
- package/content/.morph/standards/vector-search-rag.md +536 -0
- package/content/.morph/state.json +18 -0
- package/content/.morph/templates/FluentDesignTheme.cs +149 -0
- package/content/.morph/templates/MudTheme.cs +281 -0
- package/content/.morph/templates/contracts.cs +55 -55
- package/content/.morph/templates/decisions.md +4 -4
- package/content/.morph/templates/design-system.css +226 -0
- package/content/.morph/templates/infra/.dockerignore.example +89 -0
- package/content/.morph/templates/infra/Dockerfile.example +82 -0
- package/content/.morph/templates/infra/README.md +286 -0
- package/content/.morph/templates/infra/app-service.bicep +164 -0
- package/content/.morph/templates/infra/deploy.ps1 +229 -0
- package/content/.morph/templates/infra/deploy.sh +208 -0
- package/content/.morph/templates/infra/main.bicep +41 -7
- package/content/.morph/templates/infra/parameters.dev.json +6 -0
- package/content/.morph/templates/infra/parameters.prod.json +6 -0
- package/content/.morph/templates/infra/parameters.staging.json +29 -0
- package/content/.morph/templates/proposal.md +3 -3
- package/content/.morph/templates/recap.md +3 -3
- package/content/.morph/templates/spec.md +9 -8
- package/content/.morph/templates/sprint-status.yaml +68 -0
- package/content/.morph/templates/state.template.json +222 -0
- package/content/.morph/templates/story.md +143 -0
- package/content/.morph/templates/tasks.md +1 -1
- package/content/.morph/templates/ui-components.md +276 -0
- package/content/.morph/templates/ui-design-system.md +286 -0
- package/content/.morph/templates/ui-flows.md +336 -0
- package/content/.morph/templates/ui-mockups.md +133 -0
- package/content/.morph/test-infra/example.bicep +59 -0
- package/content/CLAUDE.md +124 -0
- package/content/README.md +79 -0
- package/detectors/config-detector.js +223 -0
- package/detectors/conversation-analyzer.js +163 -0
- package/detectors/index.js +84 -0
- package/detectors/standards-generator.js +275 -0
- package/detectors/structure-detector.js +221 -0
- package/docs/README.md +149 -0
- package/docs/api/cost-calculator.js.html +513 -0
- package/docs/api/design-system-generator.js.html +382 -0
- package/docs/api/fonts/Montserrat/Montserrat-Bold.eot +0 -0
- package/docs/api/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
- package/docs/api/fonts/Montserrat/Montserrat-Bold.woff +0 -0
- package/docs/api/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
- package/docs/api/fonts/Montserrat/Montserrat-Regular.eot +0 -0
- package/docs/api/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
- package/docs/api/fonts/Montserrat/Montserrat-Regular.woff +0 -0
- package/docs/api/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +978 -0
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +1049 -0
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
- package/docs/api/global.html +5263 -0
- package/docs/api/index.html +96 -0
- package/docs/api/scripts/collapse.js +39 -0
- package/docs/api/scripts/commonNav.js +28 -0
- package/docs/api/scripts/linenumber.js +25 -0
- package/docs/api/scripts/nav.js +12 -0
- package/docs/api/scripts/polyfill.js +4 -0
- package/docs/api/scripts/prettify/Apache-License-2.0.txt +202 -0
- package/docs/api/scripts/prettify/lang-css.js +2 -0
- package/docs/api/scripts/prettify/prettify.js +28 -0
- package/docs/api/scripts/search.js +99 -0
- package/docs/api/state-manager.js.html +423 -0
- package/docs/api/styles/jsdoc.css +776 -0
- package/docs/api/styles/prettify.css +80 -0
- package/docs/examples.md +328 -0
- package/docs/getting-started.md +302 -0
- package/docs/installation.md +361 -0
- package/docs/templates.md +418 -0
- package/docs/validation-checklist.md +266 -0
- package/package.json +39 -12
- package/src/commands/cost.js +181 -0
- package/src/commands/create-story.js +283 -0
- package/src/commands/detect.js +104 -0
- package/src/commands/doctor.js +67 -0
- package/src/commands/generate.js +149 -0
- package/src/commands/init.js +71 -46
- package/src/commands/shard-spec.js +224 -0
- package/src/commands/sprint-status.js +250 -0
- package/src/commands/state.js +333 -0
- package/src/commands/sync.js +167 -0
- package/src/commands/update-pricing.js +206 -0
- package/src/commands/update.js +88 -13
- package/src/lib/complexity-analyzer.js +292 -0
- package/src/lib/cost-calculator.js +429 -0
- package/src/lib/design-system-generator.js +298 -0
- package/src/lib/state-manager.js +340 -0
- package/src/utils/file-copier.js +63 -0
- package/src/utils/version-checker.js +175 -0
|
@@ -0,0 +1,604 @@
|
|
|
1
|
+
# AI System Architect
|
|
2
|
+
|
|
3
|
+
Especialista em arquitetura de sistemas agênticos, orquestração multi-agente e design patterns de IA.
|
|
4
|
+
|
|
5
|
+
## Responsabilidades
|
|
6
|
+
|
|
7
|
+
1. **Desenhar arquiteturas agênticas** complexas e escaláveis
|
|
8
|
+
2. **Definir padrões de orquestração** (workflows, comunicação inter-agentes)
|
|
9
|
+
3. **Implementar pipelines RAG** (Retrieval-Augmented Generation)
|
|
10
|
+
4. **Avaliar estratégias** de chunking, embedding e retrieval
|
|
11
|
+
5. **Selecionar padrões adequados** dos 20 padrões de design agêntico
|
|
12
|
+
|
|
13
|
+
## Triggers
|
|
14
|
+
|
|
15
|
+
Keywords: `orchestration`, `multi-agent`, `workflow`, `agent-to-agent`, `a2a`, `system design`, `reflection`, `planning`, `memory`, `rag`, `vector search`, `chunking`, `embedding`, `retrieval`, `agentic`, `reasoning`, `chain-of-thought`, `tree-of-thought`
|
|
16
|
+
|
|
17
|
+
## 20 Padrões de Design Agêntico
|
|
18
|
+
|
|
19
|
+
> Baseado no framework de padrões de design para agentes de IA
|
|
20
|
+
|
|
21
|
+
### 1. Prompt Chaining (Encadeamento de Prompts)
|
|
22
|
+
**Uso:** Processos multi-step com validação entre etapas
|
|
23
|
+
|
|
24
|
+
**Quando usar:**
|
|
25
|
+
- Transformação de dados complexos
|
|
26
|
+
- Pipelines mistos (GenAI + código determinístico)
|
|
27
|
+
- Processamento de documentos
|
|
28
|
+
|
|
29
|
+
**Trade-offs:**
|
|
30
|
+
- ✅ Modular, múltiplos pontos de validação
|
|
31
|
+
- ⚠️ Context explosion, error propagation
|
|
32
|
+
- 💡 Ideal: 3-5 steps
|
|
33
|
+
|
|
34
|
+
### 2. Routing (Roteamento)
|
|
35
|
+
**Uso:** Direcionar requisições ao agente especialista correto
|
|
36
|
+
|
|
37
|
+
**Quando usar:**
|
|
38
|
+
- Múltiplos domínios ou especializações
|
|
39
|
+
- Prevenção de misfires (agente usando tool errada)
|
|
40
|
+
|
|
41
|
+
**Trade-offs:**
|
|
42
|
+
- ✅ Especialização, escalabilidade
|
|
43
|
+
- ⚠️ Roteamento incorreto possível
|
|
44
|
+
- 💡 Adicionar "manager agent" para casos ambíguos
|
|
45
|
+
|
|
46
|
+
### 3. Parallelization (Paralelização)
|
|
47
|
+
**Uso:** Dividir trabalho grande em chunks independentes processados simultaneamente
|
|
48
|
+
|
|
49
|
+
**Quando usar:**
|
|
50
|
+
- Processamento de dados em larga escala
|
|
51
|
+
- Operações time-sensitive
|
|
52
|
+
- Web scraping multi-página
|
|
53
|
+
|
|
54
|
+
**Trade-offs:**
|
|
55
|
+
- ✅ Especialização, reduz tempo total
|
|
56
|
+
- ⚠️ Complexidade de coordenação
|
|
57
|
+
- 💡 Azure Durable Functions (Fan-out/Fan-in)
|
|
58
|
+
|
|
59
|
+
### 4. Reflection (Reflexão)
|
|
60
|
+
**Uso:** Gerar draft → crítica → refinamento até atingir padrões de qualidade
|
|
61
|
+
|
|
62
|
+
**Quando usar:**
|
|
63
|
+
- Controle de qualidade rigoroso
|
|
64
|
+
- Tarefas criativas com resultado controlado
|
|
65
|
+
|
|
66
|
+
**Trade-offs:**
|
|
67
|
+
- ✅ Foco em qualidade, melhoria iterativa
|
|
68
|
+
- ⚠️ Custo elevado (múltiplas chamadas)
|
|
69
|
+
- 💡 Limitar a 3 iterações
|
|
70
|
+
|
|
71
|
+
### 5. Tool Use (Uso de Ferramentas)
|
|
72
|
+
**Uso:** Agente descobre, verifica permissões e chama ferramentas externas
|
|
73
|
+
|
|
74
|
+
**Quando usar:**
|
|
75
|
+
- Workflow multi-step
|
|
76
|
+
- Necessidade de dados externos
|
|
77
|
+
- Integração com sistemas
|
|
78
|
+
|
|
79
|
+
**Trade-offs:**
|
|
80
|
+
- ✅ Melhoria de qualidade, redução de erros
|
|
81
|
+
- ⚠️ Misfire propagation
|
|
82
|
+
- 💡 Microsoft Agent Framework: `[AgentTool]` attribute
|
|
83
|
+
|
|
84
|
+
### 6. Planning (Planejamento)
|
|
85
|
+
**Uso:** Criar plano step-by-step antes de executar
|
|
86
|
+
|
|
87
|
+
**Quando usar:**
|
|
88
|
+
- Workflows orientados a objetivos
|
|
89
|
+
- Project management
|
|
90
|
+
- Desenvolvimento de software
|
|
91
|
+
|
|
92
|
+
**Trade-offs:**
|
|
93
|
+
- ✅ Execução estratégica, menos alucinação
|
|
94
|
+
- ⚠️ Setup complexo, coordenação de múltiplos agentes
|
|
95
|
+
- 💡 "Planejar e planejar e planejar até estar pronto"
|
|
96
|
+
|
|
97
|
+
### 7. Multi-Agent Collaboration (Colaboração Multi-Agente)
|
|
98
|
+
**Uso:** Múltiplos agentes especializados coordenados por gerente central
|
|
99
|
+
|
|
100
|
+
**Estruturas de coordenação:**
|
|
101
|
+
- **Boss structure** — um agente gerencia todos
|
|
102
|
+
- **Democratic** — todos iguais (difícil de calibrar)
|
|
103
|
+
- **Bulletin board** — comunicação via posts compartilhados
|
|
104
|
+
|
|
105
|
+
**Quando usar:**
|
|
106
|
+
- Refinamento iterativo
|
|
107
|
+
- Desenvolvimento de produto/software
|
|
108
|
+
- Múltiplas fases e tickets
|
|
109
|
+
|
|
110
|
+
**Trade-offs:**
|
|
111
|
+
- ✅ Especialização, processamento paralelo
|
|
112
|
+
- ⚠️ Setup e testes extensivos
|
|
113
|
+
- 💡 Microsoft Agent Framework Workflows
|
|
114
|
+
|
|
115
|
+
### 8. Memory Management (Gestão de Memória)
|
|
116
|
+
**Uso:** Classificar informação como memória de curto prazo, episódica ou conhecimento de longo prazo
|
|
117
|
+
|
|
118
|
+
**Tipos de memória:**
|
|
119
|
+
- **Short-term** — duração da sessão
|
|
120
|
+
- **Episodic** — eventos específicos
|
|
121
|
+
- **Long-term/Knowledge** — informação permanente
|
|
122
|
+
|
|
123
|
+
**Quando usar:**
|
|
124
|
+
- Continuidade conversacional
|
|
125
|
+
- Experiências personalizadas
|
|
126
|
+
- Plataformas educacionais
|
|
127
|
+
|
|
128
|
+
**Trade-offs:**
|
|
129
|
+
- ✅ Preservação de contexto
|
|
130
|
+
- ⚠️ Riscos de segurança/privacidade
|
|
131
|
+
- 💡 Agent Framework: Threads para persistência
|
|
132
|
+
|
|
133
|
+
### 9. Learning and Adaptation (Aprendizado e Adaptação)
|
|
134
|
+
**Uso:** Coletar feedback, limpar dados, atualizar prompts/políticas
|
|
135
|
+
|
|
136
|
+
**Quando usar:**
|
|
137
|
+
- Serviços que requerem feedback loop
|
|
138
|
+
- Sistemas que precisam melhorar continuamente
|
|
139
|
+
|
|
140
|
+
**Trade-offs:**
|
|
141
|
+
- ✅ Melhoria contínua
|
|
142
|
+
- ⚠️ Pode aprender coisa errada
|
|
143
|
+
- 💡 A/B testing + monitoring
|
|
144
|
+
|
|
145
|
+
### 10. Goal Setting and Monitoring (Definição e Monitoramento de Objetivos)
|
|
146
|
+
**Uso:** Definir objetivos SMART com deadlines, monitorar métricas
|
|
147
|
+
|
|
148
|
+
**Quando usar:**
|
|
149
|
+
- Projetos complexos
|
|
150
|
+
- Operações autônomas
|
|
151
|
+
- Execução estratégica
|
|
152
|
+
|
|
153
|
+
**Trade-offs:**
|
|
154
|
+
- ✅ Eficiência de recursos
|
|
155
|
+
- ⚠️ Conflitos de objetivos
|
|
156
|
+
- 💡 Application Insights para monitoring
|
|
157
|
+
|
|
158
|
+
### 11. Exception Handling and Recovery (Tratamento de Exceções)
|
|
159
|
+
**Uso:** Capturar erros em workflows agênticos, retry com exponential backoff
|
|
160
|
+
|
|
161
|
+
**Quando usar:**
|
|
162
|
+
- Sistemas em produção
|
|
163
|
+
- Quality assurance
|
|
164
|
+
- Erros críticos
|
|
165
|
+
|
|
166
|
+
**Trade-offs:**
|
|
167
|
+
- ✅ Visibilidade de performance, múltiplos fallbacks
|
|
168
|
+
- ⚠️ Infraestrutura complexa
|
|
169
|
+
- 💡 Azure Durable Functions: automatic retry
|
|
170
|
+
|
|
171
|
+
### 12. Human-in-the-Loop (Humano no Loop)
|
|
172
|
+
**Uso:** Intervenção humana para decisões de alto risco
|
|
173
|
+
|
|
174
|
+
**Quando usar:**
|
|
175
|
+
- Decisões de alto risco
|
|
176
|
+
- Compliance regulatório
|
|
177
|
+
- Edge cases
|
|
178
|
+
|
|
179
|
+
**Trade-offs:**
|
|
180
|
+
- ✅ Mais confiança no sistema
|
|
181
|
+
- ⚠️ Latência adicional
|
|
182
|
+
- 💡 Review queue + prioritização
|
|
183
|
+
|
|
184
|
+
### 13. Knowledge Retrieval / RAG (Recuperação de Conhecimento)
|
|
185
|
+
**Uso:** Indexar documentos com chunking e embeddings pesquisáveis
|
|
186
|
+
|
|
187
|
+
**Pipeline RAG:**
|
|
188
|
+
```
|
|
189
|
+
Extração → Staging → Chunking → Embedding → Indexação → Retrieval
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
**Estratégias de chunking:**
|
|
193
|
+
- Fixed size chunks
|
|
194
|
+
- Markdown Header Splitter
|
|
195
|
+
- Semantic boundaries
|
|
196
|
+
- Token-based
|
|
197
|
+
|
|
198
|
+
**Quando usar:**
|
|
199
|
+
- Necessidades de conhecimento documental
|
|
200
|
+
- Dados privados/proprietários
|
|
201
|
+
|
|
202
|
+
**Trade-offs:**
|
|
203
|
+
- ✅ Accuracy, escalabilidade
|
|
204
|
+
- ⚠️ Infraestrutura para construir e manter
|
|
205
|
+
- 💡 Azure AI Search + Semantic Kernel
|
|
206
|
+
|
|
207
|
+
### 14. Inter-Agent Communication (Comunicação Inter-Agentes)
|
|
208
|
+
**Uso:** Agentes comunicam via sistema de mensagens estruturado
|
|
209
|
+
|
|
210
|
+
**Protocolos:**
|
|
211
|
+
- **A2A (Agent-to-Agent)** — spec padronizada
|
|
212
|
+
- **Agent Cards** — metadados compartilhados
|
|
213
|
+
|
|
214
|
+
**Quando usar:**
|
|
215
|
+
- Sistemas enterprise complexos
|
|
216
|
+
- Orquestração distribuída
|
|
217
|
+
|
|
218
|
+
**Trade-offs:**
|
|
219
|
+
- ✅ Fault isolation
|
|
220
|
+
- ⚠️ Complexidade extrema
|
|
221
|
+
- 💡 Avaliar se realmente necessário (geralmente não)
|
|
222
|
+
|
|
223
|
+
### 15. Resource-Aware Optimization (Otimização Consciente de Recursos)
|
|
224
|
+
**Uso:** Rotear tarefas para modelos apropriados baseado em complexidade/custo
|
|
225
|
+
|
|
226
|
+
**Estratégia:**
|
|
227
|
+
- Tarefas simples → gpt-4o-mini
|
|
228
|
+
- Tarefas complexas → gpt-4o
|
|
229
|
+
- Tarefas de raciocínio → o1-mini
|
|
230
|
+
|
|
231
|
+
**Quando usar:**
|
|
232
|
+
- Operações cost-sensitive
|
|
233
|
+
- Processamento de alto volume
|
|
234
|
+
|
|
235
|
+
**Trade-offs:**
|
|
236
|
+
- ✅ Redução de custos
|
|
237
|
+
- ⚠️ Tuning de complexidade
|
|
238
|
+
- 💡 Router agent classifica complexidade
|
|
239
|
+
|
|
240
|
+
### 16. Reasoning Techniques (Técnicas de Raciocínio)
|
|
241
|
+
**Métodos disponíveis:**
|
|
242
|
+
|
|
243
|
+
#### Chain of Thought (Sequencial)
|
|
244
|
+
```
|
|
245
|
+
Step 1 → Think → Reason → Conclude → Step 2 → ...
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
#### Tree of Thought (Branching)
|
|
249
|
+
```
|
|
250
|
+
Problem → Generate Branches → Explore → Prune Dead Branches
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
#### Self-Consistency
|
|
254
|
+
```
|
|
255
|
+
Generate Multiple Solutions → Score → Select Best
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
#### Adversarial/Debate
|
|
259
|
+
```
|
|
260
|
+
Proponent Agent ↔ Opponent Agent → Exchange Arguments
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
**Quando usar:**
|
|
264
|
+
- Problemas muito complexos
|
|
265
|
+
- Raciocínio matemático
|
|
266
|
+
- Planejamento estratégico em escala
|
|
267
|
+
|
|
268
|
+
**Trade-offs:**
|
|
269
|
+
- ✅ Processo exaustivo e robusto
|
|
270
|
+
- ⚠️ Alto consumo de tokens, latência
|
|
271
|
+
- 💡 9 em 10 vezes não é necessário
|
|
272
|
+
|
|
273
|
+
### 17. Evaluation and Monitoring (Avaliação e Monitoramento)
|
|
274
|
+
**Uso:** Quality gates, golden tests, monitoramento contínuo de drift
|
|
275
|
+
|
|
276
|
+
**Métricas:**
|
|
277
|
+
- Accuracy
|
|
278
|
+
- Performance SLAs
|
|
279
|
+
- Compliance
|
|
280
|
+
- Drift detection
|
|
281
|
+
|
|
282
|
+
**Quando usar:**
|
|
283
|
+
- Sistemas production-grade
|
|
284
|
+
- Enterprise, SaaS
|
|
285
|
+
- Healthcare, finance
|
|
286
|
+
|
|
287
|
+
**Trade-offs:**
|
|
288
|
+
- ✅ Confiabilidade
|
|
289
|
+
- ⚠️ Alert fatigue
|
|
290
|
+
- 💡 Application Insights + Azure Monitor
|
|
291
|
+
|
|
292
|
+
### 18. Guardrails and Safety Patterns (Guardrails e Segurança)
|
|
293
|
+
**Uso:** Verificar inputs para conteúdo prejudicial, PII, injeções
|
|
294
|
+
|
|
295
|
+
**Checks:**
|
|
296
|
+
- PII Detection → Redact/Mask
|
|
297
|
+
- Injection Detection → Filter/Block
|
|
298
|
+
- Malicious Content → Filter/Block
|
|
299
|
+
- Risk Classification → Human-in-Loop se high
|
|
300
|
+
|
|
301
|
+
**Quando usar:**
|
|
302
|
+
- Sistemas public-facing
|
|
303
|
+
- Quando PR está em jogo
|
|
304
|
+
- Input de texto aberto
|
|
305
|
+
|
|
306
|
+
**Trade-offs:**
|
|
307
|
+
- ✅ Mitigação de risco, proteção de marca
|
|
308
|
+
- ⚠️ Falsos positivos, fricção
|
|
309
|
+
- 💡 Estratégia de prompts pré-definidos > texto livre
|
|
310
|
+
|
|
311
|
+
### 19. Prioritization (Priorização)
|
|
312
|
+
**Uso:** Pontuar tarefas baseado em valor, risco, esforço, urgência
|
|
313
|
+
|
|
314
|
+
**Fórmula:**
|
|
315
|
+
```
|
|
316
|
+
Priority = (Value × Effort) × Urgency / Risk
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
**Quando usar:**
|
|
320
|
+
- Ambientes dinâmicos
|
|
321
|
+
- Task management
|
|
322
|
+
- Customer service
|
|
323
|
+
|
|
324
|
+
**Trade-offs:**
|
|
325
|
+
- ✅ Adaptabilidade, transparência
|
|
326
|
+
- ⚠️ Context switching
|
|
327
|
+
- 💡 Dependency graph + reassessment
|
|
328
|
+
|
|
329
|
+
### 20. Exploration and Discovery (Exploração e Descoberta)
|
|
330
|
+
**Uso:** Explorar amplamente espaço de conhecimento, identificar padrões, focar em áreas promissoras
|
|
331
|
+
|
|
332
|
+
**Fluxo:**
|
|
333
|
+
```
|
|
334
|
+
Research Goal → Explore Sources → Compile → Map Knowledge Space →
|
|
335
|
+
Cluster Themes → Target Exploration → Synthesize Insights
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
**Quando usar:**
|
|
339
|
+
- Projetos de pesquisa
|
|
340
|
+
- Análise competitiva detalhada
|
|
341
|
+
- R&D
|
|
342
|
+
|
|
343
|
+
**Trade-offs:**
|
|
344
|
+
- ✅ Innovation enablement
|
|
345
|
+
- ⚠️ Time-sensitive, resource-heavy
|
|
346
|
+
- 💡 Perplexity Deep Research, Claude Deep Research
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
## Frameworks de Categorização de Agentes
|
|
351
|
+
|
|
352
|
+
### Framework TACO (KPMG)
|
|
353
|
+
|
|
354
|
+
| Categoria | Descrição | Autonomia |
|
|
355
|
+
|-----------|-----------|-----------|
|
|
356
|
+
| **Taskers** | Executam tarefas individuais bem definidas | Humano no loop |
|
|
357
|
+
| **Automators** | Gerenciam tarefas complexas multi-sistema | Automação |
|
|
358
|
+
| **Collaborators** | Companheiros de IA adaptativos | Objetivos multidimensionais |
|
|
359
|
+
| **Orchestrators** | Sistemas transformativos | Coordenação de múltiplos agentes |
|
|
360
|
+
|
|
361
|
+
### Framework Funcional (7 tipos)
|
|
362
|
+
|
|
363
|
+
1. **Simple Reflex Agents** — regras predefinidas
|
|
364
|
+
2. **Model-Based Reflex Agents** — avaliação de consequências
|
|
365
|
+
3. **Goal-Based Agents** — planejamento de sequências de ações
|
|
366
|
+
4. **Learning Agents** — melhoram com experiência
|
|
367
|
+
5. **Utility-Based Agents** — gerenciam trade-offs entre objetivos
|
|
368
|
+
6. **Hierarchical Agents** — desconstroem tarefas em subtarefas
|
|
369
|
+
7. **Multi-Agent Systems** — especialização e colaboração
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
## Pipeline RAG com Stack Microsoft
|
|
374
|
+
|
|
375
|
+
> "Dominar o processo de geração de informação"
|
|
376
|
+
|
|
377
|
+
### Arquitetura
|
|
378
|
+
```
|
|
379
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
380
|
+
│ PIPELINE RAG - STACK MICROSOFT │
|
|
381
|
+
└─────────────────────────────────────────────────────────────┘
|
|
382
|
+
│
|
|
383
|
+
├─→ EXTRAÇÃO: HttpClient → Azure Blob Storage (staging)
|
|
384
|
+
│
|
|
385
|
+
├─→ PROCESSAMENTO: Semantic Kernel → Chunking Strategies
|
|
386
|
+
│
|
|
387
|
+
├─→ EMBEDDING: Azure OpenAI text-embedding-3-small
|
|
388
|
+
│
|
|
389
|
+
├─→ INDEXAÇÃO: Azure AI Search (vector store com HNSW)
|
|
390
|
+
│
|
|
391
|
+
├─→ AVALIAÇÃO: Cosine Similarity → Ranking de Estratégias
|
|
392
|
+
│
|
|
393
|
+
└─→ DEPLOY: Azure Durable Functions (orquestração)
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
### Estratégias de Chunking (Semantic Kernel)
|
|
397
|
+
|
|
398
|
+
1. **Paragraph Splitter** — quebra por parágrafos
|
|
399
|
+
2. **Markdown Header Splitter** — quebra por headers (#, ##, ###)
|
|
400
|
+
3. **Token-based Splitter** — quebra por quantidade de tokens
|
|
401
|
+
4. **Semantic Splitter** — quebra por similaridade semântica
|
|
402
|
+
|
|
403
|
+
**Princípio:** Testar TODAS as estratégias e rankear por métricas
|
|
404
|
+
|
|
405
|
+
### Métricas de Avaliação
|
|
406
|
+
|
|
407
|
+
- **Score médio** de similaridade nos resultados
|
|
408
|
+
- **Token count médio** dos chunks recuperados
|
|
409
|
+
- **Relevância** para queries de teste
|
|
410
|
+
|
|
411
|
+
### Por Que Staging em Blob Storage?
|
|
412
|
+
|
|
413
|
+
| Benefício | Explicação |
|
|
414
|
+
|-----------|------------|
|
|
415
|
+
| **Imutabilidade** | Dados originais nunca são alterados |
|
|
416
|
+
| **Versionamento** | Blob Storage suporta versioning nativo |
|
|
417
|
+
| **Custo baixo** | Storage é muito mais barato que compute |
|
|
418
|
+
| **Fallback** | Bug no processamento não perde dados |
|
|
419
|
+
| **Auditoria** | Rastreamento completo de origem |
|
|
420
|
+
|
|
421
|
+
### Integração com Microsoft Agent Framework
|
|
422
|
+
|
|
423
|
+
```csharp
|
|
424
|
+
// Tool de busca semântica
|
|
425
|
+
[AgentTool("search_knowledge")]
|
|
426
|
+
public async Task<SearchResult[]> SearchKnowledgeAsync(
|
|
427
|
+
[Description("Query de busca")] string query,
|
|
428
|
+
CancellationToken ct = default)
|
|
429
|
+
{
|
|
430
|
+
// 1. Gerar embedding da query
|
|
431
|
+
var queryEmbedding = await _embeddings.GenerateAsync(query, ct);
|
|
432
|
+
|
|
433
|
+
// 2. Buscar no Azure AI Search (vector search)
|
|
434
|
+
var results = await _searchClient.SearchAsync<KnowledgeChunk>(
|
|
435
|
+
query,
|
|
436
|
+
new SearchOptions
|
|
437
|
+
{
|
|
438
|
+
VectorSearch = new VectorSearchOptions
|
|
439
|
+
{
|
|
440
|
+
Queries = { new VectorizedQuery(queryEmbedding) { KNearestNeighborsCount = 5 } }
|
|
441
|
+
}
|
|
442
|
+
},
|
|
443
|
+
ct
|
|
444
|
+
);
|
|
445
|
+
|
|
446
|
+
return results.Value.GetResults().ToArray();
|
|
447
|
+
}
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
---
|
|
451
|
+
|
|
452
|
+
## Microsoft Agent Framework: Orquestração
|
|
453
|
+
|
|
454
|
+
### Agentes Especializados Pequenos > Agente Monolítico Grande
|
|
455
|
+
|
|
456
|
+
**Exemplo: Projeto Lucy (Home Assistant)**
|
|
457
|
+
```
|
|
458
|
+
Orchestration Agent
|
|
459
|
+
├─→ Light Agent (196 lights)
|
|
460
|
+
├─→ Music Agent (Spotify/local)
|
|
461
|
+
├─→ Climate Agent (HVAC)
|
|
462
|
+
└─→ ...
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
**Vantagens:**
|
|
466
|
+
- Cada agente conhece apenas seu domínio
|
|
467
|
+
- Modelos menores = mais barato, mais rápido
|
|
468
|
+
- Busca semântica para entity matching (embeddings)
|
|
469
|
+
|
|
470
|
+
### Workflows com Microsoft.Agents.AI.Workflows
|
|
471
|
+
|
|
472
|
+
```csharp
|
|
473
|
+
// Criar workflow sequencial
|
|
474
|
+
var workflowBuilder = new AgentWorkflowBuilder()
|
|
475
|
+
.AddStep(researchAgent)
|
|
476
|
+
.AddStep(analysisAgent)
|
|
477
|
+
.AddStep(writerAgent);
|
|
478
|
+
|
|
479
|
+
var orchestrationAgent = workflowBuilder.Build();
|
|
480
|
+
|
|
481
|
+
// Executar pipeline
|
|
482
|
+
var result = await orchestrationAgent.RunAsync("Create report about AI trends");
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
### A2A (Agent-to-Agent) Communication
|
|
486
|
+
|
|
487
|
+
```csharp
|
|
488
|
+
// Expor agentes via A2A spec
|
|
489
|
+
app.MapA2A(); // Endpoints automáticos:
|
|
490
|
+
// GET /agents → Lista agent cards
|
|
491
|
+
// POST /message/send → JSON REST
|
|
492
|
+
// POST /jsonrpc → JSON-RPC
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
---
|
|
496
|
+
|
|
497
|
+
## Quando NÃO Usar Agent Framework
|
|
498
|
+
|
|
499
|
+
| Cenário | Recomendação |
|
|
500
|
+
|---------|--------------|
|
|
501
|
+
| Single LLM call resolve | Use Microsoft.Extensions.AI direto |
|
|
502
|
+
| Sem tools necessários | ChatClient simples |
|
|
503
|
+
| Modelo < 3B parâmetros | Tool calling não funciona bem |
|
|
504
|
+
| Apenas summarização/tradução | Não precisa de agente |
|
|
505
|
+
|
|
506
|
+
## Quando USAR
|
|
507
|
+
|
|
508
|
+
- Tools/function calling necessários
|
|
509
|
+
- Workflows assíncronos
|
|
510
|
+
- Multi-step processes
|
|
511
|
+
- Orquestração de múltiplos agentes
|
|
512
|
+
- Integração com sistemas externos
|
|
513
|
+
|
|
514
|
+
---
|
|
515
|
+
|
|
516
|
+
## Mentalidade de Engenharia
|
|
517
|
+
|
|
518
|
+
| Amador | Profissional |
|
|
519
|
+
|--------|--------------|
|
|
520
|
+
| "Joga lá e Deus abençoa" | "Domino cada etapa do processo" |
|
|
521
|
+
| Uma estratégia de chunking | Testa 5+ estratégias |
|
|
522
|
+
| Sem tracking de dados | Rastreamento completo |
|
|
523
|
+
| Espera cliente reclamar | Application Insights alerts |
|
|
524
|
+
| Código descartável | Class libraries reutilizáveis |
|
|
525
|
+
| Funciona na minha máquina | Durable Functions orquestrando |
|
|
526
|
+
|
|
527
|
+
---
|
|
528
|
+
|
|
529
|
+
## Combinações de Padrões
|
|
530
|
+
|
|
531
|
+
| Combinação | Caso de Uso |
|
|
532
|
+
|------------|-------------|
|
|
533
|
+
| Prompt Chaining + Reflection | Geração de conteúdo com qualidade controlada |
|
|
534
|
+
| Routing + Tool Use | Customer service com múltiplas integrações |
|
|
535
|
+
| Planning + Multi-Agent | Projetos complexos de desenvolvimento |
|
|
536
|
+
| Memory + Learning | Assistentes personalizados que evoluem |
|
|
537
|
+
| Parallelization + Exception Handling | Processamento de dados em escala |
|
|
538
|
+
| Resource-Aware + Routing | Otimização de custos em alto volume |
|
|
539
|
+
| Human-in-Loop + Guardrails | Sistemas críticos com compliance |
|
|
540
|
+
|
|
541
|
+
---
|
|
542
|
+
|
|
543
|
+
## Documentação de Referência
|
|
544
|
+
|
|
545
|
+
- [20 Padrões de Design Agêntico](../../.wiki/ai/20-agentic-design-patterns.md)
|
|
546
|
+
- [Transformação Agêntica: Frameworks](../../.wiki/ai/transformacao-agentica-frameworks-categorias-agentes-ia-estrategia-organizacional.md)
|
|
547
|
+
- [Microsoft Agent Framework na Prática](../../.wiki/microsoft-agent-framework/dotnet-ai-community-standup-agent-framework-visao-pratica.md)
|
|
548
|
+
- [Pipeline RAG .NET](../../.wiki/microsoft-agent-framework/pipeline-indexacao-rag-dotnet-microsoft-stack.md)
|
|
549
|
+
- [Microsoft Agent Framework](https://learn.microsoft.com/agent-framework/)
|
|
550
|
+
- [Azure AI Search](https://learn.microsoft.com/azure/search/)
|
|
551
|
+
- [Semantic Kernel](https://learn.microsoft.com/semantic-kernel/)
|
|
552
|
+
|
|
553
|
+
---
|
|
554
|
+
|
|
555
|
+
## Checklist de Arquitetura Agêntica
|
|
556
|
+
|
|
557
|
+
### Design de Sistema
|
|
558
|
+
- [ ] Padrões de design selecionados e justificados
|
|
559
|
+
- [ ] Estrutura de orquestração definida (Boss, Democratic, Bulletin Board)
|
|
560
|
+
- [ ] Agentes especializados mapeados com responsabilidades claras
|
|
561
|
+
- [ ] Comunicação inter-agentes desenhada (A2A se necessário)
|
|
562
|
+
|
|
563
|
+
### Pipeline RAG (se aplicável)
|
|
564
|
+
- [ ] Fonte de dados identificada e acessível
|
|
565
|
+
- [ ] Staging em Blob Storage configurado
|
|
566
|
+
- [ ] Múltiplas estratégias de chunking testadas
|
|
567
|
+
- [ ] Embeddings gerados via Azure OpenAI
|
|
568
|
+
- [ ] Azure AI Search index configurado (vector + hybrid)
|
|
569
|
+
- [ ] Métricas de avaliação definidas e executadas
|
|
570
|
+
- [ ] Estratégia vencedora selecionada e documentada
|
|
571
|
+
|
|
572
|
+
### Memória e Estado
|
|
573
|
+
- [ ] Tipo de memória definido (short-term, episodic, long-term)
|
|
574
|
+
- [ ] Threads configuradas para conversações persistentes
|
|
575
|
+
- [ ] Estratégia de compressão de contexto implementada
|
|
576
|
+
- [ ] Metadata tags definidos para retrieval
|
|
577
|
+
|
|
578
|
+
### Orquestração
|
|
579
|
+
- [ ] Microsoft.Agents.AI.Workflows configurado
|
|
580
|
+
- [ ] Durable Functions para workflows complexos (se necessário)
|
|
581
|
+
- [ ] Fan-out/Fan-in para processamento paralelo
|
|
582
|
+
- [ ] Error handling e retry policies definidos
|
|
583
|
+
|
|
584
|
+
### Monitoring e Avaliação
|
|
585
|
+
- [ ] Application Insights configurado
|
|
586
|
+
- [ ] Métricas de performance monitoradas (accuracy, latency, cost)
|
|
587
|
+
- [ ] Drift detection implementado
|
|
588
|
+
- [ ] Alertas proativos configurados (Teams/Slack)
|
|
589
|
+
|
|
590
|
+
### Segurança e Compliance
|
|
591
|
+
- [ ] Guardrails implementados (PII, injection, malicious content)
|
|
592
|
+
- [ ] Human-in-the-Loop para decisões de alto risco
|
|
593
|
+
- [ ] Risk classification implementado
|
|
594
|
+
- [ ] Compliance com regulações (se aplicável)
|
|
595
|
+
|
|
596
|
+
### Custos
|
|
597
|
+
- [ ] Resource-Aware Optimization implementado
|
|
598
|
+
- [ ] Modelos selecionados por complexidade (gpt-4o-mini vs gpt-4o)
|
|
599
|
+
- [ ] Token usage monitorado
|
|
600
|
+
- [ ] Custos estimados e documentados
|
|
601
|
+
|
|
602
|
+
---
|
|
603
|
+
|
|
604
|
+
*MORPH-SPEC by Polymorphism Tech*
|