ASH/1 协议
ASH/1 是 Coding Agent Harness 与 ash 之间的本地机器协议。它不是 POSIX Shell 语言,也不解析 Bash、Zsh、PowerShell 或 CMD 语法。
两种传输
ash rpc:长驻会话。每个 ASON 文档前有 4 字节大端长度,先握手,再并发处理请求。ash run:从标准输入读取一个裸规范 ASON 文档,执行后退出。
rpc 的第一个帧必须是握手请求。服务端选择兼容协议版本、限制与能力交集,返回唯一
规范握手响应;非规范 ASON、超长帧和未知必需字段在分配大缓冲区前拒绝。
核心操作
数据公式
引用操作只传一个有类型的前缀算子,不再使用“数字模式 + 无用空字段”:
它是 @7 上 π_{p,l,t}(d[0:64]) 的紧凑线性编码。b/l/g/d/p/w 分别表示字节切片、行切片、搜索、释放、表格投影和工作区落盘。每个公式的参数数量固定;落盘还要求工作区写权限,并复用带日志、禁止覆盖的文件事务。
并发与顺序
长驻 RPC 可以同时运行相互独立的请求。最终帧仍按输入序列稳定输出,因此模型端不需要 为调度竞争增加排序 Token。取消控制帧可以越过最终响应排序,及时终止目标工作。
能力与 Permit
握手只协商双方都支持的能力位。策略需要批准时,ash 返回结构化 Challenge;可信 Harness 签发的一次性 Permit 绑定会话、请求、规范动作、策略指纹和过期时间。重放、 跨会话复用或动作修改都会失败。
完整字段与规范 Fixture 位于
docs/protocol.md 和
spec/fixtures/ason。