跳转至

Muxiva Studio

Studio 是随 muxiva CLI 发布的本地可视化开发环境。它编辑的就是校验器与 Runtime Compiler 使用的严格 Graph v1 文档,不存在浏览器专用图格式。

启动

muxiva studio
# 旗舰语音项目的跨平台显式入口
./examples/voice-agent/run.sh --studio

macOS/Windows Shell 直接运行 run.sh 也默认进入 Studio;Linux 默认 Headless,因此在 Linux 上打开 Studio 必须写 --studio

无参数启动时,CLI 按顺序发现当前项目的 graph.json、独立的 muxiva.graph.json,以及 Muxiva 源码仓库内的旗舰 Voice Agent。都不存在时会创建一份 新的 muxiva.graph.json,不会覆盖已有文件。也可以显式传入项目目录或 Graph:

muxiva studio my-agent
muxiva studio path/to/graph.json

Studio 允许打开尚未通过校验的 Graph,以便在画布和诊断面板中修复错误。

可视化开发流程

Palette 将架构层级与图中角色分开:可以按 Transport、Algorithm、Media、Control 或 Utility 过滤,也可以按 Capability、Tag 或 Node Type 搜索。选择 Node 后, Inspector 会展示功能摘要、稳定 Capability、详细 Port Schema、实现源码和独立指南。

  1. 将内置或项目 Node 从 Palette 拖到画布。
  2. 从输出 Port 拉线到类型兼容的输入 Port。
  3. 选择 Node,查看 Factory 元数据、配置与实现源码。
  4. 校验并运行 Graph,观察实时指标,按需停止 Runtime。
  5. 将格式化 Graph JSON 原子写回文件。

Studio 根据 Port Schema 自动推导 Edge 的 Frame 类型。audio、video、text、 byte、signal 与 event Port 之间不允许错误连接。

在 Studio 中创建 Node

点击 Create Node,选择语言和角色,编辑模板代码,声明 Port 与配置 Schema, 然后点击 Save & Register

.muxiva/nodes/my_python_node/
├── muxiva.node.json
└── node.py

Package 会立即进入当前项目的 Palette。Python Node 通过可信本地 Host 运行; 符合 Muxiva ABI v1、放在 .muxiva/native/<package_id>/ 的 C++ 动态库也会被严格核对 Manifest 身份、版本、角色与 Port 后加载。TypeScript 与 Rust 项目源码目前仍需 在 Studio 外构建为受支持的运行产物。

选中项目 Node 后,Inspector 会展示 .muxiva/nodes/ 中保存的完整源码,并提供 Edit in Node Lab。通过兼容配置 .muxiva/providers.json 加载的官方 Node 会展示精确源码, 但保持只读;项目自己的 .muxiva/nodes 仍可编辑。选中编译内置 Node 时会展示精确 Factory 身份,并链接到 权威 Rust 实现。

Runtime 可观测性

紧凑 Runtime 面板展示会话总量。点击顶部 ◎ Observe 可进入专门的实时诊断页: 逐 Node 吞吐与处理耗时、逐 Edge 速率与队列等待、Node 内部 SDK 缓冲、自动热点判定 以及点击下钻详情。完整用法见可观测性与堵点定位。Run 使用当前 画布快照,不要求预先保存。

Studio 不再托管 Voice Room 或其他最终用户页面。部署时使用 muxiva serve 运行 Graph, 并单独托管 examples/voice-agent/web/。这样用户设备上的麦克风页面不依赖开发机上的 Studio;完整路径见Headless Runtime 与独立网页

安全边界

Studio 默认只监听 127.0.0.1,所有接口要求随机 Bearer Token。保存、浏览或 校验 Package 都不会执行源码;只有可信本地用户主动点击 Run 后,语言 Host 才会加载 Package。

Studio 不是远程生产控制面,禁止直接暴露到公网。