open-multi-agent/open-multi-agent

Self-hosted TypeScript agent runtime with durable approvals and verifiable run records. Own it, approve it, audit it.

Open Multi‑Agent (OMA)

是什么 – 以 TypeScript 为先的框架,可让您在任何 Node.js 应用中运行 动态 的 LLM 驱动的代理团队。您提供一个高层次的目标,内置的 协调器 会实时构建任务 DAG,跨代理调度工作,并记录每一步,以便运行过程可被检查、批准、重放或恢复。

核心理念

  • 目标驱动的编排 – 无需手动编写图;协调器根据用户提供的提示在运行时构建依赖图。
  • 可控执行 – 计划、任务分发和工具调用可预览并暂停以供人工审批。框架提供审批钩子和持久化检查点。
  • 可观测性与重放 – 所有运行均以追踪数据形式存储。离线的 运行查看器 可可视化 DAG、跨度瀑布图、Token 使用量和工具调用,并允许您精确重放运行过程。
  • 安全与隐私 – 工具默认禁用;每次调用必须显式允许。遥测和持久化状态受可选隐私控制约束。
  • 开放运行时 – 支持任意 LLM 提供商(OpenAI、Claude、Gemini、本地服务器、AI-SDK)并可混合使用云模型与本地模型。支持共享内存、预算、重试、循环检测和 OpenTelemetry 导出。

典型用例

  • 复杂的后台自动化(例如,PR 审查机器人、安全分析流水线)。
  • 多个代理需要收集事实、比较证据并达成共识的研究或分析团队。
  • 需要可审计性、审批工作流以及故障后恢复能力的生产级 AI 服务。

快速入门

# 创建一个包含完整离线运行演示的启动项目
npm create oma-app@latest my-oma

或向现有 Node.js 代码库添加核心库:

npm install @open-multi-agent/core
import { OpenMultiAgent } from '@open-multi-agent/core'

const oma = new OpenMultiAgent({ defaultProvider: 'openai', defaultModel: 'gpt-5.4' })

const team = oma.createTeam('research-team', {
  agents: [
    { name: 'researcher', systemPrompt: '查找相关事实。' },
    { name: 'analyst',   systemPrompt: '比较证据并识别权衡。' },
  ],
  sharedMemory: true,
})

const result = await oma.runTeam(team, '比较三种方法并推荐一种。')
console.log(result.agentResults.get('coordinator')?.output)

该示例无需 API 密钥即可运行,因为它使用的是脚本化模型响应;设置 OPENAI_API_KEY 可尝试使用真实模型。

安全钩子示例 – 暂停任何关键工具调用(例如文件写入)以进行人工审查:

const oma = new OpenMultiAgent({
  defaultProvider: 'openai',
  defaultModel: 'gpt-5.4',
  onToolCall: ({ consequential }) =>
    consequential ? { action: 'suspend' } : { action: 'allow' },
})

生态系统

  • 核心包@open-multi-agent/core 提供运行时、工具库、检查点、追踪、CLI 和离线运行查看器。
  • OTel 集成@open-multi-agent/otel 可将 OMA 追踪数据发送到集中式 OpenTelemetry 堆栈。
  • 脚手架工具create-oma-app 支持 npm create oma-app,用于快速生成启动模板。
  • 集成 – 社区项目已将 OMA 集成到 PR 审查助手、WordPress 安全扫描器、量化模型驱动的研究工具等中。

文档与资源

许可证 – MIT(参见 LICENSE 文件)。项目由 YuanASI Technology 维护,欢迎通过 GitHub 问题和拉取请求贡献代码。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目