Rath-Team/OpenRath
An open-source, PyTorch-like runtime for dynamic multi-agent and multi-session workflows.
它解决了什么
OpenRath 解决了管理大规模智能体集群的复杂性,其中多个智能体必须在多个可分支的对话状态中协作。它摆脱了简单的智能体循环,采用以数据流为中心的模型,通过将对话上下文视为结构化的、可重用的块而不是重复的字符串,防止了“提示意大利面”,并降低了 token 消耗。
它是如何工作的
受 PyTorch 模块化设计的启发,OpenRath 将智能体运行时状态视为一个称为 Session 的流动值。
- Session: 核心数据对象,包含对话历史、血统和沙盒放置。它可以被分叉、合并或分离以创建复杂的执行图。
- Agent: 一个可重用的转换层(类似于神经网络层),它使用提示和提供者接受一个 Session 并返回修改后的 Session。
- Workflow: 一个可组合的容器,将智能体、工具和其他工作流链接在一起。
- Sandbox: 一个执行环境(本地或通过 OpenSandbox 容器化),工具实际上在此运行。
- Memory: 一个持久状态层,使智能体能够在不同运行中回忆和提交事实。
- Selector: 一个由 LLM 支持的路由器,根据当前会话状态动态选择下一个要执行的工作流。
它适用于谁
构建需要持久内存、可追溯执行血统以及能够管理许多协作智能体而不丢失对话状态的复杂多智能体系统的开发者。
亮点
- Session-Centric Dataflow: 上下文被处理为结构化块,允许高效地分叉和合并对话分支。
- Traceable Lineage: 保持图形化的来源层,以追踪哪个角色或工具生成了特定输出。
- Modular Composition: 工作流可以嵌套和重复使用,使得管理数百个智能体变得可行。
- Decoupled Backends: 支持用于执行(Sandboxes)和持久化(如 OpenViking 的 Memory 后端)的灵活插件。
- Dynamic Routing: 使用
Selector通过纯 Python 实现 LLM 驱动的控制流(if/while)。