Wenlan
Base de conocimiento de IA local-primero y wiki LLM con páginas citadas por fuentes y acceso MCP para agentes de codificación.
Documentación
El trabajo útil con IA no debería desaparecer cuando termina una conversación. Wenlan construye las páginas adecuadas y las mantiene actualizadas a medida que cambian las fuentes, preguntando solo cuando se necesita criterio.
English | 简体中文 | 繁體中文 | Español
Get started · What is this? · Capabilities · Daily workflow · Evaluation · Learn more
Una Página mantenida en la aplicación de escritorio: abre cualquier cita para inspeccionar la Fuente o la Memoria detrás de la afirmación.
Comenzar
Wenlan se ejecuta como un único daemon local. La aplicación de escritorio incluye ese daemon en su interior; la instalación headless te ofrece el mismo daemon sin ventana. Tus clientes de IA acceden a la misma base de conocimiento de cualquier manera.
Aplicación de escritorio
Descargar Wenlan para macOS (Apple Silicon), abre el .dmg y arrastra la aplicación a Applications.
No hay nada más que instalar. La aplicación incluye el daemon, la CLI y el conector MCP, inicia el daemon al abrirse y ofrece conectar los clientes de IA que detecta: el plugin para Claude Code y Codex, una entrada MCP para el resto. Desde ahí puedes leer Páginas, inspeccionar la Fuente detrás de cualquier cita y curar el sistema de conocimiento.
Esta vista previa aún no está notarizada, por lo que macOS bloquea el primer lanzamiento. Permítelo una vez en System Settings, Privacy & Security, "Open Anyway". Un comando omite ese paso: verifica la descarga contra el SHA-256 publicado en GitHub, elimina la cuarentena solo para esta aplicación y no cambia ninguna configuración de seguridad de macOS.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/7xuanlu/wenlan/main/scripts/install-macos-app.sh)"
En Windows x64, ejecuta el -setup.exe desde la misma página de Releases. Instala el daemon, la CLI y el conector MCP junto con las bibliotecas de ejecución que cargan, por lo que no hay nada más que instalar. Linux aún no tiene una versión de escritorio; usa el runtime headless a continuación.
Configurar con tu IA
Pega esto en Claude Code, Codex u otra herramienta que pueda seguir una guía de configuración:
Set up Wenlan for this AI client by following:
https://raw.githubusercontent.com/7xuanlu/wenlan/main/docs/setup-with-ai.md
Install only what this client needs. Then verify the local runtime,
its Wenlan connection, and a capture/recall round trip.
La guía detecta qué cliente estás usando y mantiene los comandos específicos del cliente fuera de este README. No configura todas las herramientas de IA a menos que se lo pidas.
¿Necesitas solo el runtime headless en macOS Apple Silicon?
npx -y wenlan setup
Esto descarga la CLI, el daemon y el conector MCP precompilados, inicia el runtime local y lo verifica. No se requiere toolchain de Rust ni Cargo. Linux x64/ARM64 con glibc tiene una ruta de configuración automatizada por shell; Windows x64 usa el archivo correspondiente de Releases. macOS Intel actualmente no tiene instalación de runtime completo compatible.
Instrucciones manuales y específicas por cliente: Configuración asistida por IA · Plugin de Claude Code · Plugin de Codex · CLI y MCP.
¿Qué es esto?
Wenlan convierte documentos, notas y conversaciones previas de IA en una base de conocimiento respaldada por fuentes que se mantiene actualizada a medida que tu trabajo evoluciona. Las fuentes permanecen trazables; las decisiones, lecciones y correcciones se convierten en memorias duraderas; ambas pueden respaldar las mismas Páginas mantenidas.
Diseñado para trabajo que continúa. Wenlan es para investigadores, escritores, consultores, equipos de producto y equipos de software cuyo conocimiento está disperso en documentos, notas y conversaciones de IA. Convierte ese material en Páginas inspeccionables que pueden mejorar a lo largo de proyectos y semanas, no otro historial de chat o almacén de memoria aislado. No es un sistema de gestión de vida ni un SDK de memoria integrado en otro producto.
Un sistema de conocimiento, tres roles:
- Las Fuentes mantienen trazable el material que Wenlan lee. Las conversaciones importadas permanecen como registros capturados; los archivos registrados sincronizan su contenido actual a medida que cambian.
- Las Memorias preservan lo que el trabajo te enseña. Los agentes capturan decisiones atómicas, lecciones, correcciones y supersesiones con procedencia.
- Las Páginas compilan el conocimiento actual. Wenlan convierte las Fuentes y Memorias relevantes en Markdown citado por fuentes que puedes reutilizar, actualizar y revisar.
La base de LLM-wiki, extendida:
- LLM-wiki v1: Karpathy definió Fuentes inmutables, un Wiki en Markdown mantenido por IA y un Esquema co-evolutivo de reglas para estructurarlo y mantenerlo. Wenlan implementa esa base con campos de Memoria tipados y reglas integradas para estructura de Páginas, procedencia, citas, actualización, propiedad y revisión.
- LLM-wiki v2: Rohitg00 añadió un ciclo de vida de memoria. Wenlan hace concreta esa dirección con Fuentes trazables, Memorias atómicas estilo Zettelkasten capturadas por agentes (una idea completa cada una) y Páginas mantenidas construidas desde ambas.
El movimiento distintivo de Wenlan: Las Fuentes y las Memorias atómicas respaldan de forma independiente las Páginas mantenidas. El historial de Memoria preserva cómo cambió el conocimiento; el historial de Página muestra qué evidencia actual respalda la síntesis. Las Páginas mantenidas por máquina pueden reconstruirse desde el respaldo actual, mientras que los cambios en la escritura humana esperan como revisiones revisables.
Un grafo de conocimiento que se vuelve más útil con el tiempo
El grafo de entidad-relación es una parte del wiki conectado más amplio de Wenlan. Las Páginas de Conocimiento contienen síntesis mantenida, las Entidades anclan personas, proyectos y conceptos reutilizables, las Páginas de Fuente hacen inspeccionable el material importado o sincronizado, y las Memorias atómicas preservan decisiones y cambios. Funcionan mediante enlaces separados y explícitos: wikilinks de Página a Página, evidencia de Página, enlaces de Memoria a Entidad y relaciones de Entidad dirigidas.
Dentro del grafo de entidades, un modelo de enriquecimiento configurado extrae Entidades tipadas, observaciones y relaciones dirigidas de las Memorias. El enlazado y la resolución de entidades reutilizan nodos existentes en lugar de tratar cada mención como nueva; cada Memoria mantiene su Fuente y puede enlazarse a múltiples Entidades. Cómo se almacena el modelo conectado ->
- Significado y dirección: Las relaciones usan un vocabulario inicial como
uses,part_of,contradictsyreplaced_by; los tipos desconocidos caen enrelated_toy se convierten en propuestas de vocabulario revisables. - Fuerza y procedencia: Una relación puede almacenar confianza, una explicación y su Memoria fuente, de modo que las afirmaciones más fuertes y más débiles sigan siendo distinguibles e inspeccionables.
- Comunidades que se acumulan: La propagación de etiquetas agrupa Entidades por densidad de relación, ponderada por el número de relaciones entre cada par. Estos grupos pueden organizar resúmenes opcionales del corpus mientras los enlaces de Entidad añaden contexto de recuperación.
- Corrección sin borrado: Las afirmaciones relacionadas, correcciones y supersesiones explícitas permanecen inspeccionables juntas mientras las Fuentes originales y el historial de Memoria permanecen.
Durante la recuperación, la coincidencia densa de entidades encuentra entidades relevantes a la consulta. Cuando existen enlaces de grafo elegibles, el flujo de memoria de grafo predeterminado impulsa las Memorias enlazadas como una tercera señal de RRF. La ruta depende de los datos y el alcance, y los límites de Espacio siguen aplicándose. Cómo funciona la ruta de grafo ->
Recuperación entre palabras, significado y conexiones
La búsqueda principal de Wenlan es un pipeline híbrido local, no una única búsqueda vectorial. Cada etapa tiene un trabajo diferente:
- Redacción exacta, SQLite FTS5: un índice de texto completo encuentra términos literales, identificadores y frases.
- Significado similar, FastEmbed +
Qdrant/bge-base-en-v1.5-onnx-Q: un modelo inglés cuantizado crea incrustaciones de 768 dimensiones; libSQL cosine DiskANN las indexa para recuperación aproximada de vecinos más cercanos. - Clasificación combinada, RRF ponderado (
k = 60): las listas de clasificación léxica y semántica se fusionan sin pretender que sus puntuaciones brutas compartan escala; la similitud coseno también pondera la contribución vectorial. - Contexto conectado, flujo de memoria de grafo: los enlaces de entidad elegibles añaden una tercera señal RRF mientras el alcance de lectura activo aún filtra las Memorias devueltas.
- Precisión opcional, reordenamiento con cross-encoder: a diferencia de las incrustaciones,
jinaai/jina-reranker-v1-turbo-enoBAAI/bge-reranker-baselee cada par consulta-candidato y reordena el grupo más pequeño; el reordenamiento está desactivado por defecto.
Los canales de Página, episódico y de hechos son opcionales y degradan a las señales de búsqueda restantes si no están disponibles. El Espacio aún limita el alcance de lectura. Métodos, valores predeterminados y limitaciones ->
Dos ciclos de vida, un sistema de conocimiento mantenido
Un wiki generado puede volverse obsoleto; un almacén de memoria puede fragmentarse en hechos desconectados. Wenlan vincula dos ciclos de vida sin colapsarlos en una sola capa.
Memoria Atómica
CAPTURE -> CLASSIFY -> ENRICH -> LINK -> RECONCILE
La captura y la supersesión explícita son fundamentales. Las etapas respaldadas por modelos se ejecutan solo cuando el modelo correspondiente está configurado, y el paso de reconciliación está desactivado por defecto.
| Operación | Qué hace Wenlan |
|---|---|
| Captura | Los agentes escriben una idea completa y autocontenida por Memoria, siguiendo el principio de nota atómica de Zettelkasten en lugar de guardar toda la conversación. |
| Clasificación | Con el modelo en el dispositivo, Wenlan asigna identity, preference, decision, lesson, gotcha o fact; un tipo preciso proporcionado por el llamador sigue siendo autoritativo. |
| Enriquecimiento | Con el modelo en el dispositivo, añade campos estructurados, señales de recuperación, fechas de eventos, calidad, importancia y etiquetas cuando están disponibles. |
| Enlazado | Conserva la procedencia y, cuando el enriquecimiento está habilitado, conecta las Memorias a entidades y relaciones en el grafo de conocimiento. |
| Reconciliación | Los reemplazos explícitos preservan una cadena de supersedes. Un paso opcional en el dispositivo puede poner en cola conflictos protegidos para revisión en lugar de sobrescribir el historial; está desactivado por defecto y debe habilitarse explícitamente. |
Configuración avanzada: establece WENLAN_ENABLE_DUAL_POOL_RESOLVE=1 para habilitar ese paso de reconciliación.
Página Mantenida
DISTILL -> CITE -> TRACK -> REFRESH -> REVIEW
| Operación | Qué hace Wenlan |
|---|---|
| Distill | Compila Sources y Memories relacionadas en una sola Page de Markdown. |
| Cite | Conserva los registros de citas y el estado de verificación; la actualización automática descarta un borrador cuando falla su comprobación de respaldo de citas. |
| Track | Registra qué evidencia respalda la Page, por qué quedó obsoleta y un historial de cambios acotado. |
| Refresh | Cuando una Page se marca como obsoleta, reconstruye la Page elegible mantenida por máquina a partir de la evidencia actual. |
| Review | Convierte los cambios en una Page que editaste en una revisión propuesta en lugar de una reescritura silenciosa. |
Por ejemplo, importa un documento de diseño y captura una decisión de depuración en Codex. Wenlan puede compilar una Page que cite ambos. Cuando esa Page se actualiza, se reconstruye a partir de su respaldo actual; si la has editado, el cambio propuesto espera revisión.
Markdown local que funciona con Obsidian
Tu síntesis duradera permanece como archivos ordinarios en lugar de un formato de editor propietario:
- Archivos simples: Las Pages y las notas de sesión permanecen como Markdown bajo
~/.wenlan/. - Historial inspeccionable: Los flujos de trabajo de Distill y handoff pueden confirmar lotes lógicos de archivos en un repositorio git local.
- Coexistencia con Obsidian: Wenlan lee una bóveda existente como fuente. Crea un enlace simbólico de
~/.wenlan/pages/dentro de la bóveda o exporta una Page desde la aplicación de escritorio; tus ediciones siguen siendo tuyas, y las actualizaciones automáticas posteriores se convierten en revisiones revisables.
El historial local es directamente inspeccionable:
$ git -C ~/.wenlan log --oneline
a1b2c3d distill: 4 pages
9f8e7d6 session: embedding-work
Capacidades
- Importación de chat: Importa ZIPs de exportación de ChatGPT o Claude; Wenlan omite automáticamente las conversaciones ya importadas.
- Sources de documentos: Ingiera un archivo
.md,.txto.pdfcon extracción de texto; recorra recursivamente una carpeta de ellos; o indexe Markdown desde una bóveda de Obsidian. - Sincronización incremental: Las Sources de archivos y carpetas regulares rastrean cambios en segundo plano; las bóvedas de Obsidian permanecen de solo lectura y se resincronizan bajo demanda.
- Memoria atómica: Los clientes MCP guardan una decisión, lección, corrección, preferencia o hecho completo, con procedencia y sustitución que registran de dónde vino y qué reemplaza.
- Enriquecimiento tipado: Un modelo configurado clasifica cada Memory y luego agrega los campos estructurados definidos para su tipo, además de fechas, etiquetas, señales de recuperación y enlaces de grafo.
- Pages respaldadas por fuentes: Destila Sources y Memories relacionadas en Pages de Markdown con referencias de fuente y
[[wikilinks]]; el daemon puede verificar y registrar citas por afirmación. - Actualización controlada por citas: La actualización automática rechaza borradores con pocas citas; las Pages de máquina se actualizan mientras las ediciones humanas se convierten en revisiones revisables.
- Recuperación híbrida: FTS5 encuentra palabras exactas, los embeddings locales BGE encuentran significado y RRF fusiona sus rankings; los enlaces de grafo pueden agregar contexto.
- Canales de recuperación: Los canales opcionales de Page, episódicos y por hecho amplían el recuerdo; el re-ranking con cross-encoder puede mejorar la precisión.
- Grafo de conocimiento: Entidades, relaciones y observaciones tipadas conectan personas, proyectos, afirmaciones y Memories de respaldo.
- Revisión con humano en el circuito: El trabajo rutinario permanece automático; los conflictos protegidos, las revisiones de Pages, las fusiones de entidades y el nuevo vocabulario esperan juicio.
- Spaces: Mantén el conocimiento de trabajo, personal, de clientes y de repositorios dentro de un alcance de recuperación explícito.
- Daemon local + MCP: Un daemon ligero de Rust sigue siendo la fuente local de verdad. La aplicación de escritorio y la CLI lo llaman directamente; los clientes de IA usan pequeños conectores MCP para alcanzar el mismo conocimiento.
- Integraciones personalizadas: La API HTTP de localhost acepta texto preparado, contenido de páginas web y Memories de otros flujos de captura.
- Mantenimiento en segundo plano: El daemon sigue funcionando después de que se cierra la aplicación de escritorio, ejecutando sincronización configurada, enriquecimiento, trabajo de citas y actualización de Pages elegibles.
- Elección de modelo: La recuperación base permanece local; el enriquecimiento y la síntesis pueden usar Qwen en el dispositivo, un endpoint local o un modelo en la nube configurado.
- Propiedad inspeccionable: Las Memories y los datos de grafo permanecen en libSQL local; el Markdown, las citas, las revisiones, el historial de git y las exportaciones de Obsidian siguen siendo inspeccionables.
- Comprobaciones de salud de solo lectura:
doctorverifica el runtime;lintencuentra citas malformadas, enlaces huérfanos, embeddings rotos y problemas de integridad del índice de búsqueda o del grafo sin reescribir conocimiento.
Flujo de trabajo diario
El sistema anterior se convierte en un pequeño bucle diario: comienza con conocimiento relevante, captura lo que importa mientras trabajas, cierra con un handoff y deja que Wenlan refine lo que debería volver la próxima vez. Cada pasada deja la misma base de conocimiento más nítida en lugar de crear otra historia desconectada.
El bucle tiene cuatro pasos:
- Encuentra el conocimiento actual. Abre una Page relevante, busca o usa
/recall <query>;/brief [topic]lee el Space Brief actual, y un tema agrega contexto etiquetado por separado desde ese mismo Space. Los clientes sin comandos de plugin usan las herramientas equivalentes de página, búsqueda, recuerdo y brief. - Captura y encuentra conocimiento mientras trabajas.
/capture <thing>guarda una decisión, lección, trampa o hecho con su fuente./recall <query>recupera solo lo relevante en lugar de cargar todo tu historial. - Cierra el bucle.
/handoffregistra lo que cambió y aplica actualizaciones tipadas a nivel de elemento al Space Brief actual. - Mantén la wiki actualizada.
/distillcrea o actualiza páginas deliberadamente. Entre sesiones, pasadas opcionales respaldadas por modelos pueden enriquecer capturas, conectar entidades relacionadas y actualizar páginas elegibles./lintverifica la salud del conocimiento;/curatete trae las revisiones propuestas y cualquier elemento de revisión de conflictos creado por la pasada de reconciliación opcional.
Modelos y privacidad
- Recuperación base local: El modelo de embeddings BGE se ejecuta a través de FastEmbed en tu máquina para la búsqueda híbrida y no necesita clave de API.
- Síntesis opcional en el dispositivo: El enriquecimiento y la síntesis de Pages pueden usar
Qwen3 4BoQwen3.5 9Bseleccionados por el usuario a través de llama.cpp. Wenlan no descarga ni activa un modelo de lenguaje hasta que tú elijas uno. - Otros proveedores: Un endpoint local compatible con OpenAI como Ollama o LM Studio, o un proveedor en la nube configurado, puede proporcionar enriquecimiento y síntesis respaldados por modelos en su lugar.
- Divulgación en la nube: Si el endpoint del modelo que seleccionas es remoto, Wenlan envía los prompts de sistema y de usuario de esa tarea a él. La recuperación local y la síntesis en el dispositivo permanecen en tu máquina.
- Sin telemetría: Wenlan no envía telemetría.
Referencia completa del flujo de trabajo: plugin/skills. Roles técnicos del modelo: technical foundations.
Evaluación
Esta es una instantánea solo de recuperación, no una afirmación sobre la calidad de las respuestas de extremo a extremo. El método, los recibos de entorno y el flujo de trabajo de actualización viven en docs/eval.
| Benchmark | Recall@5 | MRR | NDCG@10 |
|---|---|---|---|
| LME_Oracle (500 Q) | 93.6% | 0.857 | 0.883 |
| LME_S (deep, 90 Q) | 87.7% | 0.815 | 0.822 |
Aprende más
Documentación más detallada, conceptos y comparaciones:
Documentación
- Primeros pasos: instala y verifica el primer bucle local.
- Flujo de trabajo diario: brief, captura, recuerdo, handoff, destilación, lint y curaduría.
- Clientes MCP: conecta Claude Code, Codex, Cursor, Claude Desktop y otros clientes.
Conceptos
- Por qué una wiki viva, no solo memoria de IA: el problema y el modelo de producto en profundidad.
- Servidor de memoria MCP: cómo Wenlan expone el conocimiento a través de herramientas de IA.
- Memoria de IA local-first: datos, privacidad y control.
- Markdown e índice local: almacenamiento, recuperación y propiedad.
- Bucle de handoff de agentes de IA: llevar el trabajo limpiamente a la siguiente sesión.
Comparaciones
Contribución
Se aceptan correcciones de errores, casos de evaluación, documentación y funciones. Instalar Wenlan no requiere compilar desde el código fuente. Para el desarrollo local, ejecuta estos comandos desde la raíz de este repositorio:
# daemon crates (default-members — the desktop app is not compiled)
cargo build
cargo test
# desktop app (Cargo target and root-level frontend tooling)
cargo build -p wenlan-app
pnpm install
pnpm dev:all
pnpm build:all
pnpm dev:all es el punto de entrada de desarrollo compatible para la aplicación de escritorio. Mantiene los puertos de desarrollo, los datos, la propiedad de procesos, la identidad de la aplicación, los sockets MCP y el estado de Remote Access separados del runtime de producción instalado; una aplicación de depuración iniciada sin ese aislamiento se niega a ejecutarse. Consulta AGENTS.md y CONTRIBUTING.md de este repositorio, además de app/AGENTS.md en el árbol, para el flujo de trabajo de desarrollo completo. Informes de seguridad: SECURITY.md. También lee el Código de Conducta.
Licencia
Wenlan está licenciado bajo Apache-2.0. Esto incluye el runtime local, la CLI, el servidor MCP, los tipos compartidos y los archivos de plugin de Claude Code/Codex en este repositorio.
Linaje y pares
Wenlan (文瀾) toma su nombre de 文瀾閣, una biblioteca imperial que albergó 四庫全書 como parte de una de las colecciones de libros más grandes de China.
El modelo llm-wiki v2 de Wenlan es su propia dirección de producto, informada por los linajes de LLM-wiki y agent-memory:
- Karpathy's LLM-wiki note estableció el patrón de fuente bruta a wiki mantenida.
- Rohitg00's LLM Wiki v2 proposal extiende ese patrón con ciclo de vida de memoria, confianza, grafo y mecanismos de recuperación. agentmemory es su implementación concreta de memoria de agente.
- nashsu/llm_wiki es una implementación de escritorio completa del patrón LLM-wiki centrado en documentos.
- basic-memory, obsidian-mind, mcp-memory-service, Memoria y OpenMemory exploran formas adyacentes de conocimiento local y memoria de agente.