For AI agents: the complete documentation index is available at https://a3s-lab.github.io/ash/llms.txt, the full documentation bundle is available at https://a3s-lab.github.io/ash/llms-full.txt, and this page is available as Markdown at https://a3s-lab.github.io/ash/guide/capabilities.md.
  • 简体中文
  • next
  • 完整能力地图

    ash 把仓库工作变成面向 Coding Agent 的类型化、有界程序。当前能力面覆盖探索、 进程执行、安全修改、并行任务图、工作区状态、证据取回、授权与签名交付。所有操作 都返回规范 ASON,而不是面向终端用户的说明文字。

    预发布边界

    源码实现、跨平台安装器和六目标发布流水线已经可用,但发布凭据尚未配置,也没有 受支持的签名二进制发行版。

    ASH/1 操作面

    请求信封固定为 t,i,o,a,u;只有可信 Harness 执行已批准的 Permit 重试时才添加 v。十五个操作 ID 让行为保持显式:

    范畴ID能力运行保证
    进程x以 argv、工作目录、环境增量、标准输入和标志启动程序不隐式调用 Shell;并发捕获 stdout/stderr;支持期限、取消与所属进程树清理
    读取r读取明确的字节区间或从 1 开始的行区间路径限制在工作区内,输出有界
    列表l按最大深度遍历稳定路径与元数据确定性顺序与记录预算
    搜索g在指定根中执行字面量或正则搜索CPU 分区并行后稳定归并
    补丁p对已有文件应用对齐的字节编辑排序的 BLAKE3 前像、CAS 冲突检测、不产生部分提交
    文件事务f创建、复制、移动或删除普通文件日志化全有或全无提交、禁止覆盖、回滚与重启恢复
    批处理b执行无环依赖图就绪节点并发、失败后代跳过、独立工作排空、最低稳定索引错误
    快照s捕获工作区清单或对比相同作用域的基线确定性快照与限定范围的增量
    证据字节/从保留结果取回从 0 开始的字节区间精确、有界字节
    证据行#取回从 1 开始的行区间精确、有界行
    证据搜索?搜索保留结果完整存储源仍然可用
    证据释放-释放一个保留别名活跃租约结束后显式清理;未知或占用中的别名会失败
    证据投影|投影有序表格的列与行稳定、理解 Schema 的投影
    证据物化>将保留字节写入工作区受能力控制、日志化、禁止覆盖
    取消k取消排队中或运行中的工作及其后代幂等完成与所属资源清理

    精确参数列、标志、响应变体、帧、握手和诊断码见 ASH/1 协议

    运行时与调度

    一套分层 Governor 同时约束主机、会话、请求和操作。Tokio 管理帧式 RPC、子进程、 管道、期限和取消;Rayon 管理搜索、哈希、Diff、归约、保留存储提交与其他可拆分 CPU 工作。并行完成顺序不会泄漏成协议顺序,稳定归并最终生成确定性的规范 ASON。

    批处理请求会在启动前校验任务图。节点在依赖成功后就绪;失败节点只跳过自己的 后代,已经运行或相互独立的节点会先排空,然后 ash 再选择稳定的任务错误。

    小即时上下文与无损证据

    进程输出由有界会话存储无损捕获。固定的头尾投影保持即时响应紧凑;会话越过 4 MiB 内存上限后,不可变证据会落到私有文件。区间取回、别名、去重、租约、正常 释放以及经过证明的崩溃孤儿恢复都属于同一存储契约。

    归约是显式的,而不是静默截断:

    • ×N 标记重复行,×N#K 标记重复块,⋯N 标记省略的诊断区域。
    • 同构 ASON 记录按列编码,重复路径进入字典。
    • / # ? - | > 在同一个存活会话中作用于完整保留结果,Coding Agent 无需重跑 宽泛任务就能只取回缺失证据。
    • 每个预算都会说明即时投影是否完整,以及是否存在可取回的保留源。

    保留别名只在生成它的会话中有效。自包含的 ash run 调用会在响应后关闭临时会话; 引用公式、快照 delta、Batch 子响应检查、运行中取消与 Permit 重试都需要保留同一个 存活的帧式 ash rpc 会话。

    工作区完整性与恢复

    所有原生工作区操作都解析受限的规范相对路径,并拒绝词法或符号链接逃逸。补丁 必须携带当前 BLAKE3 前像。多文件生命周期修改使用带校验和的磁盘日志、跨进程 串行化、持久提交标记、逆序回滚和重启恢复。原生文件身份会关闭硬链接崩溃窗口, 又不会把内容相同的外部文件误判为 ash 状态。

    事务故障矩阵会驱动真实实现经过 30 个正向持久化切点,并在 12 个回滚或清理切点 再次中断恢复。快照/增量则提供一份独立、类型化的工作区结果视图。

    能力、Permit 与交付

    RPC 握手协商最小权限能力掩码。高风险语义重试需要绑定会话、动作、策略与过期 时间的一次性 Permit,重放会被拒绝。它授权的是 ash 行为,并不等于为任意子进程 提供通用网络或系统调用沙箱。

    ash self status|check|update|rollback|recover 使用规范 ASON。更新元数据有字节上限 且只接受 HTTPS;签名清单强制 Ed25519 校验、序列单调性、精确归档结构、解压上限、 内嵌二进制身份、事务激活、健康检查恢复与回滚。发布流程覆盖 Linux、macOS、 Windows 的 x86-64 和 ARM64,并生成校验和、SBOM 与来源证明。

    支撑这些描述的证据

    • 327 个 Rust 工作区测试覆盖类型化 Schema、RPC、操作、存储、事务、恢复、取消、 更新、确定性调度与人类 Shell。
    • schema-14 运行时 Harness 包含 22 个场景,并在不同 Worker 配置下验证 8 MiB 输出 跨越 4 MiB 内存上限后的落盘与区间取回。
    • 7 个锁定代码任务在同一任务和 Transcript Schema 下对比原生 Shell Agent 与 ash Agent 轨迹。
    • 完整测试 1,024 种四节点前向 DAG/成功掩码组合,并强制改变完成顺序。
    • 源码绑定的格式报告、Fuzz、AddressSanitizer 产物、安装器冒烟测试与第三方许可 门禁保证证据可复现。

    测量契约见基准与证据,信任与恢复模型见 安全

    明确的非目标

    ASH/1 不是人类 REPL、POSIX Shell 兼容层、内嵌模型、远程执行器或通用进程沙箱。 它不提供交互式终端、Shell 语言求值、覆盖写入、递归目录修改,也不在 Batch 节点间 传递运行时值。这些边界让类型化契约保持可移植、可审计。

    独立且受 feature 控制的 ash shell H1 检查点加入行编辑 REPL、可配置提示符、经过 安全检查的持久历史、显式启用的启动 Profile 与 exit,并可顺序执行 pwdechocd、展开后的 export/unsetset pipefail 控制、可移植 ls、有界原始字节 cat、有界文本 grep、带日志事务的 cp/mv/rm、只创建空文件的 touch, 以及直接 argv 的宿主原生命令。带源码位置的 $NAME${NAME}$? 节点会先经过 引用感知的原生字符串展开和固定的未引用字段拆分,再进行命令解析;嵌套 $(...) 节点会递归保留同一类型化 Script 计划和绝对诊断位置,随后活动的未引用路径名模式会 在固定匹配数和目录扫描上限内展开。源码可来自终端、 内联参数,或有界 stdin/原生脚本文件。状态命令和可移植操作使用普通用户权限;原生 程序则通过平台进程树边界继承持久 Shell cwd/环境与普通 OS 权限。未重定向的独立原生 进程及管道首阶段 stdin 仍为空设备,前台交互程序与作业控制留在 H4。该入口是人类前端, 不是自由形式的 ASH/1 操作,也不会改变任何机器能力或约束声明。

    H2 现已提供每条标准流的显式模式、经过完整性与无环校验的原生 OS 管道图,以及 原生/WSL/可移植/状态 builtin 管道 lowering。同一行的 | 可连接两个到 32 个宿主 原生或 Windows 显式 WSL 阶段、已实现的可移植 pwdecholscatgrepcpmvrmtouch,或已实现的状态 cdexportunsetsetexit, 但只有在完整预检成功后才会执行。相邻原生阶段由 OS 管道直连;进程内边界保留显式父进程异步端点,以并发、有界且保留背压的方式执行。 cat -grep PATTERN - 消费上游流。状态阶段会关闭上游 stdin,在独立状态克隆上 执行并向下游传递 EOF,因此不能修改父 Shell;管道中的 exit 只贡献该阶段状态。 最终进程内输出进入同一有界捕获路径。状态默认取最后阶段;set -o pipefail 改取最右 失败的原生、WSL、可移植或状态阶段,set +o pipefail 恢复默认。 原生、WSL 与可移植命令以及已实现的状态 builtin 还支持按源码顺序应用的 <>>>2>2>>2>&11>&2。 文件目标必须展开为恰好一个字段,相对路径以持久 cwd 为基准,并直接连接子进程或父任务 OS 句柄; 一份图级顺序会交错打开原生、可移植与状态任务文件,共享文件或捕获 会保留真实描述符写入顺序。父进程端、父进程任务互连、子进程直连、纯原生、混合、 纯可移植、状态阶段与有序重定向回归会跨平台锁定背压、精确字节、EOF 关闭、 broken-pipe 行为、克隆状态隔离、句柄暴露和副作用顺序。状态参数会在打开文件前完成 预检;简单状态命令先打开文件再修改父状态,管道状态文件加入同一图级顺序,重定向其 空 stdout 会正常关闭下游。带源码位置的 Shell 诊断不会进入命令原始 stderr。有序 lowering 可以替换任意原生、WSL、可移植或已实现状态阶段的内部 stdin 或 stdout: 显式由父进程关闭的端点向下游传递 EOF 或向上游暴露原生 broken-pipe,同时仍引用管道 的复制描述符会保持连接。父进程资源领取完毕后,原生图会转换为统一作业监督器:等待 结果保持规格顺序,任一准备、捕获或等待失败都会终止并回收所有原生成员拥有的进程树; 进程内阶段与捕获任务共用同一管道完成边界。WSL 解析会定位 wsl.exe,再用精确的 --distribution/--cd/--exec argv 把 wrapper 降到同一流与宿主文件图;launcher 缺失会在预检阶段失败,所选状态保留 backend/发行版元数据。设置 ASH_TEST_WSL_DISTRIBUTION 后,Windows 回归会通过准备好的发行版流式传输 8 MiB fixture。第一个 H3 检查点把可移植文件修改绑定到持久 cwd,并与 ASH/1 fs 共用 BLAKE3 preimage、持久日志与禁止覆盖的事务服务。cpmvrm 会立即派生并在 事务内重验源文件身份;touch 只创建新的空文件。路径逃逸、符号链接/reparse 穿越、目录、超限文件、覆盖与无法写入日志的路径都会显式失败。重定向文件先于事务 打开,修改阶段不输出字节,冲突进入普通最终阶段/pipefail 状态选择。第二个 H3 检查点加入带源码位置的 &&/|| 完整管道列表。两者优先级相同并从左到右针对最终 阶段或 pipefail 选择后的可见状态求值。被短路的管道保留该状态,不进行展开、解析、 预检、重定向打开、启动、状态修改或文件事务;只有实际执行的 exit 会停止源码。 任何副作用前仍会完整解析整份源码。 第三个 H3 检查点在命令词和文件重定向目标中加入嵌套命令替换,最多 32 层,并严格 按源码顺序执行。每次替换使用完整 Shell 状态克隆,从有界 stdout 删除全部尾随 LF, 保留外部副作用,并只向外传播一次 stderr 与诊断,不修改父状态或 $?。双引号保留 单字段,未引用输出按固定 ASCII 分隔符拆分;NUL 会被拒绝,Unix 保留非 UTF-8 字节,Windows 要求 UTF-8。替换值与 stdout/stderr 共享剩余 128 MiB 捕获额度;捕获 失败会阻止外层命令,短路管道则完全不运行替换。若后续阶段的外层预检失败,之前按 源码位置已经执行的替换所产生的外部副作用仍会保留。 第四个 H3 检查点在字段拆分后加入确定性路径名展开,支持未引用的 *? 与 字符类;引用或转义后的操作符保持字面量,未引用参数和命令替换可以引入模式。匹配 区分大小写,按无损原生路径单元排序,点文件要求显式前导点,非法语法或无匹配都会 失败,且 ** 不递归。每条命令及其重定向共享 32,768 个活动模式单元、65,536 个 目录项与 4,096 个匹配结果上限;重定向仍要求恰好一个路径,短路管道不扫描目录。 别名、函数、subshell 状态、用户可见终端流式输出、已安装发行版探测、backend 策略、通用 WSL 参数 路径/环境映射、Linux 侧所有权与中断归一化仍属于后续切片。

    要让 Agent 采用这套能力,请继续阅读 Coding Agent 接入