使用说明
阿列夫
Aleph是一个 MCP服务器 以及技能 递归语言模型 (RLMs)。它保持工作状态——搜索索引, 代码执行、证据、递归——在提示符外的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 (克劳德代码)或 $aleph (Codex)技能快捷方式开始
结构化的RLM工作流。安装
docs/prompts/aleph.md 进入客户的
命令/技能文件夹--请参见 MCP_SETUP.md 精确的路径。
如果你在真实的仓库上使用操作工具,最安全的默认设置是:
aleph --enable-actions --action-policy read-only
光标
使用 全球 MCP(aleph-rlm install cursor)for --workspace-mode any,或
项目 MCP(aleph-rlm install cursor-project 来自回购)
${workspaceFolder} + --workspace-mode fixed.Chat、Composer和光标
CLI共享MCP配置;游标扩展是可选的,不是必需的
阿莱夫——看 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 |
食品法典委员会MCP: gpt-5.4,推理工作量低,支持共享会话 |
api |
OpenAI兼容的API-集 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 GB)测试。任何GGUF模型都适用——更大的模型
在RLM循环中给出更好的结果。具有推理/思维支持的模型
(Qwen 3.5、QwQ等)是自动处理的。看
配置.md 对于所有 ALEPH_LLAMACPP_*
变量。
常见工作量
| 场景 | Aleph擅长什么 |
|---|---|
| 大型代码库/项目分析 | 构建工作区图,快速搜索,仅加载重要文件,并保持会话可刷新 |
| 大日志分析 | 加载大文件、跟踪模式、关联事件 |
| 代码库导航 | 搜索符号、检查路线、跟踪行为 |
| 数据探索 | 使用Python助手分析JSON、CSV和混合文本 |
| 长文档审阅 | 加载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
阿莱夫 主控制层仍然是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形状,你想要持久的节点状态,JS原生数组/ 对象操作或异步递归await. -
exec_python完整的Aleph助手界面,包括配方DSL助手、同步sub_query(...)/sub_aleph(...),并与最广泛的兼容性 现有的提示和工作流。 -
exec_javascript/exec_typescript为js/TS重存储库提供每个上下文的持久Node.js运行时。共享相同ctx,支持顶级await,并且可以使用async递归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()
这 compile_recipe 和 run_recipe_code MCP工具接受 language
参数("python", "javascript", "typescript")编译配方DSL
在相应的运行时中编写代码。
与Python的区别:
- Python仍然是默认的、支持最好的Aleph REPL。
- JS/TS递归助手是异步的,需要
await. - 食谱 执行 (
run_recipe)始终使用Python运行时。JS/TS 路径涵盖食谱 建筑与编译 只有。 - JS使用
RecipeBuilder.pipe()/流畅的方法,而不是Python的|操作员(JS|按位或,为此目的不可重载)。 - Python的导入生态系统仍然只有Python。Node运行时由助手主导:
不
require,没有process,没有module,内部不加载npm包 沙箱。 exec_typescript用于执行的strips类型语法;它不是一个完整的TS 编译器、类型检查器或ts-node环境。- 正则表达式标志行为遵循每个运行时:Python助手使用Python
re标志,而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")是策略感知的,不应该是您的默认路径。exec_pythonstdout、stderr和返回值是独立有界的。ALEPH_CONTEXT_POLICY=isolated添加更严格的会话导出/导入规则,以及 更多防御性违约。ALEPH_ACTION_POLICY=read-only(或--action-policy read-only)保持行动 只读模式下的工具:搜索和文件加载仍然有效,但写入和 子流程执行被阻止。
最安全的模式总是:
- 将大上下文加载到Aleph内存中。
- 在Aleph内部搜索或计算。
- 只检索您需要的小结果。
文档地图
- MCP_SETUP.md:逐个客户MCP和技能安装。
- docs/promises/aleph.md:the
/aleph和$aleph工作流程加上工具模式。 - docs/CONFIGURATION.md:标志、环境变量、限制和 安全设置。
- docs/langgraph-rlm-default.mdLangGraph: 与Aleph风格的工具使用集成。
- 示例/langgraph_rlm_repo_improver.py: 带有可选LangSmith跟踪的repo改进示例。
- 更改日志.md:发布历史记录。
- Developpent.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/
参考文献
- 张,A.L.,克拉斯卡,T.,哈塔卜,O.(2025) 递归语言模型(arXiv:2512.24601)
许可证
麻省理工学院