ΓDocsInteractiveNet

15 · M5:发布与收尾

状态:M5 文档/发布清单完成(2026-11)。v0.1.2 pre-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 缺 workflow scope,模板在 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.gz
    • netbook-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 ain binary:x86_64/aarch64 musl 静态构建(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 仍待补。

在 GitHub 编辑本文