RAG — a local knowledge base your agent can search.
Retrieval-Augmented Generation — give the agent your own documents as searchable context.
RAG lets free-code answer from your material — docs, runbooks, ADRs, API references, a third-party library's manual — instead of guessing. You index documents once; during a session the agent retrieves the most relevant passages and grounds its answer in them (and can cite the source) rather than hallucinating.
Everything runs locally: a small server on your machine, a local embedding model, and an on-disk vector index. Nothing is uploaded to the cloud.
See the local knowledge base indexed and queried end to end.
Model, database, and how matches are found.
| Piece | What free-code uses |
|---|---|
| Embedding model | all-MiniLM-L6-v2 (sentence-transformers), runs locally — 384-dimension vectors |
| Vector database | FAISS (IndexFlatL2), persisted on disk under ~/.free-code/faiss_store/ (faiss.index + metadata.pkl) |
| Chunking | Recursive splitter — ~1000 chars per chunk with 200 char overlap, split on paragraphs → lines → words |
| Server | Local HTTP server on http://localhost:8085 |
Two pipelines: putting documents in, and querying them back out.
/rag addFile, /rag addGroup, /rag addGithubUrl). Everything is stored locally under ~/.free-code/faiss_store/ for the active knowledge base.Index plain text and common document formats.
| Type | Extensions |
|---|---|
| Plain text | .txt |
| Markdown | .md |
.pdf | |
| Word | .docx, .doc |
<name>.knowledge.md next to a document to attach extra notes/description
for that source. It is used as discovery metadata and excluded from normal search chunks.
Start the server, create a knowledge base, add documents, and search.
# Keep this running (default http://localhost:8085)
free-code-rag
/rag-kb create my-docs # create a knowledge base
/rag-kb use my-docs # make it the active one
/rag addFile ./README.md # index a document
/rag search "how does auth work?" # query it
| Command | Description |
|---|---|
/rag addFile <path> | Index a single document |
/rag addGroup <folder> | Index all supported files in a folder |
/rag addGithubUrl <url> [subpath] | Clone a GitHub repo and index its files (saved as a source for refreshes) |
/rag search <query> | Query the active knowledge base and inject the matches as context |
/rag list | List indexed documents |
/rag remove <file> | Remove a document from the index |
/rag refresh | Re-fetch and re-index registered sources |
/rag schedule [daily|weekly] | Automatic recurring refresh (needs a GitHub source) |
| Command | Description |
|---|---|
/rag-kb create <name> | Create a named knowledge base |
/rag-kb use <name> | Switch the active knowledge base |
/rag-kb list | List all knowledge bases |
Separate indexes you switch between with /rag-kb use.
Each knowledge base is its own isolated index. Keeping several — instead of one big pile — pays off:
/rag-kb use./rag-kb use backend-api before working on the service, then
/rag-kb use design-system when you switch to the UI — the agent always
retrieves from the right body of knowledge.
RAG — una base de conocimiento local que tu agente puede consultar.
Retrieval-Augmented Generation — dale al agente tus propios documentos como contexto consultable.
RAG permite que free-code responda a partir de tu material — documentación, runbooks, ADRs, referencias de API, el manual de una librería de terceros — en lugar de adivinar. Indexas los documentos una vez; durante una sesión el agente recupera los pasajes más relevantes y basa su respuesta en ellos (pudiendo citar la fuente) en vez de alucinar.
Todo se ejecuta localmente: un pequeño servidor en tu máquina, un modelo de embeddings local y un índice vectorial en disco. Nada se sube a la nube.
Observa la base de conocimiento local indexada y consultada de principio a fin.
Modelo, base de datos y cómo se encuentran las coincidencias.
| Elemento | Qué usa free-code |
|---|---|
| Modelo de embeddings | all-MiniLM-L6-v2 (sentence-transformers), se ejecuta localmente — vectores de 384 dimensiones |
| Base de datos vectorial | FAISS (IndexFlatL2), persistida en disco bajo ~/.free-code/faiss_store/ (faiss.index + metadata.pkl) |
| Fragmentación (chunking) | Divisor recursivo — ~1000 caracteres por fragmento con 200 caracteres de solapamiento, dividiendo por párrafos → líneas → palabras |
| Servidor | Servidor HTTP local en http://localhost:8085 |
Dos flujos: cargar documentos y consultarlos de vuelta.
/rag addFile, /rag addGroup, /rag addGithubUrl). Todo se almacena localmente bajo ~/.free-code/faiss_store/ para la base de conocimiento activa.Indexa texto plano y formatos de documento comunes.
| Tipo | Extensiones |
|---|---|
| Texto plano | .txt |
| Markdown | .md |
.pdf | |
| Word | .docx, .doc |
<nombre>.knowledge.md junto a un documento para adjuntar notas o
descripciones adicionales sobre esa fuente. Se usa como metadato de descubrimiento y se excluye
de los fragmentos de búsqueda normales.
Inicia el servidor, crea una base de conocimiento, añade documentos y busca.
# Deja esto en ejecución (por defecto http://localhost:8085)
free-code-rag
/rag-kb create my-docs # crea una base de conocimiento
/rag-kb use my-docs # la convierte en la activa
/rag addFile ./README.md # indexa un documento
/rag search "how does auth work?" # la consulta
| Comando | Descripción |
|---|---|
/rag addFile <path> | Indexa un único documento |
/rag addGroup <folder> | Indexa todos los archivos compatibles de una carpeta |
/rag addGithubUrl <url> [subpath] | Clona un repositorio de GitHub e indexa sus archivos (se guarda como fuente para futuras actualizaciones) |
/rag search <query> | Consulta la base de conocimiento activa e inyecta las coincidencias como contexto |
/rag list | Lista los documentos indexados |
/rag remove <file> | Elimina un documento del índice |
/rag refresh | Vuelve a obtener y reindexar las fuentes registradas |
/rag schedule [daily|weekly] | Actualización recurrente automática (requiere una fuente de GitHub) |
| Comando | Descripción |
|---|---|
/rag-kb create <name> | Crea una base de conocimiento con nombre |
/rag-kb use <name> | Cambia la base de conocimiento activa |
/rag-kb list | Lista todas las bases de conocimiento |
Índices separados entre los que cambias con /rag-kb use.
Cada base de conocimiento es un índice aislado propio. Mantener varias — en lugar de un único gran montón — vale la pena:
/rag-kb use./rag-kb use backend-api antes de trabajar en el servicio, y luego
/rag-kb use design-system al cambiar a la interfaz — el agente siempre
recupera del cuerpo de conocimiento correcto.