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 设计原则
- Locality first:任何规则只读它连接的两个 cell;任何跨节点行为都必须显式建模为消息。
- Determinism by construction:纯核强合流;效果用日志固定;调度器不允许改变可观察结果。
- Capability, not permission:没有全局工具表;能力就是一根线,断开即撤销。
- Structure over convention:并发、共享、监督都是图上的结构,不是文档里的约定。
- Visual is a first-class output:trace 必须能直接渲染成网;调试器与教材共用渲染器。
- Cost is a first-class type:每个规则、每个 effect 都有成本;预算可以传递、可以拒绝。
- Spec before code:先写操作语义与测试(golden trace),再写优化。
- 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-* 保持稳定。