# 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//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).