Skip to main content
Glama

Aleph

License: MIT Python 3.10+ PyPI version

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-only

Cursor

Используйте глобальный 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.

Related MCP server: MCP-RLM

Точки входа

Команда

Модуль

Что делает

aleph

aleph.mcp.local_server:main

MCP-сервер. Это то, что запускают MCP-клиенты. Предоставляет 30+ инструментов для управления контекстом, поиска, выполнения кода, рассуждений, рекурсии и инструментов действий.

aleph-rlm

aleph.cli:main

Установщик и CLI. install, configure, doctor, uninstall для настройки MCP-клиентов. Также: run (одиночный запрос), shell (интерактивный REPL), serve (запуск MCP-сервера вручную).

Профили установки

aleph-rlm install спрашивает, какой профиль подзапроса использовать. Профили настраивают вложенный бэкенд, который sub_query и sub_query_batch порождают для рекурсивных рассуждений.

Профиль

Что закрепляет

portable

Нет вложенного бэкенда — вы выберете позже или доверитесь автоопределению

claude

Claude CLI: --model opus, --effort low, включена общая сессия

codex

Codex MCP: gpt-5.4, низкий уровень рассуждений, включена общая сессия

api

API, совместимый с OpenAI — установите ALEPH_SUB_QUERY_API_KEY и ALEPH_SUB_QUERY_MODEL

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 и сжатых логов

Рекурсивные исследования

Разбиение работы на подзапросы вместо одного гигантского промпта

Долгоживущие сессии

Сохранение и возобновление пакетов памяти между сессиями

Основные инструменты

Категория

Основные инструменты

Что они делают

Загрузка контекста

load_context, load_file, load_workspace_manifest, refresh_context, list_contexts, diff_contexts

Помещают данные в память Aleph, привязывают их к активам рабочей области и проверяют, что загружено

Навигация

search_context, semantic_search, peek_context, chunk_context, rg_search

Находят нужный фрагмент перед запросом ответа

Вычисления

exec_python, exec_javascript, exec_typescript, get_variable

Выполняют Python или JS/TS по всему контексту и извлекают только производный результат

Рассуждения

think, evaluate_progress, get_evidence, finalize

Структурируют прогресс и завершают работу с доказательствами

Оркестрация

configure, validate_recipe, estimate_recipe, run_recipe, run_recipe_code

Переключают бэкенды и автоматизируют повторяющиеся паттерны рассуждений

Сохранение

save_session, load_session

Хранят длительные исследования вне окна промпта

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 используют флаги re Python, в то время как помощники 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) удерживает инструменты действий в режиме «только чтение»: поиск и загрузка файлов все еще работают, но запись и выполнение подпроцессов заблокированы.

Самый безопасный паттерн всегда:

  1. Загрузить большой контекст в память Aleph.

  2. Искать или вычислять внутри Aleph.

  3. Извлечь только тот небольшой результат, который вам нужен.

Карта документации

  • 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/

Ссылки

Лицензия

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables working with large documents of any size by intelligently segmenting them and using TF-IDF search to retrieve only relevant fragments, preventing context window saturation. Provides 31 domain-agnostic tools for document ingestion, semantic analysis, epistemological validation, and extraction verification across formats like PDF, EPUB, and HTML.
    31
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An implementation of the Recursive Language Models architecture that enables AI agents to process massive documents by programmatically decomposing them into sub-queries. It allows for cost-effective and accurate reasoning across millions of tokens by treating long-form data as an external environment for root and worker models.
    12
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides recursive language model capabilities to AI assistants, enabling efficient exploration of large contexts through iterative Python code execution.
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents with long-term memory and retrieval-augmented generation (RAG) capabilities, allowing them to recall past conversations, search local files, and learn user preferences.
    MIT