Aleph
Aleph
Aleph ist ein MCP-Server und eine Fähigkeit für Recursive Language Models (RLMs). Er hält den Arbeitszustand — Suchindizes, Codeausführung, Beweise, Rekursion — in einem Python-Prozess außerhalb des Prompt-Fensters, sodass das LLM iterativ über große Codebasen, langlebige Projekte, Protokolle, Dokumente und Daten nachdenken kann, ohne Kontext für Rohinhalte zu verbrauchen.
+-----------------+ tool calls +-----------------------------+
| LLM client | ---------------> | Aleph (Python process) |
| (context budget)| <--------------- | search / peek / exec / sub |
+-----------------+ small results +-----------------------------+Warum Aleph:
Einmal laden, mehrfach schlussfolgern. Daten leben im Aleph-Speicher, nicht im Prompt.
Serverseitige Berechnung.
exec_pythonführt Code über den gesamten Kontext aus und gibt nur abgeleitete Ergebnisse zurück. Für JS/TS-Repos bietenexec_javascriptundexec_typescripteine persistente Node.js-Laufzeitumgebung über denselbenctx.Rekursion. Unterabfragen und Rezepte teilen komplexe Aufgaben in mehrere Schlussfolgerungsdurchläufe auf.
Arbeitsbereiche warm halten. Binden Sie Kontexte an Dateien oder generierte Arbeitsbereichs-Manifeste, aktualisieren Sie diese und setzen Sie lange Untersuchungen später fort.
Schnelleinstieg
pip install "aleph-rlm[mcp]"
aleph-rlm install --profile claude # or: codex, portable, api
aleph-rlm doctor # verify everything is wired upStarten Sie dann Ihren MCP-Client neu und bestätigen Sie, dass Aleph verfügbar ist:
get_status()
list_contexts()Die optionale /aleph (Claude Code) oder $aleph (Codex) Skill-Verknüpfung startet einen strukturierten RLM-Workflow. Installieren Sie docs/prompts/aleph.md in den Befehls-/Skill-Ordner Ihres Clients — siehe MCP_SETUP.md für genaue Pfade.
Wenn Sie Aktionstools in einem echten Repo verwenden, ist die sicherste Standardeinstellung:
aleph --enable-actions --action-policy read-onlyCursor
Verwenden Sie globales MCP (aleph-rlm install cursor) für --workspace-mode any oder Projekt-MCP (aleph-rlm install cursor-project aus dem Repo) für ${workspaceFolder} + --workspace-mode fixed. Chat, Composer und die Cursor-CLI teilen sich diese MCP-Konfiguration; eine Cursor-Erweiterung ist optional und für Aleph nicht erforderlich — siehe MCP_SETUP.md.
Einstiegspunkte
Befehl | Modul | Was es tut |
|
| MCP-Server. Dies ist, was MCP-Clients starten. Stellt über 30 Tools für Kontextverwaltung, Suche, Codeausführung, Schlussfolgerung, Rekursion und Aktionstools bereit. |
|
| Installationsprogramm und CLI. |
Installationsprofile
aleph-rlm install fragt, welches Unterabfrageprofil verwendet werden soll. Profile konfigurieren das verschachtelte Backend, das sub_query und sub_query_batch für rekursives Schlussfolgern erzeugen.
Profil | Was es festlegt |
| Kein verschachteltes Backend — Sie wählen später oder verlassen sich auf die automatische Erkennung |
| Claude CLI: |
| Codex MCP: |
| OpenAI-kompatible API — setzen Sie |
aleph-rlm install claude-code --profile claude
aleph-rlm configure --profile codex # overwrite existing configSiehe docs/CONFIGURATION.md für alle Umgebungsvariablen, CLI-Flags und Laufzeit-configure(...)-Optionen.
Workflow für große Codebasen
Wenn Ihr Hauptanwendungsfall ein Repo oder ein Projekt mit mehreren Ordnern ist, beginnen Sie damit, ein kompaktes Arbeitsbereichs-Manifest zu laden, anstatt Rohquellcodedateien in das Modellfenster zu werfen. Das gibt dem Modell eine Karte des Projekts, lässt es aggressiv suchen und hält die Sitzung aktualisierbar, während sich das Repo ändert.
load_workspace_manifest(paths=["src", "tests"], context_id="repo")
rg_search(pattern="FastAPI|APIRouter|router\\.", paths=["src", "tests"], load_context_id="routes")
load_file(path="pyproject.toml", context_id="pyproject")
exec_python(code="""
files = [line for line in ctx.splitlines() if line.startswith("- ")]
summary = {
"indexed_entries": len(files),
"top_python_files": [line for line in files if "| python |" in line][:10],
}
""", context_id="repo")
get_variable(name="summary", context_id="repo")
refresh_context(context_id="repo")Verwenden Sie load_workspace_manifest als Standard-Eingangstor für große Codebasen und Projekte. Ziehen Sie dann bestimmte Dateien mit load_file hinzu, durchsuchen Sie das Repo mit rg_search und aktualisieren Sie den gebundenen Kontext, wenn sich der Arbeitsbereich ändert. Aktualisierungen bewahren den Schlussfolgerungszustand der Sitzung, das Beweisprotokoll und die verfolgten Aufgaben.
Workflow für einzelne Dateien
Aleph ist auch stark, wenn Sie eine große Datei einmal laden, die schwere Arbeit innerhalb von Aleph erledigen und nur kompakte Antworten abrufen.
load_file(path="/absolute/path/to/large_file.log", context_id="doc")
search_context(pattern="ERROR|WARN", context_id="doc")
peek_context(start=1, end=60, unit="lines", context_id="doc")
exec_python(code="""
errors = [line for line in ctx.splitlines() if "error" in line.lower()]
result = {
"error_count": len(errors),
"first_error": errors[0] if errors else None,
}
""", context_id="doc")
get_variable(name="result", context_id="doc")
save_session(context_id="doc", path=".aleph/doc.json")Die wichtige Gewohnheit ist, serverseitig zu rechnen. Behandeln Sie get_variable("ctx") nicht als Standardpfad. Suchen, filtern, unterteilen oder fassen Sie zuerst zusammen und rufen Sie dann ein kleines Ergebnis ab.
Wenn Sie den Nur-Terminal-Modus anstelle von MCP wünschen, verwenden Sie:
aleph run "Summarize this log" --provider cli --model codex --context-file app.logLokale Modelle (llama.cpp)
Aleph kann ein lokales Modell anstelle einer Cloud-API verwenden. Dies führt die vollständige RLM-Schleife — Suche, Codeausführung, Konvergenz — vollständig auf Ihrem Computer ohne API-Kosten aus.
Voraussetzungen: llama.cpp und eine GGUF-Modelldatei.
# Install llama.cpp
brew install llama.cpp # Mac
winget install ggml.LlamaCpp # Windows
# Start the server with your model
llama-server -m /path/to/model.gguf -c 16384 -ngl 99 --port 8080Verweisen Sie Aleph auf den laufenden Server:
export ALEPH_PROVIDER=llamacpp
export ALEPH_LLAMACPP_URL=http://127.0.0.1:8080
export ALEPH_MODEL=local
alephOder lassen Sie Aleph den Server automatisch starten:
export ALEPH_PROVIDER=llamacpp
export ALEPH_LLAMACPP_MODEL=/path/to/model.gguf
export ALEPH_LLAMACPP_CTX=16384
export ALEPH_MODEL=local
alephGetestet mit Qwen 3.5 9B (Q8_0, ~9 GB). Jedes GGUF-Modell funktioniert — größere Modelle liefern bessere Ergebnisse in der RLM-Schleife. Modelle mit Unterstützung für Schlussfolgerung/Denken (Qwen 3.5, QwQ, etc.) werden automatisch gehandhabt. Siehe CONFIGURATION.md für alle ALEPH_LLAMACPP_*-Variablen.
Häufige Arbeitslasten
Szenario | Wofür Aleph gut ist |
Analyse großer Codebasen / Projekte | Erstellen Sie eine Arbeitsbereichskarte, suchen Sie schnell, laden Sie nur die wichtigen Dateien und halten Sie die Sitzung aktualisierbar |
Analyse großer Protokolle | Laden Sie große Dateien, verfolgen Sie Muster, korrelieren Sie Ereignisse |
Navigation in Codebasen | Suchen Sie Symbole, untersuchen Sie Routen, verfolgen Sie Verhalten |
Datenexploration | Analysieren Sie JSON, CSV und gemischten Text mit Python-Helfern |
Überprüfung langer Dokumente | Laden Sie PDFs, Word-Dokumente, HTML und komprimierte Protokolle |
Rekursive Untersuchungen | Teilen Sie die Arbeit in Unterabfragen auf, anstatt einen riesigen Prompt zu verwenden |
Lang laufende Sitzungen | Speichern und setzen Sie Speicherpakete über Sitzungen hinweg fort |
Kern-Tools
Kategorie | Primäre Tools | Was sie tun |
Kontext laden |
| Daten in den Aleph-Speicher laden, an Arbeitsbereichs-Assets binden und untersuchen, was geladen ist |
Navigieren |
| Finden Sie das relevante Segment, bevor Sie nach einer Antwort fragen |
Berechnen |
| Führen Sie Python oder JS/TS über den gesamten Kontext aus und rufen Sie nur das abgeleitete Ergebnis ab |
Schlussfolgern |
| Strukturieren Sie den Fortschritt und schließen Sie mit Beweisen ab |
Orchestrieren |
| Wechseln Sie Backends und automatisieren Sie wiederholte Schlussfolgerungsmuster |
Persistenz |
| Halten Sie lange Untersuchungen außerhalb des Prompt-Fensters |
Python vs. JS/TS REPL
Alephs primäre Steuerungsebene ist weiterhin Python. exec_python bleibt die Standard-REPL für allgemeine Analysen, Rezepte und Orchestrierung.
Verwenden Sie
exec_python, wenn Sie die volle Aleph-Oberfläche benötigen: Python-first Prompts, Pythons numerischer / symbolischer Stack (cmath,mpmath,decimal,fractions,statistics,numpy,scipy,sympy,networkx) oder Rezeptausführung überrun_recipe_code.Verwenden Sie
exec_javascript/exec_typescript, wenn das Ziel-Repo oder die Analyse natürlich JS/TS-geformt ist und Sie einen persistenten Node-Zustand, JS-native Array-/Objektmanipulation oder asynchrone Rekursion mitawaitwünschen.exec_pythonVolle Aleph-Helferoberfläche, einschließlich Rezept-DSL-Helfer, synchronessub_query(...)/sub_aleph(...)und die breiteste Kompatibilität mit bestehenden Prompts und Workflows.exec_javascript/exec_typescriptPersistente Node.js-Laufzeitumgebung pro Kontext für JS/TS-lastige Repos. Teilt denselbenctx, unterstützt Top-Levelawaitund kann mit asynchronemawait sub_query(...),await sub_query_batch(...),await sub_query_map(...),await sub_query_strict(...)undawait sub_aleph(...)rekursiv sein. Enthält auch die Rezept-DSL (Recipe,Search,Takeusw.) zum Erstellen von Rezept-Payloads in JS/TS.
Die JS/TS-Laufzeitumgebung wird auch mit einem breiteren lokalen Helfer-Set geliefert als das erste Handoff-Segment: Suchen/Peek/Zeilen/Chunk, Extraktionshelfer (extract_emails, extract_todos, extract_routes usw.), Text-Dienstprogramme (number_lines, grep_v, sort_lines, normalize_whitespace usw.), Textvergleichshelfer (diff, similarity, common_lines, diff_lines), Sammlungshelfer (flatten, group_by, frequency, sample_items, shuffle_items usw.), Validierungshelfer (is_json, is_email, is_uuid usw.), CSV-/JSON-Konverter und semantic_search.
Die JS/TS-Laufzeitumgebung enthält jetzt auch die Rezept-DSL: RecipeStep, RecipeBuilder und alle Schritt-Konstruktoren (Recipe, Search, Peek, Lines, Take, Chunk, Filter, MapSubQuery, SubQuery, Aggregate, Assign, Load, Finalize, as_recipe). Sie können Rezepte mit flüssiger Verkettung oder im Pipe-Stil erstellen:
// Fluent style
Recipe("doc").search("ERROR").take(5).finalize().compile()
// Pipe style
Recipe("doc").pipe(Search("ERROR")).pipe(Take(5)).pipe(Finalize()).compile()Die MCP-Tools compile_recipe und run_recipe_code akzeptieren einen language-Parameter ("python", "javascript", "typescript"), um Rezept-DSL-Code in der entsprechenden Laufzeitumgebung zu kompilieren.
Was sich von Python unterscheidet:
Python ist immer noch die Standard- und am besten unterstützte Aleph-REPL.
JS/TS-Rekursionshelfer sind asynchron und erfordern
await.Die Rezept-Ausführung (
run_recipe) verwendet immer die Python-Laufzeitumgebung. Der JS/TS-Pfad deckt nur das Rezept-Erstellen und Kompilieren ab.JS verwendet
RecipeBuilder.pipe()/ flüssige Methoden anstelle des Python-Operators|(JS|ist bitweises ODER, nicht für diesen Zweck überladbar).Pythons Import-Ökosystem bleibt nur Python. Die Node-Laufzeitumgebung ist helfergesteuert: kein
require, keinprocess, keinmoduleund kein Laden von npm-Paketen innerhalb der Sandbox.exec_typescriptentfernt Typsyntax für die Ausführung; es ist kein vollständiger TS-Compiler, Typ-Prüfer oderts-node-Umgebung.Das Verhalten von Regex-Flags folgt jeder Laufzeitumgebung: Python-Helfer verwenden Python
re-Flags, während JS/TS-Helfer JavaScript-Regex-Flag-Strings verwenden.
Beispiel für einen JS/TS-Workflow:
exec_typescript(code=`
const routes: string[] = extract_routes('javascript').map((item) => item.value);
const routeKinds = frequency(
routes.map((route) => (route.includes('.post(') ? 'write' : 'read')),
2,
);
const notes = await sub_query_map(
routes.map((route) => `Explain ${route}`),
routes,
);
({ routeCount: routes.length, routeKinds, notes })
`, context_id="repo")Sicherheitsmodell
Aleph wurde entwickelt, um Rohkontext aus dem Modellfenster fernzuhalten, es sei denn, Sie rufen ihn explizit ab:
Tool-Antworten sind begrenzt und gekürzt.
get_variable("ctx")ist richtlinienbewusst und sollte nicht Ihr Standardpfad sein.exec_pythonstdout, stderr und Rückgabewerte sind unabhängig begrenzt.ALEPH_CONTEXT_POLICY=isolatedfügt strengere Regeln für den Sitzungsexport/-import und defensivere Standardeinstellungen hinzu.ALEPH_ACTION_POLICY=read-only(oder--action-policy read-only) hält Aktionstools im schreibgeschützten Modus: Suchen und Laden von Dateien funktionieren weiterhin, aber Schreibvorgänge und die Ausführung von Subprozessen sind blockiert.
Das sicherste Muster ist immer:
Laden Sie den großen Kontext in den Aleph-Speicher.
Suchen oder berechnen Sie innerhalb von Aleph.
Rufen Sie nur das kleine Ergebnis ab, das Sie benötigen.
Dokumentationskarte
MCP_SETUP.md: Client-für-Client MCP- und Skill-Installation.
docs/prompts/aleph.md: der
/alephund$alephWorkflow plus Tool-Muster.docs/CONFIGURATION.md: Flags, Umgebungsvariablen, Limits und Sicherheitseinstellungen.
docs/langgraph-rlm-default.md: LangGraph-Integration mit Aleph-artiger Tool-Nutzung.
examples/langgraph_rlm_repo_improver.py: Beispiel für Repo-Verbesserung mit optionalem LangSmith-Tracing.
CHANGELOG.md: Release-Historie.
DEVELOPMENT.md: Entwickler-Leitfaden.
Entwicklung
git clone https://github.com/Hmbown/aleph.git
cd aleph
pip install -e ".[dev,mcp]"
# Optional extras:
# .[docs] -> MarkItDown-backed document conversion
# .[observability] -> OpenTelemetry spans
pytest tests/ -v
ruff check aleph/ tests/Referenzen
Zhang, A. L., Kraska, T., Khattab, O. (2025) Recursive Language Models (arXiv:2512.24601)
Lizenz
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Hmbown/aleph'
If you have feedback or need assistance with the MCP directory API, please join our Discord server