Harness Arch开源项目
OpenRath
面向动态多智能体、多会话工作流的开源运行时。
- 当前版本
- v2.0.0
- 许可证
- BSD-3-Clause
- 语言
- Python
- GitHub
- 1.1k ★

“Most agent frameworks begin with an agent loop. OpenRath begins with Session.”
论文
arXiv:2606.19409OpenRath: Session-Centered Runtime State for Agent Systems
Fukang Wen, Zhijie Wang, Ruilin Xu · cs.SE (primary) · cs.PL · 2026 年
核心抽象
Session
在 Agent 与 Workflow 之间传递的运行时值。可分叉、可检查、可回放。
Sandbox / Backend
工具的执行环境:本地,或可选的 OpenSandbox 容器。
Memory
持久知识。本地后端内置 BM25 召回,可换 OpenViking。
FlowToolCall
对模型暴露 JSON schema,对运行时暴露 Python 可调用对象。
Workflow / Agent
Agent 是会话变换层;Workflow 组合二者,可无限嵌套。
Selector
选择下一个 Workflow,让 if / while 留在普通 Python 里。
Provider
路由 OpenAI 兼容、Anthropic 或可选的 LiteLLM 客户端。

PyTorch 式的分层
| PyTorch | OpenRath | 作用 |
|---|---|---|
| Tensor | Session | 流动的值 |
| Device | Backend | 放置位置 |
| Parameter | Memory | 持久状态 |
| Function | FlowToolCall | 可调用操作 |
| nn.Module | Workflow / Agent | 组合结构 |
| if / while | Selector | 控制流 |

安装
pip install openrath核心包pip install "openrath[opensandbox]"容器化沙箱pip install "openrath[openviking]"OpenViking 记忆后端pip install "openrath[server,postgres]"v2 生产部署
快速开始
v2 的公开 API 在 rath.* 命名空间; v1 的 openrath façade 仍然可用。
from pathlib import Path
from uuid import uuid4
from rath.definition import Workflow, step, EffectClass
from rath.runtime import LocalRuntime, RunContext, SQLiteRunStore
class DurableHello(Workflow):
@step(entry=True, effects=EffectClass.READ_ONLY)
def greet(self, state):
return {**state, "message": "hello from OpenRath v2"}
def forward(self, session):
return self.greet(session)
store = SQLiteRunStore(Path("openrath.db"))
runtime = LocalRuntime(store)
runtime.submit(DurableHello(), session_id=uuid4(),
context=RunContext.local(revision_id=uuid4()))
runtime.work_once(worker_id="local-worker")from openrath import Session, flow
user_session = Session.from_user_message(
"Count the words in: OpenRath makes agent clusters traceable."
)
user_session = user_session.to("local", spec="./")
out = workflow(user_session)v2.0.0
“Durable, explicit multi-agent execution.”
@step / @router
声明可编译的执行与路由边界。
ExecutionPlan
绑定到不可变 revision 的规范图。
Run
持久执行状态,携带租户、会话与计划标识。
Event / Checkpoint
有序的生命周期证据与可恢复的逐步状态。
Lease / fencing token
防止失去所有权的旧 Worker 在归属变更后提交结果。
Effect ledger
对账重试,消解语义不明确的外部副作用。
Embedded
本地持久执行,SQLite 存储。
Agent Server
PostgreSQL,加 action grants、受管适配器与审计输出。

BSD-3-Clause · 59 forks · 论文提交于 2026 年 · Agent Server 的 HTTP 接口仍标注为 Beta