feat: import agents_and_robots platform as unibots (Matrix-out, unibus transport)
Reemplaza el scaffold del echobot por la plataforma completa de bots traida desde ~/DataProyects/Github/agents_and_robots tras la operacion Matrix-out: los bots ya no hablan por Matrix sino por el bus unibus (modelo todo-rooms + E2E via shell/transportunibus sobre github.com/enmanuel/unibus/pkg/client). - go.mod: replace de unibus -> ../unibus y de fn-registry -> ../../../.. (paths relativos reajustados a la nueva ubicacion dentro de fn_registry). - app.md: bump a 0.2.0, descripcion + arquitectura + comandos + gotchas reales. - modulo Go conservado como github.com/enmanuel/agents (sin reescribir imports). agents_and_robots queda archivado como museo de la era Matrix.
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
# Sistema de Skills
|
||||
|
||||
Sistema de skills reutilizables para agentes Matrix. Las skills son paquetes de instrucciones, scripts y recursos que amplian las capacidades de un agente mas alla de las tools de function calling.
|
||||
|
||||
## Diferencia entre Tools y Skills
|
||||
|
||||
- **Tools** (`tools/`) — funciones atomicas que el LLM invoca via function calling (ssh_command, http_get, clock, etc.)
|
||||
- **Skills** (`skills/`) — flujos completos de trabajo multi-paso que combinan tools, logica condicional y conocimiento de dominio
|
||||
|
||||
Ejemplo:
|
||||
- Tool: `ssh_command` — ejecuta un comando SSH
|
||||
- Skill: `deploy-service` — usa ssh_command, http_get y logica para hacer un deploy completo
|
||||
|
||||
## Estructura de una skill
|
||||
|
||||
```
|
||||
skills/<categoria>/<skill-name>/
|
||||
├── SKILL.md ← obligatorio (frontmatter YAML + instrucciones markdown)
|
||||
├── LICENSE.txt ← opcional
|
||||
├── scripts/ ← opcional, codigo ejecutable (bash, python, etc.)
|
||||
├── references/ ← opcional, docs de referencia
|
||||
├── templates/ ← opcional, plantillas/assets
|
||||
└── assets/ ← opcional, fuentes, iconos, etc.
|
||||
```
|
||||
|
||||
### SKILL.md — formato
|
||||
|
||||
```yaml
|
||||
---
|
||||
name: skill-name
|
||||
description: >
|
||||
Descripcion clara de que hace la skill y cuando debe activarse.
|
||||
Esta descripcion es el mecanismo principal de triggering.
|
||||
---
|
||||
|
||||
# Instrucciones
|
||||
|
||||
Cuerpo markdown con las instrucciones completas.
|
||||
Idealmente < 500 lineas.
|
||||
```
|
||||
|
||||
## Carga progresiva (3 niveles)
|
||||
|
||||
El sistema carga skills de forma progresiva para optimizar el uso del contexto del LLM:
|
||||
|
||||
1. **Metadata** (name + description) — siempre en contexto (~100 palabras). El agente la lee para decidir si activar la skill.
|
||||
2. **Cuerpo del SKILL.md** — se carga cuando la skill se activa. Instrucciones principales.
|
||||
3. **Recursos bundled** (scripts/, references/, etc.) — se cargan bajo demanda. El SKILL.md indica cuando leer cada archivo.
|
||||
|
||||
## Carpetas opcionales
|
||||
|
||||
| Carpeta | Proposito |
|
||||
|---------|-----------|
|
||||
| `scripts/` | Codigo ejecutable que el agente corre (bash, python). Puede ejecutarlos sin cargarlos en contexto. |
|
||||
| `references/` | Documentacion extensa, leida solo cuando es relevante. Si > 300 lineas, agregar TOC al inicio. |
|
||||
| `templates/` | Plantillas que la skill usa como base para generar outputs. |
|
||||
| `assets/` | Archivos estaticos (fuentes, iconos, imagenes). |
|
||||
|
||||
## Categorias de skills
|
||||
|
||||
- **`devops/`** — operaciones y deploy
|
||||
- **`analysis/`** — analisis de datos/logs
|
||||
- **`communication/`** — comunicacion y notificaciones
|
||||
- **`coding/`** — desarrollo y code review
|
||||
- **`system/`** — administracion del sistema
|
||||
|
||||
## Uso desde agentes
|
||||
|
||||
Los agentes pueden interactuar con skills via function calling:
|
||||
|
||||
1. **`skill_search`** — busca skills relevantes por query
|
||||
2. **`skill_load`** — carga instrucciones completas de una skill
|
||||
3. **`skill_read_resource`** — lee un recurso especifico (script, reference, template)
|
||||
4. **`skill_run_script`** — ejecuta un script de la skill con argumentos
|
||||
|
||||
## Configuracion
|
||||
|
||||
Las skills se configuran por agente en el YAML de configuracion:
|
||||
|
||||
```yaml
|
||||
skills:
|
||||
enabled: true
|
||||
path: "skills/"
|
||||
categories: ["devops", "system"] # filtro opcional
|
||||
```
|
||||
|
||||
## Seguridad
|
||||
|
||||
- Los scripts de skills tienen las mismas restricciones que ssh_command
|
||||
- Allowlist de interpreters permitidos (bash, python3, sh)
|
||||
- Timeout obligatorio en ejecucion
|
||||
- Sin acceso directo a secretos
|
||||
|
||||
## Crear nuevas skills
|
||||
|
||||
Ver `.claude/rules/create_skill.md` para la guia completa de creacion de skills.
|
||||
Reference in New Issue
Block a user