Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
8fbf6c4
chore: publish from staged
github-actions[bot] Apr 17, 2026
0f4adc2
chore: publish from staged
github-actions[bot] May 21, 2026
7fc4f32
feat: integrate RAG Azure Builder plugin with skills and onboarding a…
Sertxito May 21, 2026
35fe456
merge: resolve conflicts and integrate RAG Azure Builder plugin
Sertxito May 21, 2026
866a47d
feat: integrate complete RAG-Azure-Builder with 8 agents and 16 skills
Sertxito May 21, 2026
c90bdae
feat: translate RAG-Azure-Builder to English - agents, skills, and in…
Sertxito May 21, 2026
e1ce5ae
Merge remote-tracking branch 'upstream/staged'
Sertxito May 22, 2026
ec15c76
fix: add missing YAML frontmatter to rag-api-server, rag-diagnostics,…
Sertxito May 22, 2026
1be8c9a
fix: correct agent paths in rag-azure-builder plugin.json (remove dou…
Sertxito May 22, 2026
2f38e87
fix: restore 15 plugin.json files corrupted by merge conflict markers
Sertxito May 22, 2026
5915b8e
chore: regenerate marketplace.json, README.plugins and README.skills …
Sertxito May 22, 2026
d8bc879
fix: translate RAG instruction files to English, remove materialized …
Sertxito May 22, 2026
b100981
fix: normalize CRLF to LF line endings in RAG instruction files
Sertxito May 22, 2026
de0a07c
fix: restore corrupted plugin.json files and remove incomplete plugin…
Sertxito May 22, 2026
b9f5310
fix: add YAML frontmatter to 8 RAG instruction files
Sertxito May 22, 2026
6f4e31c
fix: normalize line endings from CRLF to LF
Sertxito May 22, 2026
c38a981
fix: correct applyTo pattern for rag-indexer-specialist agent
Sertxito May 22, 2026
66ddb15
fix: remove materialized plugin agent and skill files - use declarati…
Sertxito May 22, 2026
7cb784a
fix: correct Spanish spelling errors in RAG documentation (Clases→Cla…
Sertxito May 22, 2026
fbcea1e
fix: translate RAG skills to English (frontmatter and diagnostics con…
Sertxito May 22, 2026
dbbc1ac
fix: fully translate rag-report-generator and rag-diagnostics to English
Sertxito May 22, 2026
72442be
fix: translate rag-deployment-templates and rag-qa-engine description…
Sertxito May 22, 2026
7671a14
fix: translate rag-architecture-optimizer and rag-cost-scaler descrip…
Sertxito May 22, 2026
f6610d4
fix: update submodule references after RAG SKILL.md translation
Sertxito May 22, 2026
57f99a5
fix: update submodule references after final rag-qa-engine translation
Sertxito May 22, 2026
759cc23
fix: update submodule references after batch agent translation
Sertxito May 22, 2026
90a30fe
fix: translate remaining Spanish spelling errors in rag-report-genera…
Sertxito May 22, 2026
0d0039a
fix: translate remaining Spanish content in report-generator and upda…
Sertxito May 22, 2026
67f292d
chore: update submodule references
Sertxito May 22, 2026
e782b27
fix: translate all Spanish content in report-templates.py and update …
Sertxito May 22, 2026
1cc5f58
chore: update submodule references to latest translations
Sertxito May 22, 2026
2e817d0
chore: add Spanish translation terms to codespell ignore list
Sertxito May 22, 2026
2433a4e
fix: add Spanish translation words to codespell ignore-words-list
Sertxito May 22, 2026
897801a
chore: remove translate-py-content.py after successful use
Sertxito May 22, 2026
877dc1a
fix: translate remaining Spanish words flagged by codespell
Sertxito May 22, 2026
ff4d312
chore: update submodule references after Spanish word fixes
Sertxito May 22, 2026
841d2fe
chore: update codespellrc to ignore additional Spanish technical terms
Sertxito May 22, 2026
34596ab
fix: translate all SKILL.md files from Spanish to English for codespe…
Sertxito May 22, 2026
a8ebe0c
chore: update submodule references after SKILL.md translations
Sertxito May 22, 2026
96dbd4a
fix: remove non-ASCII character from .codespellrc to resolve encoding…
Sertxito May 22, 2026
ef888df
fix: update submodule references and .codespellrc encoding after comp…
Sertxito May 22, 2026
5ed5e46
fix: remove remaining materialized plugin files (phoenix-tracing, php…
Sertxito May 22, 2026
555f51f
fix: correct codespell errors - relevants, varios, Hace, Simular
Sertxito May 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .codespellrc
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

# categor - TypeScript template literal in website/src/scripts/pages/skills.ts:70 (categor${...length > 1 ? "ies" : "y"})

# aline - proper name (Aline Ávila, contributor)
# aline - proper name (Aline Avila, contributor)

# ative - part of "Declarative Agents" in TypeSpec M365 Copilot documentation (collections/typespec-m365-copilot.collection.md)

Expand Down Expand Up @@ -54,7 +54,7 @@

# CAF - Microsoft Cloud Adoption Framework acronym

ignore-words-list = numer,wit,aks,edn,ser,ois,gir,rouge,categor,aline,ative,afterall,deques,dateA,dateB,TE,FillIn,alle,vai,LOD,InOut,pixelX,aNULL,Wee,Sherif,queston,Vertexes,nin,FO,CAF,Parth
ignore-words-list = numer,wit,aks,edn,ser,ois,gir,rouge,categor,aline,ative,afterall,deques,dateA,dateB,TE,FillIn,alle,vai,LOD,InOut,pixelX,aNULL,Wee,Sherif,queston,Vertexes,nin,FO,CAF,Parth,accesible,profesional,fases,diagrama,validador,Dimensiones,Comando,Comandos,caracteres,Vectores,Componentes

# Skip certain files and directories

Expand Down
8 changes: 7 additions & 1 deletion .github/plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,7 @@
{
"name": "flowstudio-power-automate",
"source": "flowstudio-power-automate",
"description": "Give your AI agent full visibility into Power Automate cloud flows via the FlowStudio MCP server. Connect, debug, build, monitor health, and govern flows at scale action-level inputs and outputs, not just status codes.",
"description": "Give your AI agent full visibility into Power Automate cloud flows via the FlowStudio MCP server. Connect, debug, build, monitor health, and govern flows at scale ΓÇö action-level inputs and outputs, not just status codes.",
"version": "2.0.0"
},
{
Expand Down Expand Up @@ -648,6 +648,12 @@
"description": "Complete toolkit for building Model Context Protocol (MCP) servers in Python using the official SDK with FastMCP. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance.",
"version": "1.0.0"
},
{
"name": "rag-azure-builder",
"source": "rag-azure-builder",
"description": "Opinionated Azure RAG starter plugin with guided onboarding, indexing strategy, and grounded QA setup patterns.",
"version": "1.0.0"
},
{
"name": "react18-upgrade",
"source": "react18-upgrade",
Expand Down
1 change: 1 addition & 0 deletions RAG-Azure-Builder-src
Submodule RAG-Azure-Builder-src added at f75102
131 changes: 131 additions & 0 deletions agents/rag-azure-setup.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
---
name: 'RAG: Azure Setup'
description: 'Deploys Azure infrastructure for RAG: OpenAI, AI Search, Application Insights. Uses Bicep templates. Validates connectivity and generates credentials.'
model: 'claude-haiku-4.5'
tools: true
skills: ['rag-deployment-templates', 'rag-agent-instrumentation']
---

**RAG Reference:** [Retrieval-augmented Generation (RAG) in Azure AI Search - Microsoft Learn](https://learn.microsoft.com/en-us/azure/search/retrieval-augmented-generation-overview?tabs=videos)





## Purpose

Deploy complete Azure infrastructure for RAG **in one go**:

✅ Azure OpenAI Service (deployments of gpt-4o + text-embedding-3-small)
✅ Azure AI Search (for semantic search + indexing)
✅ Application Insights (observability and cost tracking)
✅ Storage Account (for document staging)

**Model availability verification:** Before deployment, verify that gpt-4o is available in your
target region. Run `python .github/skills/rag-cost-analyst/cost_analyzer.py`
or call `validate_region_models(["gpt-4o", "text-embedding-3-small"], region)`.

**Validates:** All services running + credentials stored

---

## When to Use

- `Deploy Azure infrastructure for RAG`
- `Configure OpenAI + Search + AppInsights`
- `Create production RAG environment`

---

## workflow

### 1. Validate Prerequisites (1 min)

```bash
az account show # Logged in?
az group list # Resource groups exist?
```

### 2. Collect configuration (2 min)

From `.env` or prompt:
```
AZURE_SUBSCRIPTION_ID=<your-subscription>
AZURE_RESOURCE_GROUP=rag-builder-rg
AZURE_REGION=eastus
OPENAI_TIER=S0
SEARCH_TIER=standard
SEARCH_REPLICAS=3
```

### 3. Deploy Bicep template (5-10 min)

```bash
cd infra/
./deploy.sh \
--resource-group rag-builder-rg \
--region eastus \
--openai-tier S0 \
--search-tier standard \
--search-replicas 3
```

### 4. Model Deployments (created by Bicep)

The Bicep template auto-creates these deployments:
- `gpt-4o` (GlobalStandard, capacity 10) — minimum quality model for RAG
- `text-embedding-3-small` (Standard, capacity 50) — vector embeddings

If you need to add additional deployments manually:
```bash
az cognitiveservices account deployment create \
--resource-group rag-builder-rg \
--name <openai-resource> \
--deployment-name gpt-4o \
--model-name gpt-4o \
--model-version 2024-08-06 \
--sku-name GlobalStandard \
--sku-capacity 10
```

### 5. Validate connectivity (1 min)

```python
from azure.openai import AzureOpenAI
from azure.search.documents import SearchClient

client = AzureOpenAI(...)
response = client.chat.completions.create(...) # ✅ Working?

search = SearchClient(...)
results = search.search("test") # ✅ Working?

from azure.monitor.opentelemetry import AzureMonitorTraceExporter
exporter = AzureMonitorTraceExporter(...) # ✅ Working?
```

### 6. Store credentials

Generate `.env` with:
```
AZURE_OPENAI_ENDPOINT=https://....openai.azure.com/
AZURE_OPENAI_API_KEY=...
OPENAI_CHAT_MODEL=gpt-4o
OPENAI_EMBEDDING_MODEL=text-embedding-3-small
AZURE_SEARCH_ENDPOINT=https://....search.windows.net
AZURE_SEARCH_KEY=...
AZURE_SEARCH_INDEX=rag-builder-index
APP_INSIGHTS_CONNECTION_STRING=...
STORAGE_ACCOUNT_NAME=...
STORAGE_ACCOUNT_KEY=...
```

---

## Troubleshooting

**Deployment fails with quota error**
→ Region may have no quota. Try another region in `.env`

**Cannot create OpenAI deployment**
→ Verify that the Cognitive Services account exists and is accessible
183 changes: 183 additions & 0 deletions agents/rag-chat.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
---
name: 'RAG: Conversational Chat'
description: 'Multi-turn conversational RAG chat. Maintains context, reformulates questions, enables follow-ups. For conversational document exploration.'
model: 'claude-opus-4.7'
tools: true
skills: ['rag-agent-instrumentation']
---

**RAG Reference:** [Retrieval-augmented Generation (RAG) in Azure AI Search - Microsoft Learn](https://learn.microsoft.com/en-us/azure/search/retrieval-augmented-generation-overview?tabs=videos)

## Purpose

**Multi-turn RAG chat** with context memory. Perfect for:

- Long conversations about documentation
- Follow-up questions ("Why?" → "How do I change?")
- Iterative topic exploration
- Complex question reformulation

## When to Use

```
copilot-cli run .github/agents/rag-chat.agent.md
```

Use this when you need:
- Conversation vs. one-off queries
- Multi-step reasoning
- Persistent context across questions

## workflow

### 1. Inicializa Chat

```
System: Inicializando RAG Chat...
✅ Conectado a Azure Search
✅ Conectado a Azure OpenAI
✅ Índice: rag-builder-index

Eres un asistente de documentación. Ayudarás a usuarios a explorar
políticas, procedimientos, y documentación corporativa mediante búsqueda
semántica. Mantén conversación natural, reformula preguntas complejas,
y sugiere temas relacionados.

Escribe tu pregunta (o 'exit' para salir):
```

### 2. Conversación Multi-Turno

**User:**
```
¿Cuál es la política de retención de datos?
```

**Assistant:**
```
Basado en la documentación, la política de retención es:

📋 Política de Retención de Datos (Encontrado en: retention-policy.pdf)

- **Datos personales**: 3 años después del último acceso
- **Logs de auditoría**: 7 años
- **Backups**: 30 días de retención (con 2 copias)
- **GDPR compliance**: Eliminación segura con certificado

¿Tienes preguntas adicionales? Puedo ayudarte con:
- Excepciones a la política
- Proceso de eliminación de datos
- Cumplimiento regulatorio
```

**User:**
```
¿Cómo solicitar una excepción?
```

**Assistant:**
```
Para solicitar una excepción (encontrado en: data-exceptions.md):

📋 Proceso de Solicitud

1. Completa formulario DPA-001 (disponible en SharePoint)
2. Justifica el motivo (legal, contractual, operacional)
3. Envía a data-governance@empresa.com
4. Tiempo de respuesta: 10 días hábiles

El sistema recordará el contexto de tu pregunta anterior
y mantendrá la conversación fluida.
```

### 3. Características

- **Memoria de Contexto**: Recuerda preguntas anteriores
- **Reformulación**: Interpreta preguntas ambiguas
- **search Semántica**: Extrae documentación relevant
- **Sugerencias Relacionadas**: Propone temas de seguimiento
- **Métricas**: Registra latencia, tokens, coste en AppInsights

### 4. Salir

```
User: exit
Chat guardado en: outputs/chat-history-2026-05-13.json
Tokens totales: 1,240
Coste total: $0.31
Session guardada en AppInsights
```

---

## Arquitectura

```
User Input
[Context Manager] → Mantiene histórico de conversación
[Query Router] → ¿Reformular? ¿Buscar en índice? ¿Seguimiento?
[Search Agent] → Búsqueda semántica en Azure Search
[Context Builder] → Recupera documentos relevant + histórico
[OpenAI Completion] → Genera respuesta conversacional
[Metrics Logger] → AppInsights + local JSON
User Response + Suggestions
```

---

## configuration (`.env`)

```
RAG_CHAT_MAX_HISTORY=10 # Mantener últimas 10 interacciones
RAG_CHAT_TIMEOUT=60 # Timeout por turno (segundos)
RAG_CHAT_TOP_K=8 # Documentos recuperados por búsqueda
RAG_CHAT_TEMPERATURE=0.5 # Creatividad (0.3=factual, 0.7=creativo)
RAG_CHAT_MAX_TOKENS=2000 # Max tokens por respuesta
```

---

## Output

Chat session guardada automáticamente:

```json
{
"session_id": "chat-20260513-143022",
"started_at": "2026-05-13T14:30:22Z",
"messages": [
{
"turn": 1,
"user_query": "¿Cuál es la política de retención?",
"search_results": 5,
"assistant_response": "...",
"tokens_used": 240,
"latency_ms": 1850
}
],
"total_tokens": 1240,
"total_cost_usd": 0.31,
"duration_seconds": 180
}
```

---

## vs CLI Script

| Aspecto | CLI | Chat |
|---------|-----|------|
| Latencia | 2s | 5s |
| Coste | $0.02 | $0.05 |
| Queries | Puntuales | Conversación |
| Contexto | Stateless | Multi-turno |
| Uso | searches rápidas | Exploración profunda |

**Elige Chat cuando necesites seguimiento y contexto.**
Loading
Loading