docs:README 正式化润色+spec 供方名去敏——README 重写为发布仓正式语体(对齐 moonttl/jsonld 语体:定位段/特性/架构表/安装/快速上手/合同格式/持久规则/设计不变量/构建说明/宿主嵌入/许可证节新增 MulanPSL-2.0 官链;内部黑话转正式表述:挂账→规划中/在役→已落地/黄金门对拍→逐字节回归比对/阳面阴面→骨架行为分离;宿主名与内部卷名零残留)+spec §4.6/§4.7 去敏(glm-coding/glm-5.3-flash 等供方套餐与模型档名→真网供方对不录卷,技术内容保留:模型表缺档→EndpointError 门拦);release_review 双门实测 PASS(去敏 64 文件 0 命中)
thy1016/moonspace 是一个用 MoonBit 编写的 Agent 解空间基础设施库: 以合同先行、门校验强制为核心——空间合同(TOML)既可以由人编写, 也可以由 LLM 起草;无论来源如何,必须通过解析、阳集闭合与可达性 三类门校验之后才会被构造成可执行的状态机。库本身端口中立:不绑定 任何具体的 LLM 供方、存储引擎或执行环境。
thy1016/moonspace
仓库另附两份架构文档:spec.md(项目级决策锚点)与 const.md(红线裁定簿)。
gen/
domain/*.toml
cmd/
space/
runtime/
verify/
out/
外圈三件:out/ 为 typed 产物面(纯生成禁手写 + stubs.mbt 手写 填空区,两区永不拼接);cmd/ 为合同再生入口;examples/ 为示例 loop 全栈自证。
stubs.mbt
examples/
确保环境中已安装 MoonBit 工具链。模块发布至 mooncakes 后可通过 moon add thy1016/moonspace 引入;当前亦可以源码依赖方式(workspace 成员或 git 依赖)使用。
moon add thy1016/moonspace
在仓库根目录:
moon run examples --target native # 示例 loop:合同 → 门 → 大 loop,零 LLM moon test gen runtime space out verify --target native # 本模块全部门件 moon run cmd --target native # 合同再生(修改 domain/*.toml 后)
示例 loop 输出:
合同 hello_loop_space 过门:态 3 / 事件 3 / 效应 1 / 转移 3 终局: Done / Completed / rounds=2 r1: DoIt → WorkDone (completed) 槽位 result_summary = did it
retrieval_base.toml
retrieval_domain.toml
reasoning_base.toml
reasoning_domain.toml
composition.toml
合同采用骨架/行为分离的文件对组织:*_base.toml 为词表骨架 (声明态/事件/效应/槽位,只选用不发明);*_domain.toml 为转移行为 (from/on/to/effect/args 转移表,含 assign_from 糖——效应回执 字段落入 ctx 槽位)。文件对按 meta.name 配对。
*_base.toml
*_domain.toml
from/on/to/effect/args
assign_from
meta.name
宿主装配词表(如 agent 工作流、任务相位机等)住宿主自己的仓库 domain/,不入本仓产物面——新消费者的接入路径 = 自带合同对 + stub 填空,零生成器代码改动。
domain/
gen/contract.mbt
moon run
moon test
--target native
moon check --target wasm-gc
moonbitlang/async
moonspace 是被嵌入的确定性内核,宿主集合开放——不是宿主跑在 moonspace 里,而是 moonspace 作为引擎库跑在宿主里(同一二进制静态 链接:loop 骨架在 moonspace,效应回调由宿主 handler 实现):
BM25Search
VectorSearch
LLMCall
嵌入身份为编排面而非存储面——数据访问始终走宿主自己的 port, moonspace 不承担数据访问层职责。
本项目以 木兰宽松许可证第 2 版(Mulan PSL v2) 授权,详见 LICENSE。
MoonSpace
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
moonspace
thy1016/moonspace是一个用 MoonBit 编写的 Agent 解空间基础设施库: 以合同先行、门校验强制为核心——空间合同(TOML)既可以由人编写, 也可以由 LLM 起草;无论来源如何,必须通过解析、阳集闭合与可达性 三类门校验之后才会被构造成可执行的状态机。库本身端口中立:不绑定 任何具体的 LLM 供方、存储引擎或执行环境。仓库另附两份架构文档:spec.md(项目级决策锚点)与 const.md(红线裁定簿)。
特性
gen/读取domain/*.toml合同对,生成表驱动 状态机、CPS 单层 dispatch、可达性剪枝、属性测试骨架与 handler stub 模板;生成器零业务词——semantics 封闭词表是唯一可硬编码面。cmd/再生入口从合同生成 typed 枚举与 step 函数, 入库产物受逐字节回归比对(golden)与双实现等价校验(parity)双门 约束,漂移即红。space/gen/主面、runtime/verify/out/主面)后端中立,wasm-gc 与 native 双双通过编译检查;浏览器 嵌入形态为库面编 wasm 产物、宿主以 JS 实现 EffectHandler。架构
space/runtime/verify/gen/外圈三件:
out/为 typed 产物面(纯生成禁手写 +stubs.mbt手写 填空区,两区永不拼接);cmd/为合同再生入口;examples/为示例 loop 全栈自证。安装
确保环境中已安装 MoonBit 工具链。模块发布至 mooncakes 后可通过
moon add thy1016/moonspace引入;当前亦可以源码依赖方式(workspace 成员或 git 依赖)使用。快速上手
在仓库根目录:
示例 loop 输出:
空间合同(domain/)
retrieval_base.toml/retrieval_domain.toml—— 演示空间一reasoning_base.toml/reasoning_domain.toml—— 演示空间二composition.toml—— 组合合同:parallel / series / feedback 三算子合同采用骨架/行为分离的文件对组织:
*_base.toml为词表骨架 (声明态/事件/效应/槽位,只选用不发明);*_domain.toml为转移行为 (from/on/to/effect/args转移表,含assign_from糖——效应回执 字段落入 ctx 槽位)。文件对按meta.name配对。宿主装配词表(如 agent 工作流、任务相位机等)住宿主自己的仓库
domain/,不入本仓产物面——新消费者的接入路径 = 自带合同对 + stub 填空,零生成器代码改动。持久合同规则
gen/contract.mbt;typed 产物与手写合同 的漂移由回归门拦停。设计不变量
构建说明
moon run/moon test缺省使用 wasm 构建计划;本仓的文件 系统吃用面(对照门测试件、cmd/再生入口)以 native 为门件目标, 因此 native 跑法必须显式携带--target native,否则相应门件会被 静默跳过。moon check --target wasm-gc全绿;浏览器嵌入形态 依赖moonbitlang/async的 wasm 入口补齐,当前可执行面暂以 native 为准。moon test会构建整个 workspace;建议按包过滤,或以独立 clone 形式开发。宿主嵌入(引擎形态)
moonspace 是被嵌入的确定性内核,宿主集合开放——不是宿主跑在 moonspace 里,而是 moonspace 作为引擎库跑在宿主里(同一二进制静态 链接:loop 骨架在 moonspace,效应回调由宿主 handler 实现):
domain/的 retrieval/reasoning 合同对 (BM25Search/VectorSearch/LLMCall词表)即检索管线速写, handler 真身与预算面待接;嵌入身份为编排面而非存储面——数据访问始终走宿主自己的 port, moonspace 不承担数据访问层职责。
许可证
本项目以 木兰宽松许可证第 2 版(Mulan PSL v2) 授权,详见 LICENSE。
仓库