15 · M5:发布与收尾
状态:M5 文档/发布清单完成(2026-11)。
v0.1.2pre-release 与 Netbook 公网站点已发布;剩余为自定义域名、外部用户/渗透测试与正式对比 benchmark。
15.1 0.1.x 包含什么
| 模块 | 内容 |
|---|---|
| Netbook | 第 1–3 章 + Sandbox;可编辑画布;任务;trace;permalink;04 /lambda、05 /sharing、06 /types、07 /concurrency、08 /trace 专题页 |
| ain-core | 交互网 IR、γ/δ/ε、用户规则、hash/trace、worklist reducer;25 unit + 2 golden |
| ain-lang | Ainet Flow .flow → FlowSpec;诊断;ain check / flow compile |
| ain-runtime | stateful agents、effects、预算、journal/checkpoint、replay、trace viewer、并行 batch |
| ain-sched | flow 级分布式 worker/coordinator;重试/健康检查;checkpointed chunks |
| ain-cluster | cell 级归属、远程消息、seq/dedupe、capability、迁移、failover、watch、coordinator effect ledger(持久化幂等) |
| CLI | ain demo/bench/run/check/flow/node/cell/cluster/mock-openai |
测试:82(27 core/golden + 9 language + 19 runtime + 8 sched + 19 cluster)。
15.2 可演示路径
# 1) 纯网 / λ 基础
ain demo
ain demo --commute --trace
# 2) Flow 文本 → 运行 → 重放
ain check examples/research.flow
ain flow run examples/research.flow
ain flow run examples/research.flow --save-trace /tmp/t.json
ain flow replay examples/research.flow /tmp/t.json
# 3) 单机并行 / trace
ain flow bench examples/research.flow --repeat 100 --workers 4
ain bench --pairs 10000 --repeat 5
ain flow trace-view examples/research-trace.json --out /tmp/trace.html
# 4) flow 级分布式
ain node serve --bind 127.0.0.1:7101 --id n1
ain flow distribute examples/research.flow --nodes 127.0.0.1:7101 --repeat 100 --chunk-steps 2 --health-check
# 5) cell 级集群
ain cell serve --bind 127.0.0.1:7201 --id n1
ain cluster demo --nodes n1@127.0.0.1:7201,n2@127.0.0.1:7202,n3@127.0.0.1:7203
ain cluster llm100 --nodes ... --kill-after 30 --kill n1
# 6) 持久化 effect 幂等(同一 run-id 重跑不重复调用 provider)
./scripts/effect-ledger-demo.sh
# 7) mTLS(cell + flow 调度器)
./scripts/tls-demo.sh
ain cluster watch --nodes ... --rounds 3
15.3 关键指标(本机实测)
| 场景 | 结果 |
|---|---|
| 2 节点 × 20 flow | 10/10 分配,28ms,unique_hashes=1 |
| 3 节点 × 100 flow | 34/33/33,75ms,unique_hashes=1 |
| 2 worker × chunk=2 | workers_used=2,unique_hashes=1 |
| 3 节点 × 100 echo cells | 100 steps,100 sends |
| 3 节点 × 100 LLM cells | 100 effects,100 steps |
| kill-after 30(LLM 100) | 34 cells failover,输出/state hash 不变 |
| replay | 100 次 live + trace replay,state hash 全等 |
| effect ledger 重跑 | 首轮 100 effects;fresh workers 二轮 effects=0、cache_hits=100、total_effects=100、ledger 仍 100 行、state hash 全等 |
| 真实 OpenCode Go 100 cells | 100 effects、34 failover、316–358s、ledger 100 行 |
这些是本地开发机数字,不是正式 benchmark;正式报告需要固定硬件、对比 HVM4/Inpla。
15.4 发布前剩余项
必须
- Netbook 第 4 章 λ(
/lambda)、第 5 章共享(/sharing)、06 类型(/types)、07 并发(/concurrency)、08 Agent(/trace);09 Sandbox 已有。 - Netbook 6 页面构建通过(
/、/lambda、/sharing、/types、/concurrency、/trace),浏览器无 console error。 - 部署配置:
apps/netbook/wrangler.toml、public/_headers(CSP/安全头)、docs/21-deployment.md。 - Cloudflare Pages 部署:https://interactive-netbook.pages.dev(production branch
main)。 - 自定义域名/DNS。
- 外部用户测试:5 人完成第 1 章;3 个开发者跑通 flow/cluster。协议与自动预检已就绪(
docs/25-user-testing.md、scripts/quickstart-check.sh),待招募。 - 安全审计(内部):
docs/17-security.md+docs/24-security-testing.md;HMAC capability/revoke、shell/HTTP allowlist、queue/budget、seq/dedupe、coordinator effect ledger、mTLS 均有测试;scripts/security-smoke.sh。 - 外部渗透测试。
- License audit:
LICENSE/LICENSE-MIT/LICENSE-APACHE/LICENSE-CC-BY-4.0+docs/16-license-audit.md;参考项目许可表。 -
cargo metadata/pnpm licenses list实跑归档:docs/audit/licenses-rust.txt、docs/audit/licenses-web.txt(MPL/LGPL 仅构建期)。 - CI workflow 启用(GitHub token 缺
workflowscope,模板在ci/github-actions.yml)。
应该
- 本地 benchmark 方法/结果:
docs/20-benchmarks.md+scripts/bench.sh;新增纯网ain bench微基准。 - 正式 benchmark vs HVM4/Inpla(纯网);vs Temporal/LangGraph(编排)。0.1.x 只发布
ain bench微基准,理由见docs/20.6。 - 持久化 effect 幂等:
docs/22-durable-effects.md;--run-id+--effect-ledger,coordinator 执行/复用 effect,worker failover 与重启不重复调用。 - per-destination 队列 credit:
--cell-queue-limit,按目标 cell 限制排队消息。 - mTLS(cell 集群 + flow 调度器):
--tls-cert/--tls-key/--tls-ca、scripts/tls-demo.sh、docs/23-mtls.md。 - OpenAI-compatible provider 路径:mock(
scripts/real-llm-demo.sh)与真实 OpenCode Go(scripts/opencode-go-demo.sh)都跑通 100 cells + kill-after 30;真实跑 100 effects、34 failover、~316–358s。5s 恢复窗口未单独测量。 - 错误码表
docs/18-errors.md、升级/迁移docs/19-upgrade.md。 - 架构图/长文素材:README + docs/00–25 + specs/*(正式论文仍待写)。
可以延后
- Python SDK。
- GPU/HVM 后端。
- 包 registry/市场。
- 多租户计费/配额。
- 跨公网拜占庭容错。
15.5 发布清单
-
cargo fmt --check && cargo clippy --workspace --all-targets -- -D warnings && cargo test --workspace -
cd apps/netbook && pnpm check && pnpm build -
git tag v0.1.2 && git push origin v0.1.2 - GitHub pre-release:https://github.com/lulgabc/InteractiveNet/releases/tag/v0.1.2
ain-0.1.2-arm64-apple-darwin.tar.gz(CLI + docs/specs/examples/licenses)ain-0.1.2-x86_64-unknown-linux-musl.tar.gz/aarch64-unknown-linux-musl.tar.gznetbook-0.1.2.tar.gz(静态站)docs-site-0.1.2.tar.gz(文档站)SHA256SUMS
- Netbook 公网静态站:https://interactive-netbook.pages.dev
- 自定义域名/DNS
- 文档站独立发布:https://interactive-docs.pages.dev(
apps/docs、scripts/deploy-docs.sh) - 发布长文 + 3 分钟 demo 视频
- 收集 3 个设计伙伴的反馈;开 GitHub Discussions
- Linux
ainbinary:x86_64/aarch64musl 静态构建(cargo-zigbuild),已上传 v0.1.2。
15.6 已知限制(发布时需明示)
- Ainet 是 L1/L3/L6 执行层:Agent 通信目前是运行时 mailbox/cell 消息,不是完整的 session-typed net wire。
- 交互网纯核与 Agent 运行时是同一项目、不同层,不是“所有 Agent 都是纯图重写”。
- effects 默认 mock;真实 LLM 需 provider key,HTTP/shell 有 allowlist。
- effect 调用是 at-most-once + 持久化结果复用;"调用成功但 ledger 未落盘" 的窗口仍可能重复,严格 exactly-once 需 provider 幂等键/事务日志。
- 100 LLM cells 的 release 验证同时覆盖 mock 与真实 OpenCode Go provider;真实 provider 的状态 hash/延迟会随模型与 reasoning token 预算变化。
- per-cell in-flight credit、跨 provider 严格 exactly-once 仍待补。