OMA 掌管工作流
协调器拆解目标、把任务分给外部成员、调度依赖、共享上游结果,并把失败级联到下游任务。
用 ACP 或本地进程接入一个团队成员,同时由 OMA 继续掌管规划、调度、共享记忆与失败传播。
import path from 'node:path'
import { OpenMultiAgent } from '@open-multi-agent/core'
// npm install @open-multi-agent/core@^1.11.0 @agentclientprotocol/sdk
// Set ANTHROPIC_API_KEY. Keep this directory narrower than your repository root.
const projectDir = path.resolve(
process.env.OMA_ACP_PROJECT_DIR ?? './scratch-project',
)
const oma = new OpenMultiAgent({
defaultProvider: 'anthropic',
defaultModel: 'claude-sonnet-4-6',
})
const team = oma.createTeam('hybrid-audit', {
name: 'hybrid-audit',
agents: [
{
name: 'planner',
systemPrompt: 'Plan a focused repository audit. Do not edit files.',
},
{
name: 'repo-auditor',
systemPrompt: 'Inspect the project and report evidence. Do not edit files.',
backend: {
kind: 'acp',
command: 'npx',
args: ['-y', '@agentclientprotocol/claude-agent-acp'],
cwd: projectDir,
// OMA defaults to 'auto-approve'. This example starts read-only instead.
permission: ({ kind }) => kind === 'read',
},
},
{
name: 'reviewer',
systemPrompt: 'Challenge the audit findings and summarize residual risk.',
},
],
sharedMemory: true,
})
const result = await oma.runTeam(
team,
'Audit the authentication module for error-handling gaps, then review the evidence.',
)
console.log(result.success, result.totalTokenUsage) 给外部成员设置 AgentConfig.backend,而不是模型。kind: 'acp' 会启动一个长连接的 Agent Client Protocol 会话;kind: 'process' 则为每次运行启动通用命令,并把 stdout、stderr、退出状态与取消映射成普通智能体结果。ACP 是仅在使用时才加载的可选 peer。OMA 扮演 ACP 客户端:启动配置好的子进程、发送 prompt、接收工具与用量更新,再把结果并入与 LLM 智能体相同的任务 DAG 和共享记忆。Claude Code 本身不原生支持 ACP;示例使用官方 @agentclientprotocol/claude-agent-acp 适配器。
OMA 协调整次运行;外部智能体仍是拥有自身工具与上下文的独立运行时。
协调器拆解目标、把任务分给外部成员、调度依赖、共享上游结果,并把失败级联到下游任务。
外部 CLI 自己选择工具、维护会话上下文,并以启动它的本地进程权限执行工作;OMA 不会替代这层运行时。
文本增量、工具调用更新、停止原因、取消与上报用量都会变成普通 OMA 结果,因此混合团队不需要另写调度器。
应把 ACP backend 当作你明确授权的本地子进程,而不是被 OMA 隔离起来的工具。
permission 默认是 'auto-approve',且在智能体提供选项时优先选择单次批准。每次部署都应改用 'reject' 或回调;上面的只读回调是起点,不是通用策略。
子进程直接访问 cwd;OMA 不会通过自身文件系统沙箱代理 ACP 文件操作。把 cwd、command、args 与继承的环境变量缩到最小。process backend 没有协议级权限提示。
ACP 上报累计上下文 token,而非输入/输出拆分。OMA 把读数换算成逐回合增量供 maxTokenBudget 使用;不发送用量更新的智能体会报告零,也不会被 token 门控。ACP 成本尚未接入 maxCostBudget。
OMA 目前只做客户端,不会把 OMA 智能体作为 ACP agent 暴露给编辑器。经编排启动的 ACP 子进程会存活到进程退出;需要显式清理时,使用 createAcpBackend() 与 dispose()。
open-multi-agent 采用 MIT 许可、可自行免费运行。当你需要在期限内交付、集成,或获得支持时,元定义科技(YuanASI)提供商业交付与支持。