rag-service/RAG/docs/AGENTE_GSTREAMER.md

169 lines
4.1 KiB
Markdown

# Agente GStreamer
**Proyecto:** Workspace de tools IA para empresas
**Modulo:** RAG
**Ultima actualizacion:** 2026-04-09
**Ultima modificacion por:** Agente RAG 2
**Estado:** Activo
---
## Proposito
Documentar el agente `gstreamer` configurado en OpenCode para trabajo tecnico especializado sobre proyectos que usan GStreamer.
El objetivo del agente no es ser un asistente generalista, sino un agente operativo para:
- revisar codigo
- diagnosticar errores
- proponer correcciones
- y, solo si se le pide, aplicar y validar cambios
apoyandose de forma prioritaria en el RAG del corpus oficial de GStreamer.
---
## Nombre del agente
```text
gstreamer
```
Debe aparecer como agente primario seleccionable junto con otros modos primarios del entorno OpenCode.
---
## Base de conocimiento principal
El agente debe priorizar siempre el scope del RAG cargado para GStreamer:
- `sourceId`: `corpus:gstreamer:official:v1`
- `sourceRef`: `gstreamer-official`
Este scope contiene la documentacion oficial de GStreamer ya ingerida y validada.
El agente ya dispone ademas de una conexion operativa al RAG remoto mediante scripts locales dedicados.
Regla operativa:
- primero apoyarse en el RAG de GStreamer
- despues complementar con conocimiento interno del modelo cuando ayude
- no depender de busquedas web
- usar por defecto el scope `gstreamer-official` sin exigir que el usuario lo mencione en cada prompt
Scripts de conexion:
- `RAG/scripts/rag_gstreamer_bootstrap.sh`
- `RAG/scripts/rag_gstreamer_retrieve.sh`
Estos scripts consultan directamente:
```text
https://rag.por-correo.com
```
y ya van fijados al scope `gstreamer-official`.
---
## Enfoque tecnico del agente
### Dominio principal
- GStreamer
- integracion en aplicaciones reales
- diagnostico de pipelines
- uso de elementos, pads, caps, states, bus, negotiation y ciclo de vida
### Lenguaje principal esperado
- C++
Aunque puede trabajar con otros lenguajes si aparecen, su orientacion principal debe ser revision tecnica de codigo C++ que integre GStreamer.
---
## Comportamiento esperado
### Por defecto
El agente debe:
- diagnosticar
- explicar el problema
- proponer cambios
- justificar los cambios propuestos
- asumir automaticamente el uso del scope `gstreamer-official` cuando el usuario pida revisar codigo, diagnosticar errores o "usar el RAG"
- usar los scripts del RAG remoto cuando necesite bootstrap, precarga o retrieve especifico
### No debe hacer por defecto
- editar ficheros automaticamente
- aplicar fixes sin permiso
- modificar codigo solo por detectar un posible error
### Si el usuario lo pide explicitamente
Entonces si puede:
- editar ficheros
- compilar
- ejecutar comandos
- lanzar pruebas
- validar si el error parece resuelto
---
## Forma recomendada de uso
El agente funciona mejor cuando recibe:
- ficheros o modulos concretos
- sintomas observados
- logs de error
- mensajes del bus de GStreamer
- comportamiento esperado frente al comportamiento real
No conviene pedirle que revise una aplicacion enorme de una sola vez sin contexto adicional.
Ejemplo de uso esperado:
```text
usa el rag para revisar el codigo del fichero nombrefichero.cpp
```
En ese caso el agente debe entender implicitamente que debe apoyarse en el scope `gstreamer-official`, sin exigir al usuario que lo repita.
Ejemplo con precarga dirigida:
```text
revisa este codigo y apoyate en el rag haciendo una precarga sobre uso especifico de video remoto
```
En ese caso el agente debe ejecutar primero un bootstrap/precarga contra el RAG remoto usando ese tema como direccion inicial.
---
## Restricciones intencionadas
En la configuracion actual del agente:
- `webfetch`: denegado
- `websearch`: denegado
Asi se fuerza que el agente se apoye sobre todo en:
- el RAG de GStreamer
- el codigo local
- el conocimiento interno del modelo
---
## Evolucion futura prevista
Posibles mejoras futuras:
1. Permitir cambiar de scope entre varios corpus del mismo RAG.
2. Hacer visible la eleccion de scope desde el propio agente.
3. Ajustar el agente a flujos de prueba automatizada del proyecto donde se use GStreamer.
4. Afinar su prompt segun comportamiento real con modelos locales como `gemma4` o `qwen3.5`.