Aleph
Aleph
Aleph — это MCP-сервер и навык для рекурсивных языковых моделей (RLM). Он хранит рабочее состояние — индексы поиска, выполнение кода, доказательства, рекурсию — в процессе Python вне окна промпта, поэтому LLM итеративно рассуждает над большими кодовыми базами, долгосрочными проектами, логами, документами и данными, не расходуя контекст на «сырой» контент.
+-----------------+ tool calls +-----------------------------+
| LLM client | ---------------> | Aleph (Python process) |
| (context budget)| <--------------- | search / peek / exec / sub |
+-----------------+ small results +-----------------------------+Почему Aleph:
Загружай один раз, рассуждай многократно. Данные живут в памяти Aleph, а не в промпте.
Вычисления на стороне сервера.
exec_pythonвыполняет код по всему контексту и возвращает только полученные результаты. Для JS/TS репозиториевexec_javascriptиexec_typescriptпредоставляют постоянную среду выполнения Node.js поверх того жеctx.Рекурсия. Подзапросы и рецепты разбивают сложную работу на несколько этапов рассуждения.
Поддержание рабочих областей в «горячем» состоянии. Привязывайте контексты к файлам или созданным манифестам рабочих областей, обновляйте их и возобновляйте длительные исследования позже.
Быстрый старт
pip install "aleph-rlm[mcp]"
aleph-rlm install --profile claude # or: codex, portable, api
aleph-rlm doctor # verify everything is wired upЗатем перезапустите ваш MCP-клиент и убедитесь, что Aleph доступен:
get_status()
list_contexts()Опциональный ярлык навыка /aleph (для Claude Code) или $aleph (для Codex) запускает структурированный рабочий процесс RLM. Установите docs/prompts/aleph.md в папку команд/навыков вашего клиента — см. MCP_SETUP.md для точных путей.
Если вы используете инструменты действий в реальном репозитории, самый безопасный вариант по умолчанию:
aleph --enable-actions --action-policy read-onlyCursor
Используйте глобальный MCP (aleph-rlm install cursor) для --workspace-mode any или проектный MCP (aleph-rlm install cursor-project из репозитория) для ${workspaceFolder} + --workspace-mode fixed. Chat, Composer и CLI Cursor используют эту конфигурацию MCP; расширение Cursor является опциональным и не требуется для Aleph — см. MCP_SETUP.md.
Точки входа
Команда | Модуль | Что делает |
|
| MCP-сервер. Это то, что запускают MCP-клиенты. Предоставляет 30+ инструментов для управления контекстом, поиска, выполнения кода, рассуждений, рекурсии и инструментов действий. |
|
| Установщик и CLI. |
Профили установки
aleph-rlm install спрашивает, какой профиль подзапроса использовать. Профили настраивают вложенный бэкенд, который sub_query и sub_query_batch порождают для рекурсивных рассуждений.
Профиль | Что закрепляет |
| Нет вложенного бэкенда — вы выберете позже или доверитесь автоопределению |
| Claude CLI: |
| Codex MCP: |
| API, совместимый с OpenAI — установите |
aleph-rlm install claude-code --profile claude
aleph-rlm configure --profile codex # overwrite existing configСм. docs/CONFIGURATION.md для всех переменных окружения, флагов CLI и опций configure(...) во время выполнения.
Рабочий процесс с большими кодовыми базами
Если ваш основной сценарий использования — это репозиторий или проект с несколькими папками, начните с загрузки компактного манифеста рабочей области, вместо того чтобы выбрасывать «сырые» исходные файлы в окно модели. Это дает модели карту проекта, позволяет ей активно искать и делает сессию обновляемой по мере изменения репозитория.
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")Используйте load_workspace_manifest в качестве основного входа для больших кодовых баз и проектов. Затем подтягивайте конкретные файлы с помощью load_file, ищите в репозитории с помощью rg_search и обновляйте привязанный контекст при изменении рабочей области. Обновления сохраняют состояние рассуждений сессии, журнал доказательств и отслеживаемые задачи.
Рабочий процесс с одним файлом
Aleph также эффективен, когда вы загружаете один большой файл, выполняете тяжелую работу внутри Aleph и извлекаете только компактные ответы.
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")Важная привычка — выполнять вычисления на стороне сервера. Не рассматривайте get_variable("ctx") как путь по умолчанию. Сначала ищите, фильтруйте, разбивайте на части или суммируйте, а затем извлекайте небольшой результат.
Если вы хотите режим только терминала вместо MCP, используйте:
aleph run "Summarize this log" --provider cli --model codex --context-file app.logЛокальные модели (llama.cpp)
Aleph может использовать локальную модель вместо облачного API. Это запускает полный цикл RLM — поиск, выполнение кода, сходимость — полностью на вашей машине с нулевыми затратами на API.
Предварительные требования: llama.cpp и файл модели GGUF.
# 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 8080Укажите Aleph на запущенный сервер:
export ALEPH_PROVIDER=llamacpp
export ALEPH_LLAMACPP_URL=http://127.0.0.1:8080
export ALEPH_MODEL=local
alephИли позвольте Aleph запустить сервер автоматически:
export ALEPH_PROVIDER=llamacpp
export ALEPH_LLAMACPP_MODEL=/path/to/model.gguf
export ALEPH_LLAMACPP_CTX=16384
export ALEPH_MODEL=local
alephПротестировано с Qwen 3.5 9B (Q8_0, ~9 ГБ). Любая модель GGUF работает — более крупные модели дают лучшие результаты в цикле RLM. Модели с поддержкой рассуждений/мышления (Qwen 3.5, QwQ и т.д.) обрабатываются автоматически. См. CONFIGURATION.md для всех переменных ALEPH_LLAMACPP_*.
Типовые рабочие нагрузки
Сценарий | В чем хорош Aleph |
Анализ большой кодовой базы / проекта | Построение карты рабочей области, быстрый поиск, загрузка только важных файлов и возможность обновления сессии |
Анализ больших логов | Загрузка больших файлов, отслеживание паттернов, корреляция событий |
Навигация по кодовой базе | Поиск символов, проверка маршрутов, отслеживание поведения |
Исследование данных | Анализ JSON, CSV и смешанного текста с помощью помощников Python |
Обзор длинных документов | Загрузка PDF, документов Word, HTML и сжатых логов |
Рекурсивные исследования | Разбиение работы на подзапросы вместо одного гигантского промпта |
Долгоживущие сессии | Сохранение и возобновление пакетов памяти между сессиями |
Основные инструменты
Категория | Основные инструменты | Что они делают |
Загрузка контекста |
| Помещают данные в память Aleph, привязывают их к активам рабочей области и проверяют, что загружено |
Навигация |
| Находят нужный фрагмент перед запросом ответа |
Вычисления |
| Выполняют Python или JS/TS по всему контексту и извлекают только производный результат |
Рассуждения |
| Структурируют прогресс и завершают работу с доказательствами |
Оркестрация |
| Переключают бэкенды и автоматизируют повторяющиеся паттерны рассуждений |
Сохранение |
| Хранят длительные исследования вне окна промпта |
Python против JS/TS REPL
Основным уровнем управления Aleph по-прежнему является Python. exec_python остается REPL по умолчанию для анализа общего назначения, рецептов и оркестрации.
Используйте
exec_python, когда вам нужна вся поверхность Aleph: промпты, ориентированные на Python, стек числовых/символьных вычислений Python (cmath,mpmath,decimal,fractions,statistics,numpy,scipy,sympy,networkx) или выполнение рецептов черезrun_recipe_code.Используйте
exec_javascript/exec_typescript, когда целевой репозиторий или анализ естественно имеет форму JS/TS и вам нужно постоянное состояние Node, манипуляции с массивами/объектами, свойственные JS, или асинхронная рекурсия сawait.exec_pythonПолная поверхность помощников Aleph, включая DSL-помощники рецептов, синхронныеsub_query(...)/sub_aleph(...)и широчайшая совместимость с существующими промптами и рабочими процессами.exec_javascript/exec_typescriptПостоянная среда выполнения Node.js для каждого контекста для репозиториев с интенсивным использованием JS/TS. Разделяет тот жеctx, поддерживаетawaitверхнего уровня и может выполнять рекурсию с асинхроннымиawait sub_query(...),await sub_query_batch(...),await sub_query_map(...),await sub_query_strict(...)иawait sub_aleph(...). Также включает DSL рецептов (Recipe,Search,Takeи т.д.) для создания полезной нагрузки рецептов в JS/TS.
Среда выполнения JS/TS также поставляется с более широким набором локальных помощников, чем первый срез: поиск/просмотр/строки/фрагменты, помощники извлечения (extract_emails, extract_todos, extract_routes и т.д.), утилиты для текста (number_lines, grep_v, sort_lines, normalize_whitespace и т.д.), помощники сравнения текста (diff, similarity, common_lines, diff_lines), помощники коллекций (flatten, group_by, frequency, sample_items, shuffle_items и т.д.), помощники валидации (is_json, is_email, is_uuid и т.д.), конвертеры CSV/JSON и semantic_search.
Среда выполнения JS/TS теперь также включает DSL рецептов: RecipeStep, RecipeBuilder и все конструкторы шагов (Recipe, Search, Peek, Lines, Take, Chunk, Filter, MapSubQuery, SubQuery, Aggregate, Assign, Load, Finalize, as_recipe). Вы можете создавать рецепты с помощью цепочек или конвейерного стиля:
// Fluent style
Recipe("doc").search("ERROR").take(5).finalize().compile()
// Pipe style
Recipe("doc").pipe(Search("ERROR")).pipe(Take(5)).pipe(Finalize()).compile()Инструменты MCP compile_recipe и run_recipe_code принимают параметр language ("python", "javascript", "typescript") для компиляции кода DSL рецепта в соответствующей среде выполнения.
Что все еще отличается от Python:
Python по-прежнему является REPL Aleph по умолчанию и лучше всего поддерживается.
Помощники рекурсии JS/TS являются асинхронными и требуют
await.Выполнение рецептов (
run_recipe) всегда использует среду выполнения Python. Путь JS/TS охватывает только создание и компиляцию рецептов.JS использует
RecipeBuilder.pipe()/ текучие методы вместо оператора|в Python (в JS|— это побитовое ИЛИ, его нельзя перегрузить для этой цели).Экосистема импорта Python остается только для Python. Среда выполнения Node управляется помощниками: нет
require, нетprocess, нетmoduleи нет загрузки пакетов npm внутри песочницы.exec_typescriptудаляет синтаксис типов для выполнения; это не полноценный компилятор TS, средство проверки типов или средаts-node.Поведение флагов регулярных выражений следует за каждой средой выполнения: помощники Python используют флаги
rePython, в то время как помощники JS/TS используют строки флагов регулярных выражений JavaScript.
Пример рабочего процесса JS/TS:
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")Модель безопасности
Aleph создан для того, чтобы удерживать «сырой» контекст вне окна модели, если вы явно не извлечете его обратно:
Ответы инструментов ограничены и усечены.
get_variable("ctx")учитывает политики и не должен быть вашим путем по умолчанию.stdout,stderrи возвращаемые значенияexec_pythonограничены независимо.ALEPH_CONTEXT_POLICY=isolatedдобавляет более строгие правила экспорта/импорта сессий и более защищенные настройки по умолчанию.ALEPH_ACTION_POLICY=read-only(или--action-policy read-only) удерживает инструменты действий в режиме «только чтение»: поиск и загрузка файлов все еще работают, но запись и выполнение подпроцессов заблокированы.
Самый безопасный паттерн всегда:
Загрузить большой контекст в память Aleph.
Искать или вычислять внутри Aleph.
Извлечь только тот небольшой результат, который вам нужен.
Карта документации
MCP_SETUP.md: установка MCP и навыков для каждого клиента.
docs/prompts/aleph.md: рабочий процесс
/alephи$alephплюс паттерны инструментов.docs/CONFIGURATION.md: флаги, переменные окружения, лимиты и настройки безопасности.
docs/langgraph-rlm-default.md: интеграция LangGraph с использованием инструментов в стиле Aleph.
examples/langgraph_rlm_repo_improver.py: пример улучшения репозитория с опциональной трассировкой LangSmith.
CHANGELOG.md: история релизов.
DEVELOPMENT.md: руководство для участников.
Разработка
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/Ссылки
Zhang, A. L., Kraska, T., Khattab, O. (2025) Recursive Language Models (arXiv:2512.24601)
Лицензия
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