Mozaik 多智能体运行时

用 TypeScript 构建可并发协作、通过事件互通的 AI 智能体。

Star 数
★ 163
最近更新
4 天前
License
MIT
主语言
TypeScript

30 秒速览

运行形态
代码库 / SDK开发框架
可在哪里用
通用 · 跨平台OpenAI API · Claude API
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
Node.js@mozaik-ai/core网络访问
典型场景
开发 TypeScript 多智能体应用的工程师,可让多个智能体并发处理同一共享目标并通过运行时事件协作。
不适合
  • 需要开箱即用聊天应用或托管服务的用户
  • 需要内置消息、工具与运行时持久化的团队

这个 Agent 能做什么,适合哪些场景?

Mozaik 是一个 TypeScript 运行时与框架,供开发者在共享空间中构建可互通的 AI 智能体。通过 defineRuntime 创建运行时,并用 RuntimeState 子类保存参与者共享的数据;createAgent 和 createHuman 创建参与者。参与者加入后接收 SpaceEvent,可用 SituationSpecification 匹配事件,再由 SituationProcessor 执行反应。runLoop 以不阻塞调用者的方式驱动智能体状态机,支持推理、工具调用和可选流式输出;模型结果和生命周期事件会发布给所有已加入的参与者。它是供应用代码导入的 npm 包,不是托管产品;部署方式、状态持久化和界面由使用者的应用负责。

安装 @mozaik-ai/core 后,在 TypeScript 应用中调用 defineRuntime 并以 initializeRuntime 初始化 RuntimeState。用 createAgent 定义带有指令、工具、能力和处理器的智能体,用 createHuman 定义人类参与者,再通过 join 和 leave 管理运行时成员。参与者调用 sendMessage 或 sendEvent 发布事件;各处理器根据 SituationSpecification 判断是否响应,并通过 SituationProcessor.apply 启动 runLoop、更新共享状态或执行其他应用逻辑。智能体循环可调用模型并运行匹配的工具,发布推理、工具调用和 model.answer 等事件;使用方提供模型凭据,并自行决定如何保存输出和部署应用。

  1. 开发 TypeScript 多智能体应用的工程师,可让多个智能体并发处理同一共享目标并通过运行时事件协作。
  2. 构建智能体框架的团队,可用 SituationSpecification 和 SituationProcessor 将事件条件与响应逻辑分开组合。
  3. 需要审计或展示智能体活动的开发者,可加入观察者参与者来记录 model.answer 等事件。
  4. 希望在工具执行前审查或改写智能体动作的团队,可通过 InterceptionHandler 检查循环转换。
  5. 需要基于运行时共享状态调整智能体行为的应用开发者,可扩展 RuntimeState 并在处理器中读写它。

如何安装或部署这个 Agent?

在支持 TypeScript 的 Node.js 项目中安装包,并为所用模型提供商配置凭据。README 未指定 Node.js 版本、构建命令或部署方式。

如何使用这个 Agent?

先在 .env 中配置所用提供商的密钥。DeepSeek 使用 OpenAI 兼容的 chat-completions 接口,并需把 OPENAI_API_KEY 和 OPENAI_BASE_URL 指向 DeepSeek。下面的示例创建运行时、加入一个智能体和一个人类参与者,再启动智能体循环;需将 gpt-5.5 替换为你所用且支持的模型名称。

这个 Agent 有哪些优点和局限?

优点
  • 每次 runLoop 都创建独立 loopId,可同时运行不同智能体或同一智能体的多个循环。
  • SpaceEvent 会扇出给所有已加入参与者,且运行时不会等待处理器完成,慢处理器不会阻塞事件生产者。
  • 支持 OpenAI、Anthropic、Gemini 模型凭据,并说明 DeepSeek 可走 OpenAI 兼容接口。
  • InterceptionHandler 可在循环转换执行前检查并改写转换,便于加入人工控制。
局限
  • 需要集成到自己的 TypeScript 应用;README 未提供独立聊天应用或托管服务。
  • 模型调用需要相应提供商凭据;使用 DeepSeek 还需配置 OpenAI 兼容的基础 URL。
  • README 未说明数据库或持久化层;共享数据保存在 RuntimeState,应用需自行处理持久化。
  • 处理器调用 runLoop 和 sendMessage 为 fire-and-forget,README 提醒不要在处理器中等待它们。

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Mozaik 多智能体运行时 当前 54 · 缺口较多 代码库 / SDK免费 + 模型费 ★ 163 4 天前 TypeScript OpenAI API · Claude API
Pi Agent Harness 42 · 缺口较多 命令行工具免费 + 模型费 ★ 117k 今天 TypeScript OpenAI API · Claude API
MiniCode 50 · 缺口较多 命令行工具免费 + 模型费 ★ 1.2k 14 天前 TypeScript Claude API
Remnic 智能体记忆 85 · 表现良好 命令行工具免费 + 模型费 ★ 227 今天 TypeScript ChatGPT · Codex · Claude Code · OpenAI API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
54/ 100 五分制 2.7 / 5
信任安全 11/29
可靠稳定 8/14
适用触发 12/18
规范维护 12/18
有效结果 7/13
证据核验 4/8
查看各维度的扣分理由
信任安全11 / 29 · 1.9/5

README 明确说明 RuntimeState 是参与者共享的可变状态、事件会广播给所有已加入参与者,且无内外部事件分区;这使数据流较可见,故数据流透明度得 2。工具可由 runLoop 执行,拦截器可改写工具调用输入,但未说明权限隔离、逐次用户批准、敏感数据保护、外部副作用控制或回滚机制,因此最小权限、确认、敏感数据处理、外部效果和回滚仅得 1。README 列出按模型使用环境变量密钥,但未给出密钥存储或泄漏防护细节;依赖安全缺少审计证据,均仅得 1。作者和组织名称虽有列出,Publisher 身份未验证且维护路径不清,因此来源归属仅得 1。

可靠稳定8 / 14 · 2.9/5

README 对初始化前后行为、重复初始化、异步事件分发和 fire-and-forget 循环给出具体说明,且与其 API 描述大体一致,故自洽性得 2;未提供依赖锁定或可用性保障证据,依赖可用性得 1。对未初始化和重复初始化列出了明确异常信息,得 2;异步处理器失败后的传播或恢复信息有限,未给满分。

适用触发12 / 18 · 3.3/5

README 以协作式、多 Agent、观察者和事件反应场景解释用途,并给出 TypeScript API 示例,受众与场景得 2。能力边界有明确描述,例如无内建情境规格、事件向所有参与者广播、循环不等待且调用后台运行,得 2;处理器匹配由事件类型及 producerId 谓词控制,触发机制清晰但需自行编写,触发精度得 2。安装命令、Node/TypeScript 包入口和多提供商环境变量配置有所说明,但运行时支持矩阵不完整,环境适配得 2。

规范维护12 / 18 · 3.3/5

README 章节、API 表格和流程图组织清楚,信息架构得 3。提供 npm/yarn/pnpm 安装命令和密钥配置,但未说明运行前提与完整设置步骤,安装说明得 2。包名、API 名称和版本字段可辨认,但没有迁移规则证据,命名稳定性得 2。示例覆盖主要运行模式并链接外部示例仓库,但未见 FAQ,示例与常见问题得 2。对无内建规格、共享可变状态、非等待分发和 fire-and-forget 等限制有说明,得 2。LICENSE 和 package.json 均标明 MIT,许可得 3。package.json 有 beta 版本号,但未提供变更日志,版本与变更记录得 1。README 提及贡献指南,package.json 列作者,但没有清晰的维护责任人或更新承诺;维护责任得 1。

有效结果7 / 13 · 2.7/5

README 给出可复制的 API 片段、事件表和循环状态说明,能帮助开发者形成初始实现,输出可用性得 2。并发、共享事件和拦截能力提供了有根据的框架价值主张,但缺少量化比较或具体运行结果,边际价值得 2。运行时需配置模型提供商凭据并承担多个 SDK 依赖,文档未比较收益与集成成本,成本效益得 1。

证据核验4 / 8 · 2.5/5

多数 API 和行为主张在 README 中具体对应到函数、事件或代码片段,主张可追溯性得 2。提供的材料只有 README、LICENSE 和 package.json,虽有测试脚本但无测试内容可供交叉核对,跨来源佐证得 1。文档将核心目标表述为项目设计主张,并将具体行为用代码/API 示例说明;仍缺少独立验证,因此事实与推断区分得 2。

风险与缓解建议
  • 共享 RuntimeState 与向所有参与者广播的事件可能暴露对话或状态;集成方应自行定义访问边界和敏感数据处理方式。
  • runLoop 可触发工具调用,拦截器也能改写调用输入;文档没有证明默认具备逐次确认、权限限制或副作用回滚。
  • 材料未提供依赖审计、测试内容或变更日志;不要将 package.json 中的测试脚本视为已验证的测试结果。
证据充分度:低 评估于 2026年10月22日 审查版本 87906a46d145
查看完整评分方法 →

常见问题

Mozaik 是可直接使用的聊天应用吗?
不是。它是供 TypeScript 应用导入的运行时和框架,提供构建参与者、发布事件和运行智能体循环的 API。
需要哪些模型密钥?
按所用模型配置提供商凭据:README 列出 OPENAI_API_KEY、ANTHROPIC_API_KEY 和 GEMINI_API_KEY。DeepSeek 使用 OPENAI_API_KEY 与指向 DeepSeek 的 OPENAI_BASE_URL。
智能体会并发运行吗?
会。每次 runLoop 都启动独立循环并立即返回;多个循环可以同时运行。
Mozaik 会自动保存对话和运行时状态吗?
README 说明 RuntimeState 是参与者共享的状态对象,但未说明内置数据库或持久化机制。持久化需由应用处理。
可以在模型调用前拦截工具调用吗?
可以。向 runLoop 传入 InterceptionHandler,即可在待执行转换前检查它,并返回改写后的转换。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents