From fe41e4085f9e591bb213efc0b3f7c3363fbd3b67 Mon Sep 17 00:00:00 2001 From: Paco POR-CORREO Date: Thu, 9 Apr 2026 19:26:57 +0200 Subject: [PATCH] Add self-contained portable GStreamer agent package --- .../AGENTE_GSTREAMER_OPENCODE.jsonc | 17 ++ RAG/agente_gstreamer/INSTALAR_EN_OTRO_PC.md | 184 ++++++++++++++++++ .../rag_gstreamer_bootstrap.sh | 25 +++ .../rag_gstreamer_retrieve.sh | 25 +++ RAG/docs/HISTORIAL_SESIONES.md | 1 + 5 files changed, 252 insertions(+) create mode 100644 RAG/agente_gstreamer/AGENTE_GSTREAMER_OPENCODE.jsonc create mode 100644 RAG/agente_gstreamer/INSTALAR_EN_OTRO_PC.md create mode 100755 RAG/agente_gstreamer/rag_gstreamer_bootstrap.sh create mode 100755 RAG/agente_gstreamer/rag_gstreamer_retrieve.sh diff --git a/RAG/agente_gstreamer/AGENTE_GSTREAMER_OPENCODE.jsonc b/RAG/agente_gstreamer/AGENTE_GSTREAMER_OPENCODE.jsonc new file mode 100644 index 0000000..d2a4da5 --- /dev/null +++ b/RAG/agente_gstreamer/AGENTE_GSTREAMER_OPENCODE.jsonc @@ -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." + } + } +} diff --git a/RAG/agente_gstreamer/INSTALAR_EN_OTRO_PC.md b/RAG/agente_gstreamer/INSTALAR_EN_OTRO_PC.md new file mode 100644 index 0000000..946ed7a --- /dev/null +++ b/RAG/agente_gstreamer/INSTALAR_EN_OTRO_PC.md @@ -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 +/RAG/agente_gstreamer/rag_gstreamer_bootstrap.sh +/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. diff --git a/RAG/agente_gstreamer/rag_gstreamer_bootstrap.sh b/RAG/agente_gstreamer/rag_gstreamer_bootstrap.sh new file mode 100755 index 0000000..44ccf65 --- /dev/null +++ b/RAG/agente_gstreamer/rag_gstreamer_bootstrap.sh @@ -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 @- <&2 + exit 1 +fi + +QUERY="$*" +ENDPOINT="https://rag.por-correo.com/retrieve" + +curl -sS -X POST "$ENDPOINT" \ + -H "Content-Type: application/json" \ + -d @- <