JackChen-me/open-multi-agent

GitHub: JackChen-me/open-multi-agent

TypeScript 多智能体框架,通过一次 runTeam() 调用自动分解任务、协调多智能体并行执行并合成结果。

Stars: 4983 | Forks: 2080

# 开放多智能体 TypeScript 多智能体编排框架。一次 `runTeam()` 调用,从目标到结果——框架将其分解为任务、解析依赖,并以并行方式运行智能体。 3 个运行时依赖 · 33 个源文件 · 可部署到任何 Node.js 运行的环境 · 在 [Latent Space](https://www.latent.space/p/ainews-a-quiet-april-fools) AI 新闻中提及 [![GitHub stars](https://img.shields.io/github/stars/JackChen-me/open-multi-agent)](https://github.com/JackChen-me/open-multi-agent/stargazers) [![license](https://img.shields.io/github/license/JackChen-me/open-multi-agent)](./LICENSE) [![TypeScript](https://img.shields.io/badge/TypeScript-5.6-blue)](https://www.typescriptlang.org/) [![coverage](https://img.shields.io/badge/coverage-88%25-brightgreen)](https://github.com/JackChen-me/open-multi-agent/actions) **English** | [中文](./README_zh.md) ## 为什么选择开放多智能体? - **目标输入,结果输出** — `runTeam(team, "Build a REST API")`。协调器智能体会自动将目标分解为带依赖关系和执行者的任务 DAG,并行运行独立任务,并合成最终输出。无需手动定义任务或连接图。 - **TypeScript 原生** — 为 Node.js 生态系统构建。`npm install`,导入,运行。无需 Python 运行时,无需子进程桥接,无需辅助服务。可嵌入 Express、Next.js、无服务器函数或 CI/CD 流水线。 - **可审计且轻量** — 3 个运行时依赖(`@anthropic-ai/sdk`、`openai`、`zod`)。33 个源文件。整个代码库一个下午就能读完。 - **模型无关** — Claude、GPT、Gemma 4 和本地模型(Ollama、vLLM、LM Studio、llama.cpp server)可在同一团队中使用。通过 `baseURL` 为每个智能体切换模型。 - **多智能体协作** — 具有不同角色、工具和模型的智能体通过消息总线和共享内存进行协作。 - **结构化输出** — 为任何智能体添加 `outputSchema`(Zod)。输出被解析为 JSON、验证,失败时自动重试一次。通过 `result.structured` 访问类型化结果。 - **任务重试** — 在任务上设置 `maxRetries` 以实现指数退避的自动重试。失败尝试会累积令牌使用量以实现准确计费。 - **人在环中** — 在 `runTasks()` 上提供可选的 `onApproval` 回调。每批任务完成后,你的回调决定是继续还是中止剩余工作。 - **生命周期钩子** — `AgentConfig` 上的 `beforeRun` / `afterRun`。在执行前拦截提示或之后后处理结果。从任一钩子抛出异常均可中止。 - **循环检测** — `AgentConfig` 上的 `loopDetection` 捕获卡住的智能体重复相同的工具调用或文本输出。可配置操作:警告(默认)、终止或自定义回调。 - **可观测性** — 可选的 `onTrace` 回调为每个 LLM 调用、工具执行、任务和智能体运行发出结构化跨度——包含计时、令牌使用量和用于关联的共享 `runId`。未订阅时零开销,零额外依赖。 ## 快速开始 需要 Node.js >= 18。 ``` npm install @jackchen_me/open-multi-agent ``` 为你的提供商设置 API 密钥。通过 Ollama 的本地模型不需要 API 密钥——请参阅[示例 06](examples/06-local-model.ts)。 - `ANTHROPIC_API_KEY` - `OPENAI_API_KEY` - `GEMINI_API_KEY` - `GITHUB_TOKEN`(用于 Copilot) 三个智能体,一个目标——框架处理其余事项: ``` import { OpenMultiAgent } from '@jackchen_me/open-multi-agent' import type { AgentConfig } from '@jackchen_me/open-multi-agent' const architect: AgentConfig = { name: 'architect', model: 'claude-sonnet-4-6', systemPrompt: 'You design clean API contracts and file structures.', tools: ['file_write'], } const developer: AgentConfig = { name: 'developer', model: 'claude-sonnet-4-6', systemPrompt: 'You implement what the architect designs.', tools: ['bash', 'file_read', 'file_write', 'file_edit'], } const reviewer: AgentConfig = { name: 'reviewer', model: 'claude-sonnet-4-6', systemPrompt: 'You review code for correctness and clarity.', tools: ['file_read', 'grep'], } const orchestrator = new OpenMultiAgent({ defaultModel: 'claude-sonnet-4-6', onProgress: (event) => console.log(event.type, event.agent ?? event.task ?? ''), }) const team = orchestrator.createTeam('api-team', { name: 'api-team', agents: [architect, developer, reviewer], sharedMemory: true, }) // Describe a goal — the framework breaks it into tasks and orchestrates execution const result = await orchestrator.runTeam(team, 'Create a REST API for a todo list in /tmp/todo-api/') console.log(`Success: ${result.success}`) console.log(`Tokens: ${result.totalTokenUsage.output_tokens} output tokens`) ``` 幕后发生的事情: ``` agent_start coordinator task_start architect task_complete architect task_start developer task_start developer // independent tasks run in parallel task_complete developer task_start reviewer // unblocked after implementation task_complete developer task_complete reviewer agent_complete coordinator // synthesizes final result Success: true Tokens: 12847 output tokens ``` ## 三种运行方式 | 模式 | 方法 | 使用场景 | |------|--------|-------------| | 单智能体 | `runAgent()` | 一个智能体,一个提示——最简单的入口 | | 自动编排团队 | `runTeam()` | 给出目标,框架计划并执行 | | 显式流水线 | `runTasks()` | 你定义任务图和分配 | ## 示例 所有示例都是 [`examples/`]( ## 贡献者 Star History Chart ## Star 历史 ## 翻译 帮助翻译此 README — [提交 PR](https://github.com/JackChen-me/open-multi-agent/pulls)。 ## 许可证 MIT
标签:Anthropic, CIS基准, Claude, CVE检测, GNU通用公共许可证, LLM编排, LLM评估, MITM代理, Node.js, Ollama, OpenAI, PyRIT, TypeScript, Zod, 人工智能, 任务分解, 内存规避, 多智能体框架, 多智能体系统, 威胁情报, 安全插件, 并行执行, 开发者工具, 开源, 用户模式Hook绕过, 结构化输出, 自动化攻击