AGENT NETWORK · DOCS

研究

ANet 背后的研究纲领与本项目自己的工程研究

ANet 不是先有代码、后补论文的项目。它是一项研究纲领的参考实现,而这项纲领只问一件事: 在 agent 网络里,"连接"本身值多少。

这一板块放两类东西:已发表的学术工作,以及本项目自己的工程研究报告。 两类的证据标准不同——前者是受控实验,后者是本仓库在真实部署上的实测—— 分开摆,是为了让读者随时知道手里这条结论是哪一种。

纲领:连接的价值

一个模型有多强,是关于节点的问题。一群模型连起来能做成什么,是关于结构的问题。

互联网的历史给过一次答案:同样一堆主机,按广播式星型连,价值按 V ∝ N 增长 (Sarnoff);全连接的网状按 N²(Metcalfe);允许自由结群则按 2ᴺ(Reed)。 量级由拓扑决定,不由单台主机的算力决定。

纲领把同一个问题挪到 agent 身上:如果 agent 也是节点,那么决定网络价值的, 是每个 agent 有多强,还是它们之间怎么连?

这个问题有两个方向,本板块的两篇已发表工作各回答一个:

  • 连起来值多少 —— 需要先把"协作的价值"定义成能算的东西,再去测。这是 ANet Patu-1 做的事。
  • 能不能连 —— 身份、定位、投递、语义、计费、证据,也就是这套代码在做的事。 它的架构主张写在那篇立场论文里。

已发表工作

ANet Patu-1: The Value of Connection in the Agent Network

  • 作者:Mu Yuan、Jinke Song、Zhaomeng Zhou、Lan Zhang(Agent Network Research)
  • 出处:arXiv:2607.15053 —— arXiv 记录 · 项目页

论文把"连接的净价值"建模成协调群体规模的函数,由此推导出一个最优协作协议必须 具备的六条性质(价值缩放、自组织、自适应分解、无瓶颈、O(1) 轮次、共识终止), 并提出 ANet Patu-1 —— 一种自组织共识协议:网络持续地重组自己的联盟, 以 O(1) 的并行共识轮次贴合 Sarnoff / Metcalfe / Reed 三个区间的上包络线。

度量方式刻意避开主观打分:对一个涌现出来的协议做形式化规约、推导其复杂度, 按分析分布式算法的方式给分,得到 Q。

两个结果:

涌现。 异构性是唯一自变量 —— 所有 agent 跑同一个基座模型,只有它据以推理的 学科(视角)不同。用最廉价模型(gpt-4o-mini)组成的异构群体,单个专才很弱 (Q = 0.30),但每接入一个互补的专才就补上一条最优协议属性,覆盖度复利式累积。 它在 n* ≈ 2.6 个 agent 处越过由远更强的同质模型(gpt-5.6,同一份通用任务简报、 不给提示、独立调用五次)所占的区带 —— 后者的 Q 停在 0.54(区间 [0.40, 0.66]) 且随 n 没有趋势,因为完全相同的副本产生不了新结构,每次都默认落进 树型 / 中心协调者模板,把价值封顶在 V ∼ n²。异构群体在 n = 6 时到达最优的 自组织模板(Q = 1.0,V ∝ 2ᴺ,O(1) 轮次)。

反身性。 给 n = 10 个 agent 的异构网络只交它自身的问题、不给任何设计提示, 它收敛到了 ANet Patu-1 本身 —— 重新发现了支配它自己连接价值的那条规律。

一句话结论:连接的价值来自被连接之物的多样性,而不是任何单个节点的强度。 越过交叉点之后,一群廉价而多样的 agent 比一个强者的复制品更有价值。

Agent Network for Open Multi-Agent Collaboration with Shared Cognition

  • 作者:Lan Zhang(中国科学技术大学)、Yunhao Liu(清华大学)
  • 出处:Tsinghua Science and Technology 31(6): 2611–2629,开放获取(CC BY 4.0)—— SciOpen 全文

立场论文。TCP/IP 让异构主机彼此可达,Web 让文档彼此可链接;如今想被连接的新事物是 承载能力的 agent —— 能感知、推理、调用工具、作用于物理世界的软件。这些能力 今天被锁在各自的平台、组织与运行时之内。

核心主张:互联网靠一条细腰完成规模化,一个开放的 agent 网络需要两条。

细腰是什么解决什么
ALP(Agent Locator Protocol)连接细腰。agent://<name> 让任一能力持有者跨厂商、跨组织全局可定位、可达,且交付面最小找得到、送得到
TSIR(Task Semantic Intermediate Representation)语义细腰。任务意图与成功判据以可签名、可复用的对象传递你要的那件事能在每一跳里存活

两条细腰之外是 ASCP,一个候选的协调运行时,建在黑板式共享工作空间之上, 并配一套沉淀机制,把工作状态转成可复用的经验。三者合起来定义 NIR(Networked Intent Realization):让高层意图不失真地路由到有能力的参与方, 并在一个开放网络上把它落成可执行、可追溯、可问责的协作。

论文的定位判断是:AutoGen、LangGraph、CrewAI、MetaGPT、Semantic Kernel、Swarm 这些框架各自在私有消息总线之后编排同类;agent 网络是它们之下共同的公共层。

两条细腰在这套代码里的落地程度

两条细腰的实现程度不一样。写清楚,比含糊过去有用。

  • TSIR 已经是委派格式。 ANetCore/tsir 实现了 TaskDoc 与封闭谓词演算 (全函数、无副作用、有界、非图灵完备;未知 op 使承载它的 TaskDoc 判为 MALFORMED,fail-closed)。daemon 的委派路径与能力面直接构造 TaskDoc, blackboard / cas / org / service / shell / taskboard 六个模块与 provider/anetlink 在消费它(module/x402 只在自己的测试里用到 tsir 类型)。
  • ALP 只有内核实现,没有消费者。 ANetCore/agenturi 实现了 agent:// 的 解析、规范化与相等判定,并按 agent-uri 规范 §6 冻结的 AU-* 向量在 agenturi_test.go 里逐条测过;包头同时写明覆盖缺口 —— 通用的逐码点 UTS-46 映射与完整的 UTS-39 近形字表仍是后续项。但在 ANet、ANetHub、ANetLink、 ANetMock 四个仓的 Go 源码里,agenturi 的 import 数为零,agent:// 字面量 出现次数也为零(只有 ANet/docs/SUITE-TODO-zh.md 的包清单提到这个名字) —— 现网寻址一律用 AID(起始事件的内容地址,跨密钥轮换稳定)。 定位细腰写在内核里,没有接到线上。 发现方式:对四个仓做 import 与字面量扫描。

本项目的工程研究

三份报告。它们不是学术论文,是本仓库的实测记录:每条结论都指向一次可复跑的构建、 一个脚本,或一条 CI job。

这些报告的性质

是工程研究,不是学术论文。 没有对照组,没有统计显著性;样本是这一套代码在 这一套部署上的行为。它们回答的是"这个做法在真实系统里成不成立",不是"这个做法 在一般情况下更优"。

数据来自本仓库的实测,方法与原始数据都在仓库里。 每份报告引用的都是可以重跑的 东西:CI 的 job(ANet 仓的 test / race / optin / pluggable / scenario, ANetHub 仓的 test / unplug / race / webui)、scripts/ 下的联调脚本, 以及 ANet/docs/ 里的活文档。没有一条结论建立在只存在于报告里的数字上。

已知缺口照写。 ANet/docs/DESIGN-zh.md 第 10 节"已知缺口与开放决策"按 "位置、行为、影响、发现方式"四件事逐条列出缺口,并按影响排序; ANet/docs/SUITE-TODO-zh.md 按仓分列 DONE / TODO / 刻意不做, 把"未做"和"刻意不做"分开写下来。报告直接引用它们,不做删减。

怎么复跑

拔插头的判据 —— 完整构建里该模块的符号数必须 > 0,裁剪构建里必须 == 0。 两个方向都要验:只验裁剪侧为 0,会让一个从未被链接进去的模块看起来"可插拔"。

go build -o /tmp/anet-full ./cmd/anet
go build -tags "no_p2p" -o /tmp/anet-lean ./cmd/anet
go tool nm /tmp/anet-full | grep -cE "provider/p2p|module/p2p"
go tool nm /tmp/anet-lean | grep -cE "provider/p2p|module/p2p"

三层联调,依次是跨进程、单机多节点、双 hub 实网:

bash scripts/joint.sh
bash scripts/scenario.sh
bash scripts/prodtest.sh

一张回执的离线复核 —— 不需要 daemon、不需要 hub、不需要网络:

anet verify --receipt <base64> --kel <base64>

三个脚本的可复跑程度不同。scripts/scenario.sh 要三个预先构建好的二进制放进 $SCENARIO_BIN(本仓的 anet 与 tools/anetfixture,以及 ANetHub 仓的 anet-hub),hub 与 daemon 由脚本自己拉起;CI 的 scenario job 先 checkout ANetHub、构建这三个,再直接跑它,默认档是回环、无密钥、不上网。 scripts/joint.sh 更重:要先按脚本头部的清单构建六个二进制,并自行启动 ANetMock、ANetLink、ANetHub 三方的进程。scripts/prodtest.sh 打的是真实的 生产双 hub 拓扑,不是本机能跑起来的东西。

相关文档

On this page