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.

Точки входа

Команда

Модуль

Что делает

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

-
security - not tested
A
license - permissive license
-
quality - not tested

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