一个使用 Rust + Tauri + React + Three.js 构建的多 Agent 协作系统。

- 卡片式展示已添加的大模型配置
- 支持添加/编辑/删除模型配置
- 支持自定义 API 地址和模型名称
- 配置项包括:名称、提供商、API Key、Base URL、模型名称、最大 Token、温度等
- Skills:原子化能力单元,如文件读写、命令执行等
- MCP:统一的上下文协议,确保不同模型可以统一接入
- 支持启用/禁用各项功能
- 卡片式展示,便于管理
- 每个任务是一个独立的协作房间
- 房间内可以添加多个 Agent
- Agent 之间可以通过 @ 提及进行协作
- 任务卡片显示运行状态、Agent 数量、消息数等
- 3D 房间展示:使用 Three.js 渲染 Agent 3D 模型
- Agent 状态可视化:
- 空闲:轻微上下浮动
- 思考中:头顶显示气泡动画
- 工作中:有工作动画
- Token 消耗过高:头顶冒烟效果
- 聊天界面:Agent 之间的对话记录
- 分屏模式:同时查看 3D 房间和聊天
- 快捷 @ 提及按钮
- 预定义常用的 Agent 角色模板
- 支持快速创建新任务时使用模板
- 模板包含:角色描述、颜色、提示词、默认 Skills 和 MCP
- React 19 - UI 框架
- TypeScript - 类型安全
- Tailwind CSS - 样式框架
- Three.js - 3D 渲染
- @react-three/fiber & drei - React 3D 库
- Framer Motion - 动画效果
- Lucide React - 图标
- React Router - 路由管理
- Rust - 系统编程语言
- Tauri 2.0 - 桌面应用框架
- Tokio - 异步运行时
- Serde - 序列化/反序列化
- Chrono - 时间处理
- UUID - 唯一标识符生成
muti-agent/
├── src/ # 前端源代码
│ ├── components/ # 通用组件
│ │ └── Sidebar.tsx # 侧边栏导航
│ ├── pages/ # 页面组件
│ │ ├── ModelConfigPage.tsx # 大模型配置页
│ │ ├── MCPConfigPage.tsx # MCP & Skills 页
│ │ ├── TasksPage.tsx # 任务列表页
│ │ ├── TaskDetailPage.tsx # 任务详情页
│ │ └── AgentTemplatesPage.tsx # Agent 模板页
│ ├── types/ # TypeScript 类型定义
│ │ └── index.ts
│ ├── App.tsx # 主应用组件
│ ├── main.tsx # 应用入口
│ └── index.css # 全局样式
├── src-tauri/ # Rust 后端代码
│ ├── src/
│ │ └── main.rs # 主程序文件
│ ├── Cargo.toml # Rust 依赖配置
│ └── tauri.conf.json # Tauri 配置
├── index.html
├── package.json
├── vite.config.ts
├── tsconfig.json
├── tailwind.config.js
└── postcss.config.js
- Node.js >= 20
- Rust >= 1.70
- Cargo (随 Rust 一起安装)
npm installnpm run tauri dev这会启动 Vite 开发服务器和 Tauri 应用窗口。
npm run tauri build构建产物会输出到 src-tauri/target/release/bundle/ 目录。
- 点击侧边栏的「模型配置」
- 点击「添加模型」按钮
- 填写模型信息(名称、提供商、API Key 等)
- 保存配置
- 点击侧边栏的「MCP & Skills」
- 切换 Skills 或 MCP 标签
- 启用/禁用需要的功能
- 点击侧边栏的「任务列表」
- 点击「创建任务」按钮
- 填写任务信息
- 从模板添加或创建自定义 Agent
- 进入任务详情页
- 在聊天框输入消息
- 使用快捷按钮或手动 @ 提及 Agent
- 在 3D 房间观察 Agent 状态和交互
- 每个 Agent 有独立的角色、提示词、Skills、MCP
- 运行在独立的任务房间内
- 有自己的状态(空闲/思考/工作/等待/错误)
- 可以使用配置的大模型
- 一个独立的协作环境
- 包含多个 Agent
- 有聊天历史和任务状态
- 房间之间完全隔离
- 可被 Agent 调用的能力
- 如:文件读写、命令执行、网络请求等
- 可以启用/禁用
- 统一的消息格式
- 确保不同模型可以统一接入
- 提供工具调用标准
- 持久化存储(SQLite/PostgreSQL)
- 真实的 LLM API 集成
- Skill 执行引擎
- Agent 状态持久化
- 任务历史记录
- 更多 3D 动画和交互
- 插件系统(第三方 Skills)
- 多机协作(网络通信)
MIT