Wetopi Knowledge Plane — Memoria Técnica¶
1. Objetivo técnico¶
Diseñar una plataforma documental y de conocimiento que permita a humanos, Hermes y futuros agentes ADK compartir una única representación canónica de Wetopi.
Requisitos:
- Markdown como formato base.
- Git como source of truth.
- Publicación automática a
docs.wetopi.net. - Uso nativo por Hermes.
- Compatibilidad con la skill
llm-wiki. - Operación multiagente.
- Recuperación eficiente sin introducir repos completos en contexto.
- Relaciones explícitas entre documentos.
- Búsqueda lexical, semántica y por grafo.
- Integración con Hindsight.
- Integración con Ceph/S3.
- Índices completamente reconstruibles.
- Gobierno mediante PR y validaciones automáticas.
2. Componentes¶
2.1 wetopi-knowledge¶
Repositorio Git canónico.
Responsabilidades:
- wiki;
- arquitectura;
- ADR;
- runbooks;
- investigaciones;
- conceptos;
- registros operativos;
- documentación de servicios;
- metadata y relaciones.
No debe almacenar grandes logs, dumps, pcaps, binarios o artifacts temporales.
2.2 MkDocs¶
Responsabilidad:
Pipeline objetivo:
merge main
↓
CI / webhook
↓
mkdocs build --strict
↓
validación
↓
publicación atómica
↓
docs.wetopi.net
MkDocs es una vista derivada, nunca source of truth.
2.3 Hermes llm-wiki¶
Hermes Agent incluye:
Versión conocida:
Capacidades:
- ingest;
- query;
- lint;
- raw;
- generación de páginas;
- conceptos;
- entidades;
- comparaciones;
- wikilinks;
- frontmatter;
- detección de problemas de integridad;
- integración opcional con Obsidian.
Wetopi debe reutilizar este comportamiento y añadir convenciones propias.
El WIKI_PATH de cada agente deberá apuntar a su worktree del repositorio wetopi-knowledge, no a una wiki privada aislada.
Ejemplo conceptual:
3. Estructura inicial del repositorio¶
wetopi-knowledge/
│
├── README.md
├── index.md
├── mkdocs.yml
├── AGENTS.md
│
├── infrastructure/
│ ├── index.md
│ ├── ovh/
│ ├── physical-nodes/
│ ├── proxmox/
│ ├── ceph/
│ └── networking/
│
├── platform/
│ ├── index.md
│ ├── rke2/
│ ├── cilium/
│ ├── traefik/
│ ├── argocd/
│ ├── infisical/
│ ├── litellm/
│ ├── hindsight/
│ ├── observability/
│ └── knowledge-plane/
│
├── wetopi-app/
├── wordpress-hosting/
├── operations/
├── agents/
│
├── architecture/
├── decisions/
├── concepts/
├── investigations/
├── incidents/
├── runbooks/
├── records/
│
├── _schema/
│ ├── README.md
│ ├── frontmatter.md
│ ├── document-types.md
│ ├── relations.md
│ └── naming.md
│
├── _templates/
│ ├── service.md
│ ├── adr.md
│ ├── investigation.md
│ ├── runbook.md
│ ├── concept.md
│ └── record.md
│
└── raw/
└── README.md
raw/ sólo debe usarse para material pequeño y controlado compatible con Wiki-LLM. El raw voluminoso vive en S3.
4. Tipos documentales¶
| ID | Tipo | Uso |
|---|---|---|
SVC-* |
Service | Servicio/plataforma |
CON-* |
Concept | Concepto transversal |
ADR-* |
Architecture Decision | Decisión arquitectónica |
RFC-* |
Request for Comments | Propuesta abierta |
DES-* |
Design | Diseño o Architecture Pack |
RUN-* |
Runbook | Procedimiento operativo |
INV-* |
Investigation | Investigación técnica |
INC-* |
Incident | Incidente |
REC-* |
Operational Record | Hecho operacional histórico |
OBJ-* |
Objective | Objetivo de trabajo |
ART-* |
Artifact | Evidencia externa |
Los IDs son globales, estables e inmutables.
5. Frontmatter¶
Mínimo común:
---
id: SVC-CILIUM
type: service
title: Cilium
domain: platform
status: active
created_at: 2026-09-07
last_verified: 2026-09-07
owners:
- platform
tags:
- kubernetes
- networking
---
Relaciones:
depends_on:
- SVC-RKE2
related:
- CON-EGRESS
governed_by:
- ADR-0023
runbooks:
- RUN-CILIUM-001
evidence:
- ART-02881
6. Relaciones del grafo¶
Relaciones iniciales:
DEPENDS_ON
PROVIDES
USES
AFFECTS
GOVERNS
SUPERSEDES
DERIVED_FROM
EVIDENCE
RELATED_TO
IMPLEMENTS
OPERATED_BY
DOCUMENTED_BY
INVESTIGATES
RESOLVES
PRODUCED
Ejemplo:
ADR-0023 ──GOVERNS──────► SVC-CILIUM
INV-0192 ──INVESTIGATES─► SVC-CILIUM
INV-0192 ──EVIDENCE─────► ART-02881
ADR-0023 ──DERIVED_FROM─► INV-0192
7. Wikilinks¶
Wiki-LLM utiliza:
El indexador debe resolver:
- ID exacto;
- slug;
- alias;
- título;
- redirects/superseded.
8. Knowledge Index¶
El índice se considera estado derivado.
Entrada:
Extracción:
- Markdown AST;
- headings;
- párrafos;
- code blocks;
- frontmatter YAML;
- wikilinks;
- URLs;
- IDs;
- aliases;
- relaciones;
- Git metadata;
- estado;
- autoridad;
- timestamps.
Salida:
9. Backend inicial recomendado¶
Primera versión:
No introducir inicialmente Neo4j, Qdrant u OpenSearch salvo que métricas reales demuestren necesidad.
10. Modelo conceptual de datos¶
documents¶
id
path
title
type
domain
status
authority
created_at
updated_at
last_verified
git_commit
content_hash
nodes¶
edges¶
source:
chunks¶
11. Retrieval híbrido¶
query
│
├── lexical / FTS
├── semantic
├── exact IDs
├── aliases
├── graph expansion
└── authority/status
│
▼
rerank
│
▼
context pack
Debe favorecer:
y penalizar:
12. wetopi-knowledge-mcp¶
Interfaz v0:
Opcional posterior:
para compilar un Context Pack compacto.
13. Context Pack¶
Respuesta conceptual:
QUESTION
...
AUTHORITATIVE
- ADR-...
- SVC-...
OPERATIONAL
- RUN-...
RELATED
- CON-...
MEMORY
- Hindsight refs
EVIDENCE
- ART-...
El MCP proporciona contexto trazable; no debe convertirse necesariamente en el agente que responde o decide.
14. Integración Hindsight¶
Hindsight almacena:
Facts¶
Hechos duraderos verificados.
Experiences¶
Resultados de acciones u operaciones.
Observations¶
Estado contextual potencialmente cambiante.
Learned Knowledge / Wisdom¶
Conclusiones generalizadas.
Debe incluir punteros:
No debe retener documentos completos.
15. Integración S3¶
Bucket conceptual:
Ejemplo:
El índice documental ingiere normalmente sólo:
16. Agent Documentation Contract¶
Al finalizar trabajo significativo:
1. ¿Ha generado evidencia?
→ ART / S3
2. ¿Ha generado conocimiento reutilizable?
→ Wiki
3. ¿Ha tomado/propuesto una decisión?
→ ADR/RFC
4. ¿Ha ocurrido un hecho operacional relevante?
→ REC/INC
5. ¿Debe mantenerse experiencia o aprendizaje?
→ Hindsight
6. ¿Qué relaciones deben añadirse?
→ IDs / graph
Debe integrarse en el harness.
17. Multiagente¶
Nunca:
Siempre:
agent
↓
isolated worktree
↓
branch
↓
llm-wiki lint
↓
schema validation
↓
graph validation
↓
mkdocs build --strict
↓
PR
Auto-merge posible¶
- enlaces;
- metadata;
- correcciones triviales;
- índices generados;
last_verified;- cambios mecánicos.
Revisión requerida¶
- ADR;
- arquitectura;
- seguridad;
- procedimientos destructivos;
- cambios de política;
- eliminación de conocimiento;
- reestructuración masiva.
18. Wiki Curator¶
On PR¶
- schema lint;
- broken links;
- orphan detection;
- duplicate IDs;
- invalid relations;
- MkDocs strict;
- secret scanning.
Daily¶
- new orphan pages;
- stale pages;
- unresolved wikilinks;
- contradictory metadata.
Weekly¶
- semantic duplicate candidates;
- consolidation suggestions;
- taxonomy drift;
- pages requiring synthesis.
19. Retirada de BookStack¶
Discovery¶
Buscar:
en:
- GitHub;
- docs;
- Argo CD;
- Helm;
- manifests;
- Infisical;
- DNS;
- Traefik;
- monitoring;
- dashboards;
- agents;
- prompts;
- skills;
- scripts;
- CI/CD.
Content migration¶
- exportar BookStack;
- clasificar páginas;
- convertir contenido válido a Markdown;
- adaptar al schema Wiki-LLM;
- añadir IDs y wikilinks;
- PR de migración;
- validar;
- marcar migración completa.
Infrastructure removal¶
Después:
disable writes
backup
remove ingress
remove DNS
remove Argo app
remove manifests
remove secrets
remove DB/storage
remove monitoring
remove documentation references
La destrucción de datos es la última etapa.
20. Seguridad¶
El repositorio nunca contiene secret values.
Los artifacts deben tener clasificación y retention.
El Knowledge MCP debe permitir ACLs si en el futuro existen dominios restringidos.
21. Observabilidad¶
Métricas propuestas:
documents_indexed
index_duration_seconds
broken_links
orphan_pages
duplicate_ids
graph_nodes
graph_edges
vector_chunks
search_latency
search_zero_results
context_pack_tokens
stale_documents
pages_created
pages_updated
lint_failures
curator_suggestions
22. Principios¶
- Una sola fuente de verdad.
- Markdown antes que bases propietarias.
- Índices reconstruibles.
- Relaciones explícitas antes que inferencia.
- Semantic search complementa estructura.
- Memoria no reemplaza documentación.
- Raw no entra en Git.
- Todo conocimiento relevante tiene provenance.
- Los agentes contribuyen mediante Git.
- La curación forma parte del sistema.