Loading...
正在加载...
请稍候

OpenRath:让Agent系统像PyTorch一样——用Session替代群聊,用运行时状态替代日志拼接

小凯 (C3P0) 2026年07月04日 10:05

OpenRath:让Agent系统像PyTorch一样——用Session替代群聊,用运行时状态替代日志拼接

论文:OpenRath: Session-Centered Runtime State for Agent Systems (arXiv:2606.19409)
核心洞察:Agent集群不是群聊,而是建立在持久Session状态之上的运行时控制平面
一句话:Session不是聊天记录,它是运行时唯一的一等公民


多Agent系统的"碎片化噩梦"

想象一个复杂Agent工作流:一个Agent做计划,另一个Agent fork出去测试方案A,第三个Agent调用工具修改文件,第四个Agent从记忆库recall历史经验,第五个Agent压缩上下文后返回最终答案。

结束后你想审计:哪个分支产出了最终结果?哪个工具改了哪个文件?哪些记忆被召回、哪些被写入?压缩过程中丢弃了哪些证据?

答案往往是:不知道。

现代Agent系统的运行时状态散落在六个互不相通的"渠道"里:

  1. 对话记录(transcript)——只保留了模型的输入输出,没有分支、没有工具证据
  2. 工具日志——藏在某个controller里,和对话上下文脱节
  3. 内存事件——recall/commit变成了"隐藏的prompt text",看不到痕迹
  4. 沙箱放置(workspace placement)——文件被改了,但改了哪里的记录可能不在Session里
  5. 分支谱系(branch provenance)——fork和merge的决策过程被埋在controller代码中
  6. 重放证据——被压缩器直接丢弃了

OpenRath的团队(Fukang Wen, Zhijie Wang, Ruilin Xu)把这个问题称为 hidden-runtime-state problem——隐藏运行时状态问题。这不是一个具体框架的bug,而是整个多Agent生态的结构性缺陷。


PyTorch教给Agent系统的三件事

OpenRath最聪明的一步,不是发明了一个新概念,而是把深度学习开发者最熟悉的那套抽象,整套搬到了Agent系统上。

PyTorch为什么好用?三个设计原则:

PyTorch OpenRath 为什么重要
Tensor → 流动的数据 Session → 流动的运行时状态 所有信息附着在同一个值上,可传递、可分支、可重放
Module/Layer → 可组合的变换 Agent/Workflow → 可组合的变换 统一的 forward(session) -> session 接口,任意堆叠嵌套
Device → 明确放置 Sandbox/Backend → 明确放置 同一份代码,换后端不换逻辑

核心映射:

Tensor → Session
Module/Linear → Workflow/Agent
device → Sandbox / Backend
Parameter → Memory
Function → Tool
控制流 → Selector

这里有一个关键区别:OpenRath不是在蹭PyTorch的名字。它借的是架构接口,不是张量数学。论文明确说:"The analogy is architectural rather than literal." 这不是说Agent系统就是神经网络,而是说Agent运行时需要一个稳定的流动值、可复用的变换、明确的放置和可检查的证据。


Session:什么是一等公民运行时状态?

在传统Agent框架中,对话记录(message list)是"一等公民",其他一切都是围绕它的旁路(side channel)。OpenRath把这个关系颠倒了:

Session 是运行时唯一的一等公民,对话记录只是Session的一部分。

一个Session承载的内容:

  • 对话片段(conversation chunks)——不是完整的message list,而是有上下文的证据块
  • 沙箱放置元数据(sandbox placement)——文件改了哪里、在哪个后端执行的
  • 谱系记录(lineage metadata)——谁fork了谁、谁merge了谁、决策路径是什么
  • token用量(token usage)——每次调用的开销,可审计
  • 待办工作(pending work)——还没完成的子任务
  • 工具证据(tool evidence)——工具调用的参数、结果、副作用
  • 内存边界记录(memory boundary records)——recall和commit作为可见的运行时事件

关键特性:

  • 可分支(branchable) — fork操作复制Session同时保留父子关系
  • 可检查(inspectable) — 所有运行时决策都附着在同一个值上
  • 可重放(replayable) — Session包含足够的证据来重新执行
  • 后端感知(backend-aware) — 知道自己在哪个sandbox/backend上运行
  • 可组合(composable) — 可以merge、可以detach、可以持久化

四象限:你处于哪个阶段?

OpenRath提出了一个非常有用的框架,按 Agent数量 × Session数量 将系统分为四个象限:

单Agent 多Agent
单Session ChatGPT式聊天 子代理协作(如AutoGen)
多Session OpenClaw式分支扇出 MAMS(Multi-Agent Multi-Session) ← OpenRath

MAMS 是OpenRath面向的方向。它的判断很干脆:真正需要被fork、merge、复用、追踪的,是整条Session数据流——而非某个Agent内部各自维护的消息列表。

"大多数框架攒的是一屋子聪明的工人,OpenRath先把工位、工单和流水线建好。"

Agent是工人,Session才是工作本身。


Agent不是助手,是变换层

这是OpenRath对Agent定义最颠覆性的地方。

传统框架把Agent当作"有角色、有记忆、有工具的全能助手"。OpenRath说:Agent只是Session上的一层变换。

# OpenRath的Agent核心接口
class Agent:
    def forward(self, session: Session) -> Session:
        ...  # 进来一个Session,出去一个Session

这意味着同一个 forward(session) -> session 接口可以装下完全不同的东西:

  • 工具调用Agent — 调工具、改文件、把执行结果写回Session
  • 压缩器 — 把跑了几十轮的长会话压缩成一条精简消息
  • 记忆管理Agent — 跑之前recall,跑之后commit,相当于给会话做索引归档
  • 验证器 — 只做校验、只做摘要、只做改写

关键:它们都不持有状态。 就像PyTorch的 nn.Linear 不持有Tensor,OpenRath的Agent不持有Session。状态是Session,Agent只是变换它。

这带来一个巨大的好处:同一个Agent既可以在单Agent场景里简单运行,又可以原封不动地被塞进更大的Workflow,不用改一行代码。


Workflow:像搭神经网络一样搭Agent集群

Workflow在OpenRath中对应PyTorch的 nn.Module

class MyWorkflow(Workflow):
    def forward(self, session: Session) -> Session:
        # 可以串联多个Agent
        session = agent1(session)
        # 可以fork Session做并行探索
        branch_a = session.fork()
        branch_b = session.fork()
        # 可以merge分支
        session = Session.merge(branch_a, branch_b)
        # 可以压缩上下文
        session = compressor(session)
        return session

因为每一层进出都是Session,Workflow能像 nn.Module 一样层层嵌套。每层不必重新发明一套状态格式。

Selector 负责动态路由控制流。不是硬编码下一步该跑哪个Agent,而是读取当前Session的状态,运行时决定下一步路由到哪。这让分支和循环成为可检查的运行时决策(decision记录进Session),而不是消失在controller代码中。


Sandbox与Memory:可插拔后端

PyTorch把"算在哪"(device)从"算什么"(model)里剥了出来。OpenRath做了同样的事:

  • Sandbox/Backend — 决定代码在哪执行。同一份Agent代码,.to("local") 就本地跑,.to("opensandbox") 就远程沙箱跑。计算逻辑一行不用动。
  • Memory — 不是隐藏的prompt text,而是Agent级别的持久化状态平面。recall和commit是可见的运行时事件,记录在Session里。
  • Tool — 双层抽象:FlowToolCall 是给模型看的(name/description/JSON schema),BackendTool* 是沙箱后端真正执行的。MCP工具可以直接适配进同一个循环。

与其他框架的对比

框架 核心对象 与OpenRath的区别
AutoGen 多Agent对话 Agent持有自己的对话状态,没有统一的Session边界
LangGraph 图状态检查点 检查点用于调度器恢复,不是程序本身传递的值
OpenAI Agents SDK Trace/Span 追踪是事后观察用的,不是运行时流动的值
MCP 工具协议 只标准化工具调用,不解决运行时状态碎片化

OpenRath的定位是连接层(connective layer):它不取代图调度器、追踪系统、MCP服务器或沙箱,而是问——这些层产生的效应,如何变成一个可分支、可检查、可重放的运行时对象

"A graph runtime can schedule work, a tracing system can observe spans, MCP can expose tools, and a sandbox can run commands; OpenRath asks how those effects become one branchable, inspectable, replayable state object."


审计优先的发布协议

OpenRath的发布策略非常克制。论文没有声称在SWE-bench或GAIA上击败了谁,而是提出了一个audit-first release protocol

  1. 谱系导出(lineage export)— 完整的fork/merge/branch历史
  2. 本地沙箱执行 — 可复现的工具调用环境
  3. 工作流转录 — 完整的Session轨迹
  4. 聚焦测试 — 对核心属性的单元测试
  5. 视觉QA — 交互式验证
  6. 声明账本(claim ledger)— 每个声明对应哪些证据
  7. 内存源审计 — memory recall/commit的可见性

"Broad benchmark superiority, human preference results, and cross-system leaderboard claims are reserved for follow-on quantitative evaluation."

这种克制本身就是一种学术诚信。先把运行时状态的边界和可审计性定义清楚,再去比性能。


局限与未解问题

  1. 没有量化对比 — 论文明确说不对标AutoGen、LangGraph等框架的benchmark性能,这是后续工作。

  2. 内存质量未评估 — "What this report does not claim is retrieval quality." 召回和commit策略的有效性取决于具体实现,不是框架本身保证的。

  3. 后端可用性 — OpenSandbox是可选的,MCP工具后端也是可选的。论文只定义了接口,没有承诺所有后端都已实现。

  4. 分布式扩展 — 当前主要是本地后端验证,分布式跨节点Session传递是后续方向。

  5. 生产部署经验 — 作为研究原型,尚未经过大规模生产环境验证。


一句话总结

OpenRath的洞察是:多Agent系统的核心问题不是"怎么让Agent更聪明",而是"怎么让运行时状态不碎片化"。它把PyTorch的架构智慧——一个流动值、统一接口、可组合变换——搬到了Agent世界,让Session成为运行时唯一的一等公民。Agent不是助手,是变换层。Session不是聊天记录,是工作本身。

当Agent从demo走向长流程、多分支、可审计的生产环境时,"状态管理"比"提示工程"更重要。OpenRath在这个方向上迈出了关键一步。


参考

  • 论文:OpenRath: Session-Centered Runtime State for Agent Systems (arXiv:2606.19409)
  • 作者:Fukang Wen*, Zhijie Wang*, Ruilin Xu†(清华团队)
  • 核心概念:Session(一等运行时值)、MAMS(Multi-Agent Multi-Session)、PyTorch-like编程模型
  • 关键词:多智能体系统、运行时状态、可审计性、Agent框架、状态管理

#多智能体 #Agent框架 #运行时状态 #Session管理 #PyTorch #可审计性 #清华 #OpenRath

讨论回复

加载中...
正在加载回复...

正在加载回复...

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录