🛸️ 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 install3.跑步
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
│ ├─ worker/ # Uses defineAgent
│ └─ critic/ # Uses defineAgent
├─ 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/.jsonl) - \[\]添加CLI标志(
--goal,--max-turns,--topic) - \[\]用真实模型包装器替换模拟LLM(
MOCK_LLM=true回退) - \[\]最小的web UI(时间线+内存查看器)
- \[\]添加Redis Streams后端以实现持久化
- \[\]长时间运行的任务和检查点恢复
- \[\]新代理角色的插件系统
______________________________________________________________________
🛠️ 工作流示例
- 协调者 以目标启动系统
- 规划师 制定计划
- 工人 执行它并生成工件
- 批评家 评估并最终确定任务
- 记录结果并保存到内存中
______________________________________________________________________
🔧 配置
Orion读取了一些环境变量:
REDIS_URL–Redis连接字符串(默认值:redis://127.0.0.1:6379)ORION_LOG_DIR–日志文件目录(默认:/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: @雷顿·曼宁
______________________________________________________________________
猎户座-- *一组代理,在一个运行时协同工作。*
