Add self-contained portable GStreamer agent package
This commit is contained in:
parent
3ceef75976
commit
fe41e4085f
5 changed files with 252 additions and 0 deletions
17
RAG/agente_gstreamer/AGENTE_GSTREAMER_OPENCODE.jsonc
Normal file
17
RAG/agente_gstreamer/AGENTE_GSTREAMER_OPENCODE.jsonc
Normal 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."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
184
RAG/agente_gstreamer/INSTALAR_EN_OTRO_PC.md
Normal file
184
RAG/agente_gstreamer/INSTALAR_EN_OTRO_PC.md
Normal 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.
|
||||||
25
RAG/agente_gstreamer/rag_gstreamer_bootstrap.sh
Executable file
25
RAG/agente_gstreamer/rag_gstreamer_bootstrap.sh
Executable 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
|
||||||
25
RAG/agente_gstreamer/rag_gstreamer_retrieve.sh
Executable file
25
RAG/agente_gstreamer/rag_gstreamer_retrieve.sh
Executable 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
|
||||||
|
|
@ -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`.
|
- 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.
|
- 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.
|
- 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.
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue