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 問題與拉取請求貢獻。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案