Files
rags/AGENTS.md
T
tomatocream 4495a3cc62 feat: add lightrag-mcp MCP server + agent tooling
- Add AGENTS.md with repo guidelines
- Add lightrag-mcp: FastMCP server exposing insert_documents() + query_documents()
  to LLM agents via stdio transport, talks to LightRAG REST API
- Add scripts/patch-vllm-cpu.py for CPU inference patching
- Add .env.vllm for vLLM configuration
- Update flake.nix with expanded dev shell
- Update .env.lightrag
- Remove CLAUDE.md (replaced by AGENTS.md)
2026-04-19 21:46:47 +08:00

2.2 KiB

RAGS

Private learning tool. Ingest study materials → knowledge graph → query → export Anki flashcards.

Two systems:

  • LightRAG (lightrag/) — graph-based RAG server (primary interface)
  • Graphiti (graphiti/) — temporal knowledge graph library (Python library only, needs Neo4j)

Quick Start

# Ollama must be running first on :11434 with:
#   qwen3:0.6b       (LLM)
#   qwen3-embedding:0.6b  (embeddings)

# Start LightRAG only (LLM + embeddings handled externally by Ollama)
nix run .#start
# → http://localhost:9621/webui  (React frontend)
# → http://localhost:9621/docs   (Swagger API)

# Graphiti needs Neo4j running first
nix run .#neo4j-start   # separate terminal
nix develop .#graphiti

Always enter via nix develop from repo root — never activate venvs directly. The shellHook sources .env.lightrag and sets LD_LIBRARY_PATH.

Configuration

.env.lightrag

Restart LightRAG after changes.

Var Value
LLM_BINDING ollama
LLM_MODEL qwen3:0.6b
LLM_BINDING_HOST http://localhost:11434
EMBEDDING_BINDING ollama
EMBEDDING_MODEL qwen3-embedding:0.6b
EMBEDDING_DIM 1024

Verify embedding works:

curl -s http://localhost:11434/api/embed \
  -H "Content-Type: application/json" \
  -d '{"model":"qwen3-embedding:0.6b","input":"test"}'

Critical: If EMBEDDING_DIM changes, delete rag_storage/ before restarting — old vectors are incompatible.

LightRAG Storage

File-based by default (JsonKVStorage, NanoVectorDBStorage, NetworkXStorage). All data in rag_storage/ (gitignored). Safe to delete to reset.

Nix / NixOS Notes

  • UV_PYTHON pinned to nix-provided Python 3.12 (system has 3.14)
  • LD_LIBRARY_PATH set in shellHook for native wheels
  • LightRAG installs with --extra api --extra offline-llm
  • WebUI (React/Bun) built on first shell entry if lightrag/lightrag/api/webui/ missing

Known Issue: Pipeline Stuck

After config changes, pipeline may show busy: true with pending async locks. Symptoms:

  • GET /documents/pipeline_status returns busy: true, request_pending: true
  • New inserts stay at status: pending

Fix: delete rag_storage/, restart. Or POST /documents/cancel_pipeline.