Files
unibots/knowledges/README.md
T
agent fc644ecd6e 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.
2026-06-07 11:50:13 +02:00

64 lines
2.6 KiB
Markdown

# Shared Knowledge Base
Esta carpeta contiene la **base de conocimiento compartida** entre todos los agentes del sistema.
## Propósito
Los agentes pueden leer, escribir y buscar documentos en esta carpeta usando las tools `shared_knowledge_*`. Esto permite que múltiples agentes colaboren acumulando y consultando conocimiento común.
## Funcionamiento
- **Documentos**: Los archivos `.md` en este directorio son los documentos de conocimiento compartidos entre agentes.
- **Índice FTS5**: Los documentos se indexan automáticamente en `data/knowledge.db` (SQLite con Full-Text Search).
- **Sincronización**: El índice se actualiza al arrancar cada agente con `Sync()`.
- **WAL mode**: El DB usa WAL (Write-Ahead Logging) para permitir lecturas y escrituras concurrentes entre múltiples procesos.
## Tools disponibles
Los agentes con `tools.shared_knowledge.enabled: true` tienen acceso a:
- `shared_knowledge_search` — buscar documentos por query
- `shared_knowledge_read` — leer un documento por slug
- `shared_knowledge_write` — crear o actualizar un documento
- `shared_knowledge_list` — listar todos los documentos compartidos
## Diferencia con knowledge privado
Cada agente puede tener **dos bases de conocimiento**:
1. **Knowledge privado** (`agents/<id>/knowledge/`): solo visible para ese agente, tools `knowledge_*`
2. **Knowledge compartido** (`knowledges/`): visible para todos los agentes con shared_knowledge habilitado, tools `shared_knowledge_*`
## Ejemplo de flujo
```
1. agente-A recibe: "investiga X y guarda lo que encuentres"
→ LLM usa shared_knowledge_write(slug: "investigacion-x", content: "...")
→ Se escribe knowledges/investigacion-x.md + actualiza FTS5
2. agente-B recibe: "qué sabemos sobre X?"
→ LLM usa shared_knowledge_search(query: "X")
→ Encuentra el documento que escribió agente-A
→ shared_knowledge_read(slug: "investigacion-x")
→ Responde con la información
```
## Estructura
```
knowledges/
├── README.md ← este archivo
├── *.md ← documentos compartidos (commiteados)
└── data/
├── knowledge.db ← índice SQLite FTS5 (no commiteado)
├── knowledge.db-shm
└── knowledge.db-wal
```
## Notas
- Los archivos `.md` se commitean en el repositorio (forman parte del conocimiento compartido del equipo).
- El directorio `data/` está en `.gitignore` — el índice se reconstruye automáticamente al arrancar.
- No hay control de acceso por agente: cualquier agente con shared_knowledge habilitado puede leer y escribir.
- Si dos agentes escriben el mismo slug, el último gana (sobreescritura).