Add self-contained portable GStreamer agent package

This commit is contained in:
Paco POR-CORREO 2026-04-09 19:26:57 +02:00
parent 3ceef75976
commit fe41e4085f
5 changed files with 252 additions and 0 deletions

View file

@ -0,0 +1,17 @@
{
"agent": {
"gstreamer": {
"description": "Agente primario especializado en GStreamer con apoyo prioritario del RAG del scope gstreamer-official para diagnostico y propuesta de correcciones en proyectos C++.",
"mode": "primary",
"color": "info",
"steps": 20,
"permission": {
"question": "allow",
"plan_enter": "allow",
"webfetch": "deny",
"websearch": "deny"
},
"prompt": "Eres el agente gstreamer del workspace. Tu especialidad es diagnosticar, revisar y proponer correcciones en proyectos que usan GStreamer, con foco principal en C++. Debes priorizar siempre la informacion recuperada desde el RAG del scope `gstreamer-official` (`sourceId`: `corpus:gstreamer:official:v1`, `sourceRef`: `gstreamer-official`). Usa tu conocimiento interno solo como apoyo cuando ayude, pero intenta anclar tus diagnosticos y propuestas en la documentacion del RAG siempre que sea posible. No dependas de Internet ni salgas a la web.\n\nConexion operativa al RAG remoto:\n- Para consultar el RAG de GStreamer debes usar estos scripts locales ya preparados:\n- `__IA_WORKSPACE_ROOT__/RAG/agente_gstreamer/rag_gstreamer_bootstrap.sh \"consulta\"`\n- `__IA_WORKSPACE_ROOT__/RAG/agente_gstreamer/rag_gstreamer_retrieve.sh \"consulta\"`\n- Antes de usar esta plantilla en otro PC, sustituye `__IA_WORKSPACE_ROOT__` por la ruta absoluta real del workspace en ese equipo.\n- Estos scripts ya apuntan al RAG remoto `https://rag.por-correo.com` y ya van fijados al scope `gstreamer-official`.\n- No hace falta que el usuario te diga el scope.\n\nRegla operativa principal:\n- Si el usuario te pide revisar codigo, diagnosticar errores, explicar comportamiento de GStreamer, proponer correcciones o \"usar el RAG\", debes apoyarte automaticamente en esos scripts del RAG remoto.\n- Si el usuario menciona `bootstrap` o `precarga`, debes ejecutar primero `rag_gstreamer_bootstrap.sh` con la cadena o tema que indique el usuario, y luego analizar el codigo apoyandote en esa precarga.\n- Si el problema es concreto y no menciona bootstrap o precarga, usa `rag_gstreamer_retrieve.sh` con una consulta especifica construida a partir del codigo, error, logs o sintomas.\n- Trata frases como \"usa el RAG para revisar este fichero\", \"revisa este codigo con apoyo del RAG\" o \"diagnostica este error\" como una instruccion suficiente para consultar el RAG remoto de GStreamer.\n\nComportamiento esperado:\n- Por defecto diagnostica y propone cambios; no edites archivos ni apliques fixes salvo que el usuario lo pida explicitamente.\n- Cuando revises codigo, busca errores de integracion, estados, pads, caps, bus messages, linking, negotiation, hilos, lifecycle, pipeline design y uso de APIs de GStreamer.\n- Antes de emitir un diagnostico fuerte, intenta apoyarte en contexto util del RAG de GStreamer mediante los scripts indicados. Si el problema es amplio, prioriza bootstrap; si es concreto, prioriza retrieve especifico.\n- Si propones cambios, explica por que, que problema corrigen y que riesgo introducen.\n- Si el usuario te pide aplicar cambios, entonces puedes editar, compilar, ejecutar comandos, lanzar pruebas y validar si el problema parece resuelto.\n- Para proyectos grandes, pide o selecciona modulos, ficheros, logs y sintomas concretos en lugar de revisar todo de golpe.\n- Si el RAG no aporta evidencia suficiente, dilo explicitamente.\n- Cuando trabajes con codigo, asume inicialmente C++ como lenguaje principal, aunque puedes razonar sobre otros lenguajes si aparecen.\n\nObjetivo: servir como agente tecnico especializado en GStreamer para diagnostico, propuesta de parches y validacion posterior de correcciones apoyandote de forma real y permanente en el corpus documental oficial cargado en el RAG remoto."
}
}
}

View file

@ -0,0 +1,184 @@
# Instalar Agente GStreamer En Otro PC
**Proyecto:** Workspace de tools IA para empresas
**Modulo:** RAG
**Paquete portable:** `RAG/agente_gstreamer/`
---
## Que debes llevarte
Llevate la carpeta completa:
```text
RAG/agente_gstreamer/
```
Contiene todo lo necesario para recrear el agente:
1. `AGENTE_GSTREAMER_OPENCODE.jsonc`
2. `rag_gstreamer_bootstrap.sh`
3. `rag_gstreamer_retrieve.sh`
4. `INSTALAR_EN_OTRO_PC.md`
---
## Que hace este paquete
Deja instalado un agente `gstreamer` en OpenCode que:
- aparece como agente primario al cambiar con `Tab`
- esta enfocado en GStreamer y C++
- diagnostica y propone cambios por defecto
- no modifica codigo salvo que se le pida expresamente
- queda conectado operativamente al RAG remoto `https://rag.por-correo.com`
- usa por defecto el scope:
- `sourceId`: `corpus:gstreamer:official:v1`
- `sourceRef`: `gstreamer-official`
---
## Paso 1. Copiar la carpeta al otro PC
Coloca esta carpeta dentro del workspace del otro PC.
Ejemplo:
```text
/home/usuario/Documentos/Empresa/Desarrollo/IA/RAG/agente_gstreamer/
```
---
## Paso 2. Sustituir el placeholder de ruta
Abre:
```text
RAG/agente_gstreamer/AGENTE_GSTREAMER_OPENCODE.jsonc
```
Y sustituye:
```text
__IA_WORKSPACE_ROOT__
```
por la ruta absoluta real del workspace en ese otro PC.
Ejemplo:
```text
/home/usuario/Documentos/Empresa/Desarrollo/IA
```
Esto es importante porque el agente llamara a estos scripts por ruta absoluta:
```text
<workspace>/RAG/agente_gstreamer/rag_gstreamer_bootstrap.sh
<workspace>/RAG/agente_gstreamer/rag_gstreamer_retrieve.sh
```
---
## Paso 3. Dejar ejecutables los scripts
En el otro PC ejecuta:
```bash
chmod +x RAG/agente_gstreamer/rag_gstreamer_bootstrap.sh
chmod +x RAG/agente_gstreamer/rag_gstreamer_retrieve.sh
```
---
## Paso 4. Instalar el agente en OpenCode
Abre la configuracion de OpenCode del otro PC:
```text
~/.config/opencode/opencode.jsonc
```
Luego copia el bloque del archivo:
```text
RAG/agente_gstreamer/AGENTE_GSTREAMER_OPENCODE.jsonc
```
y pegalo dentro de la clave raiz `agent`.
Si no existe `agent`, creala.
Ejemplo:
```jsonc
{
"$schema": "https://opencode.ai/config.json",
"agent": {
"gstreamer": {
...
}
}
}
```
---
## Paso 5. Reiniciar OpenCode
Cierra la sesion actual o reinicia OpenCode para que recargue la configuracion.
Despues, al pulsar `Tab`, debe aparecer:
```text
gstreamer
```
---
## Instalacion asistida por otro agente OpenCode
Si quieres que el OpenCode del otro PC lo instale por ti, dale esta instruccion:
```text
Lee estos archivos dentro de `RAG/agente_gstreamer/`:
- AGENTE_GSTREAMER_OPENCODE.jsonc
- INSTALAR_EN_OTRO_PC.md
Instala el agente `gstreamer` en mi configuracion local de OpenCode.
Requisitos:
1. Sustituye `__IA_WORKSPACE_ROOT__` por la ruta absoluta real de este workspace.
2. No cambies otros agentes existentes.
3. Deja ejecutables estos scripts:
- RAG/agente_gstreamer/rag_gstreamer_bootstrap.sh
- RAG/agente_gstreamer/rag_gstreamer_retrieve.sh
4. Inserta el agente dentro de `~/.config/opencode/opencode.jsonc`.
5. Dime al final si necesito reiniciar OpenCode.
```
---
## Ejemplos de uso despues de instalarlo
```text
usa el rag para revisar el codigo del fichero nombrefichero.cpp
```
```text
revisa este codigo y apoyate en el rag haciendo una precarga sobre uso especifico de video remoto
```
```text
diagnostica este error de gstreamer en este modulo C++ y propon cambios, sin aplicarlos todavia
```
---
## Notas importantes
1. Este paquete ya deja al agente conectado operativamente al RAG remoto.
2. La integracion se hace por scripts locales + prompt del agente, no por MCP nativo.
3. El scope por defecto sigue siendo `gstreamer-official`.
4. Si en el futuro cambias el endpoint del RAG o el scope, habra que actualizar este paquete.

View file

@ -0,0 +1,25 @@
#!/usr/bin/env bash
set -euo pipefail
if [[ $# -lt 1 ]]; then
printf 'Uso: %s "consulta bootstrap o precarga"\n' "$0" >&2
exit 1
fi
QUERY="$*"
ENDPOINT="https://rag.por-correo.com/retrieve"
curl -sS -X POST "$ENDPOINT" \
-H "Content-Type: application/json" \
-d @- <<JSON
{
"mode": "documental",
"intent": "bootstrap",
"query": $(printf '%s' "$QUERY" | python3 -c 'import json,sys; print(json.dumps(sys.stdin.read()))'),
"scope": {
"sourceId": "corpus:gstreamer:official:v1",
"sourceRef": "gstreamer-official",
"tags": ["gstreamer", "official-docs", "multimedia", "documental"]
}
}
JSON

View file

@ -0,0 +1,25 @@
#!/usr/bin/env bash
set -euo pipefail
if [[ $# -lt 1 ]]; then
printf 'Uso: %s "consulta especifica"\n' "$0" >&2
exit 1
fi
QUERY="$*"
ENDPOINT="https://rag.por-correo.com/retrieve"
curl -sS -X POST "$ENDPOINT" \
-H "Content-Type: application/json" \
-d @- <<JSON
{
"mode": "documental",
"intent": "specific",
"query": $(printf '%s' "$QUERY" | python3 -c 'import json,sys; print(json.dumps(sys.stdin.read()))'),
"scope": {
"sourceId": "corpus:gstreamer:official:v1",
"sourceRef": "gstreamer-official",
"tags": ["gstreamer", "official-docs", "multimedia", "documental"]
}
}
JSON

View file

@ -63,3 +63,4 @@ Dar continuidad al RAG en `RAG/` a partir del estado actual documentado.
- Conexion operativa real del agente `gstreamer` al RAG remoto `https://rag.por-correo.com` mediante scripts dedicados fijados al scope `gstreamer-official`.
- Soporte explicito para flujos de `bootstrap` y `precarga` dirigida antes de revisar codigo.
- Ajuste del paquete portable del agente para usar placeholder `__IA_WORKSPACE_ROOT__` y poder reinstalarlo correctamente en otros equipos sin depender de rutas locales de este PC.
- Creacion de `RAG/agente_gstreamer/` como carpeta autocontenida para llevar el agente a otro PC con configuracion, scripts e instrucciones en un solo paquete.