多代理运行时框架

Orion是一个基于TypeScript和Redis的多代理运行时框架,用于协调和管理基于LLM的系统,适用于实验、学习和生产系统扩展。

  • by LeightonManning
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 LeightonManning/orion-runtime

使用说明

🛸️ Orion

用于编排基于LLM的系统的最小多代理运行时。


概述

猎户座 是一个TypeScript+Redis框架,用于构建和协调多个AI“代理”——通过共享消息总线进行通信的独立进程。
它的设计目的是 简单、透明、可扩展 --非常适合实验、学习或扩展到生产系统。


✨ 特性

  • ⚙️ 模块化架构 --协调员+独立代理人
  • 🔁 Redis发布/子总线 --代理之间的实时消息传递
  • 🧠 共享内存 --每个任务的Redis哈希(计划、工件等)
  • ⏳ 准备握手 --代理在任务开始前宣布准备就绪
  • 🪵 结构化日志 --JSONL任务日志和摘要
  • 🤖 LLM无关设计 --支持OpenAI、Anthropic或本地模型
  • 🧩 可组合角色 --规划师、工人、评论家或您自己的定制代理
  • 🔒 隐私优先架构 --环境处理和PII控制
  • 🧩 统一代理生命周期 --via defineAgent(name, config, onMessage)

🧮 技术栈

组件 目的
Node.js+TypeScript(ESM) 核心运行时和代理逻辑
瑞迪斯 发布/订阅消息和共享内存
Docker Compose 本地编排
TSX 快速执行TypeScript
黄道带 消息的架构验证
通用唯一标识符 任务和消息的唯一ID
@orion/试剂盒 共享SDK(总线、模式、记录器、内存、生命周期)

🚀 快速开始

1.先决条件

  • Docker Desktop 正在运行
  • Node.js≥18
  • Redis(通过Docker自动启动)

2.克隆并安装

git clone https://github.com/LeightonManning/orion-runtime.git
cd orion-runtime
npm install

3.跑步

docker compose -f infra/docker-compose.yml up -d redis
npm run dev

您应该看到类似于以下内容的输出:

[Planner] ready
[Worker] ready
[Critic] ready
✅ Task ... finished by Critic: done: artifact meets acceptance

🧩 建筑

orion/
 ├─ infra/
 │   └─ docker-compose.yml       # Redis
 ├─ packages/
 │   ├─ runtime/                 # Coordinator (task orchestration)
 │   ├─ agent-kit/               # Shared SDK (bus, schema, logger, memory, defineAgent)
 │   └─ agents/                  # Example agents
 │       ├─ planner/             # Uses defineAgent<ControlMsg, PlannerConfig>
 │       ├─ worker/              # Uses defineAgent<PlanMsg>
 │       └─ critic/              # Uses defineAgent<WorkMsg>
 ├─ logs/                            # Global + per-task JSONL logs
 ├─ .env
 ├─ package.json
 └─ tsconfig.json

亮点:

  • 所有代理现在都是通过以下方式构建的 defineAgent 从 @orion/agent-kit.
  • Planner包括一个键入的 PlannerConfig (model, maxSteps)作为每代理配置的示例。
  • Worker和Critic使用相同的共享生命周期,但保持简单。
  • @orion/agent-kit 提供:
    • core.ts –消息模式、Redis总线、消息构建器
    • memory.ts –任务记忆助手
    • logger.ts –结构化JSONL日志记录
    • agent.ts –the defineAgent 生命周期助手
    • index.ts –方便中央出口

🧠 设计理念

“透明。可检查。默认情况下,人类在循环中。”

猎户座优先考虑 运行时驱动控制, 最小即时依赖,以及 代码即API执行.

它符合现代 MCP启发 代理设计:

  • 代码即API工具的使用(没有膨胀的即时模式)
  • 渐进式工具发现
  • 环境数据处理
  • 运行时控制的循环和分支
  • 长时间运行任务的状态持久性
  • 可重用的技能和缓存的工具调用
  • 隐私安全执行

这些原则使Orion高效、可扩展且与LLM无关——负责的是运行时,而不是模型。


🚗 路线图

  • [x] 创建 @orion/agent-kit 共享库(总线、模式、内存、记录器)
  • [x] 添加 defineAgent 统一生命周期助手
  • [x] 按代理配置键入(PlannerConfig 示例)
  • [x] 结构化JSONL日志记录(logs/<taskId>.jsonl)
  • []添加CLI标志(--goal, --max-turns, --topic)
  • []用真实模型包装器替换模拟LLM(MOCK_LLM=true 回退)
  • []最小的web UI(时间线+内存查看器)
  • []添加Redis Streams后端以实现持久化
  • []长时间运行的任务和检查点恢复
  • []新代理角色的插件系统

🛠️ 工作流示例

  1. 协调者 以目标启动系统
  2. 规划师 制定计划
  3. 工人 执行它并生成工件
  4. 批评家 评估并最终确定任务
  5. 记录结果并保存到内存中

🔧 配置

Orion读取了一些环境变量:

  • REDIS_URL –Redis连接字符串(默认值: redis://127.0.0.1:6379)
  • ORION_LOG_DIR –日志文件目录(默认: <cwd>/logs)
  • ORION_LOG_LEVEL – debug | info | warn | error (默认值: info)

您可以通过shell、Docker或本地 .env 文件(已加载 dotenv).


🧱 当前基金会

Orion现在为多代理开发提供了稳定的基础:

  • 核心运行时(@orion/runtime) –任务编排和目标生命周期
  • 代理SDK(@orion/agent-kit) –共享工具、模式和生命周期助手
  • 类型化配置 –示例: PlannerConfig 模型参数
  • 结构化日志 –跨代理的JSONL一致
  • 已准备好进行LLM集成 –模拟功能可以通过即将推出的 llm.ts 层

此基础允许在不修改核心运行时的情况下添加新角色或模型集成。


🤝 开源许可

Orion是开源的 MIT许可证.

您可以出于个人和商业目的自由使用、修改和分发它。


🧑‍💻 作者

莱顿 --解决方案架构师(英国)
github: @雷顿·曼宁


猎户座-- 一组代理,在一个运行时协同工作。