ΓDocsInteractiveNet

00 · 愿景、范围与设计原则

状态:v0.1(2026-11)· 本文是所有后续设计的约束文件。

0.1 一句话

用交互网做两件事:把"计算是什么"讲清楚,把"多 Agent 怎么可靠地一起计算"做出来。

  • Netbook:让一个没学过 λ 演算的人,在 30 分钟内可以亲手构造一张网、点火一条规则、看到 λ 项如何在图上归约,并理解"为什么共享能省掉指数级重复"。
  • Ainet:让一个 Agent 工程师可以用声明式的网描述拓扑、用局部规则描述行为,得到确定性重放、能力安全、成本可控、可可视化调试的多 Agent 运行时。

0.2 问题:今天的多 Agent 系统缺什么

以 2026 年主流框架(LangGraph、AutoGen、CrewAI、Temporal + 自研、Ray、MCP/A2A)为参照,共性缺口:

缺口 现状 后果
可复现性 日志 + 快照;LLM 输出、工具结果、调度顺序都可能变 线上事故无法稳定复现;回归测试脆弱
权限边界 Agent 通常拿到整个工具注册表 / 网络 / 文件系统 prompt injection 可直接外泄数据或执行危险操作
共享与重复计算 相同上下文/子结果靠字符串缓存、向量库或人工复用 token 成本高;缓存失效难追踪
并发语义 DAG、队列、actor 混用;依赖靠框架约定 死锁、竞态、重试雪崩难以形式化分析
可解释性 日志是时间线,不是因果图 说不清"这个结论是哪几条消息、哪几次工具调用推出来的"
成本调度 先到先服务或简单优先级 预算超支;关键路径被低价值任务堵住

这些不是"再包一层 API"能解决的,需要换一个计算模型:把 Agent 的通信、状态、共享、并发都变成同一种可分析的对象。

0.3 为什么选交互网

交互网性质 对 Agent 基础设施的意义
局部重写:规则只依赖活跃对 天然并行、可分布;每一步可独立调度、记录、重放
强合流:不同归约顺序得到同一范式 纯计算部分调度无关;重放与迁移不改变结果
线性/仿射:每个端口恰好一条线 端口即能力(capability);无隐式别名,无 ambient authority
显式复制/擦除:δ/ε 是图的一部分 共享与丢弃是结构化的,可计量、可优化、可审计
通用性:交互组合子可编码任意计算 不必为每种 Agent 模式发明新语义;λ、数据流、状态机都可编译进来
图即 trace 可视化不是后处理,而是运行时本身的数据结构

但必须诚实:标准交互网不足以直接做并发系统。Mazza 的博士论文明确指出,交互网是"完全异步、无全局同步"的,因而"作为并发计算模型从一开始就是 doomed"——它无法表达冲突、等待、死锁。解决方向是 multiport interaction nets(保守扩展,表达能力等价于 π 演算),加上显式的 effect 与 location 层。

这正是 Ainet 的立足点:保留交互网的纯核,在其上做可控的同步、效果与分布扩展,而不是把交互网硬拗成 actor 框架。

0.4 两条轨道,一个内核

                 ┌──────────────────────────────┐
                 │        ain-core (Rust)       │
                 │  net IR · rules · reducer    │
                 │  trace · cost · determinism  │
                 └──────────────┬───────────────┘
                    ┌───────────┴───────────┐
                    │                       │
          ┌─────────▼─────────┐   ┌─────────▼──────────┐
          │  ain-wasm         │   │  ain-runtime/sched  │
          │  Netbook 教材     │   │  Ainet 生产运行时    │
          │  可视化调试器      │   │  多机调度网络        │
          └───────────────────┘   └────────────────────┘

共享内核的硬约束:Netbook 里演示的规则、归约顺序、trace 语义,必须与生产运行时同一份代码。教材不允许有一套"简化版语义"。

0.5 要做什么

轨道 A · Netbook(MVP → v1)

  • 9 章交互式课程:图重写 → 端口/线 → 活跃对 → 交互组合子 → λ 编码 → 共享与最优 → 类型/线性 → 并发/调度 → Agent 网。
  • 一个真正的网编辑器:拖拽 Agent、连接端口、规则点火、单步/回放/断点。
  • 一个客户端 λ→网 编译器,左右对照归约。
  • 一个共享实验室:同一程序 naive vs sharing,实时显示交互数、最大并行度、关键路径。
  • 一个 Agent 实验室:用 mock LLM 搭 3 Agent 流水线,显示消息、成本、重放。
  • 中文/英文,离线可用,可分享 permalink。

轨道 B · Ainet(MVP → v1)

  • 计算模型 AIN:标准交互网 + 状态化 Agent + multiport 同步 + Effects + Locations + 监督 + 成本。
  • 语言 Ainet:Core(显式网/规则)与 Flow(Agent DSL)双层;线性端口、session 类型、effect row。
  • 运行时 aind:单机多线程(work stealing、原子链接、区域内存)→ 分布式(cell ownership、remote wires、迁移、检查点、故障恢复)。
  • 确定性:纯核强合流;Effects 记录 + 重放;well-typed session 保证因果顺序。
  • 安全:端口即能力;工具能力显式注入、可撤销;WASM 沙箱;审计链。
  • 可观测:交互级 trace、因果图、成本账本、可视化调试器。
  • SDK:TypeScript 优先,Python 次之;可嵌入现有应用。

0.6 不做什么(至少 v1 前)

  • 不做通用 GPU 运行时。HVM2/ingpu 已经很强;我们在需要时把纯计算子网编译到 HVM/IC 后端,而不是重造 GPU 调度。
  • 不做通用定理证明器。类型系统服务于 Agent 协议与资源安全,不追求依赖类型。
  • 不做又一个 LLM 应用框架。不提供 prompt 模板市场、RAG 全家桶、UI 组件库;只做"编排与执行"的底层。
  • 不要求用户先学 λ 演算。Flow 层对 Agent 工程师友好;Core 层给需要精确控制的人。
  • 不在 v1 做跨公网拜占庭容错。假设受信集群 + TLS;恶意节点安全是后续工作。
  • 不做完全自动的 Agent 生成。我们提供结构,不提供"自动 Agent 社会"的噱头。

0.7 设计原则

  1. Locality first:任何规则只读它连接的两个 cell;任何跨节点行为都必须显式建模为消息。
  2. Determinism by construction:纯核强合流;效果用日志固定;调度器不允许改变可观察结果。
  3. Capability, not permission:没有全局工具表;能力就是一根线,断开即撤销。
  4. Structure over convention:并发、共享、监督都是图上的结构,不是文档里的约定。
  5. Visual is a first-class output:trace 必须能直接渲染成网;调试器与教材共用渲染器。
  6. Cost is a first-class type:每个规则、每个 effect 都有成本;预算可以传递、可以拒绝。
  7. Spec before code:先写操作语义与测试(golden trace),再写优化。
  8. Small core, many adapters:核心演算保持小;LLM/工具/存储/协议都通过 effect 适配器接入。

0.8 成功标准(12 个月)

Netbook

  • 新用户 30 分钟内完成第 1–3 章,能独立解释"活跃对"和"为什么规则是局部的"。
  • 章末测验通过率 ≥ 85%(首次尝试)。
  • 2,000 cells 的网在 M1 MacBook Air 上 ≥ 55 fps;首屏(不含 WASM)< 1.5s。
  • 规则动画与参考解释器 100% 一致(golden trace 测试)。
  • 至少 3 所高校/课程将其作为辅助教材(定性)。

Ainet

  • 3 Agent 研究流水线端到端跑通;同一输入重放 100 次,最终网与 effect trace 完全一致。
  • 单节点 8 核:纯网 ≥ 20M interactions/s(单核 ≥ 5M);Agent 编排 ≥ 20k message/s;p99 调度延迟 < 10ms。
  • 3 节点集群:1 节点被杀,任务在 5s 内恢复(从检查点 + 重放)。
  • 能力隔离演示:被注入的 Agent 无法访问未连接的 tool 端口(形式化 + 渗透测试)。
  • 成本账本精确到每次 LLM 调用;预算耗尽时优雅拒绝而非超支。

0.9 关键术语

术语 含义
Agent(网意义) 一个带 principal/auxiliary 端口的 cell;不是 LLM 人格
Active pair 两个 principal 端口相连,可触发规则
Redex 一次可归约的活跃对;调度的最小单位
Interaction 一次规则点火(图重写)
Normal form 没有活跃对的网
Effect 规则之外的副作用(LLM、HTTP、工具、人工审批)
Capability 一根线/一个端口所授予的通信权
Location cell 的归属节点;跨 location 的线是远程通道
Trace 交互与 effect 的有序事件流,可重放
AIN Agent Interaction Nets,本项目的计算模型
Ainet 面向开发者的语言/运行时

0.10 命名与品牌(工作名)

  • Netbook:交互教材。备选:NetLab、Inet Book。
  • Ainet:语言/运行时。备选:Ain、NetFlow(与现有产品冲突)、InetKit。
  • AIN:演算名。与"Artificial Intelligence Network"缩写冲突,文档中首次出现时写全称。

命名可在 M1 前通过域名/商标检索后调整;代码内部 crate 名 ain-* 保持稳定。

在 GitHub 编辑本文