项目简介

Swarmonomicon 是一个基于 Rust 的多智能体系统,旨在为大型语言模型 (LLM) 客户端提供后端支持。它通过管理代理(Agent)、工具(Tool)和任务(Task Todo),帮助 LLM 应用访问外部数据和执行复杂操作,实现更智能、更协作的应用模式。

主要功能点

  • 多功能代理: 提供多种预设代理(如 Git 助手、Haiku 生成器、项目初始化、浏览器自动化)和可扩展的自定义代理框架。
  • 工具集成: 允许代理调用外部功能(如 Git 命令、项目模板、GPT 批量处理、Todo 列表管理)。
  • 任务管理系统: 基于 MongoDB 的持久化任务列表,支持优先级、状态跟踪和 AI 增强。
  • 实时通信: 支持 WebSocket 和 MQTT,实现客户端与服务器、以及服务器内部组件间的实时交互。
  • 灵活的 API: 提供 REST API 用于代理管理、任务管理等,以及 WebSocket API 用于实时会话。

安装步骤

  1. 确保已安装 Rust 编译环境 (latest stable)。
  2. 确保已安装 Git。
  3. 确保本地运行着支持 OpenAI 兼容 API 的 LLM 服务,例如 LM Studio (默认地址 'http://127.0.0.1:1234') 或 Ollama ('http://localhost:11434')。根据配置选择,项目默认使用 Ollama。
  4. 确保安装并运行 MongoDB (默认连接 'mongodb://localhost:27017',数据库 'swarmonomicon') 和 Mosquitto MQTT 代理 (默认地址 'localhost:1883')。推荐使用提供的 Docker 脚本一键启动这些服务。
  5. 克隆仓库:'git clone https://github.com/DanEdens/Swarmonomicon.git'
  6. 进入项目目录:'cd Swarmonomicon'
  7. 构建项目:'cargo build'
  8. (可选)运行测试:'cargo test'

服务器配置 (for MCP Clients)

MCP 客户端连接 Swarmonomicon MCP 服务器时,需要配置服务器的启动命令和参数。Swarmonomicon 作为一个后台服务运行,推荐客户端通过其暴露的 API 或 MQTT 接口进行交互。主要的后台组件包括主 API 服务器、MQTT 待办任务接收器 (mqtt_intake) 和待办任务处理器 (todo_worker)。

客户端通常通过网络连接到已运行的 Swarmonomicon 服务。如果客户端需要启动服务,以下是可能的命令和参数配置示例(实际客户端配置界面通常以 JSON 格式展示):

{
  "serverName": "Swarmonomicon API Server",
  "command": "cargo",
  "args": ["run", "--bin", "swarm"],
  "notes": "Launches the main API server (REST/WebSocket). Requires MongoDB and MQTT to be running. Access via http://127.0.0.1:3000"
}
  • 参数注释:

    • 'serverName': 在客户端界面中显示的服务器名称。
    • 'command': 启动服务器的可执行文件或命令 ('cargo' 用于运行 Rust 二进制文件)。
    • 'args': 传递给命令的参数列表 ('run --bin swarm' 指定运行主 API 服务器二进制)。
    • 'notes': 关于此配置的说明。
  • 环境变量配置: Swarmonomicon 依赖环境变量进行配置,例如 'RTK_MONGO_URI' (MongoDB连接串), 'RTK_MONGO_DB' (MongoDB数据库名), 'AWSIP' (MQTT Broker IP), 'AWSPORT' (MQTT Broker Port), 'AI_ENDPOINT' (LLM API URL), 'AI_MODEL' (LLM模型名称)。客户端通常不需要直接配置这些,而应确保 Swarmonomicon 服务在启动时已正确配置这些环境变量。

基本使用方法

  1. 启动依赖服务: 确保 MongoDB 和 MQTT broker 正在运行(可以使用提供的 './docker-setup.sh' 或 './run_services.sh' 脚本)。
  2. 启动 Swarmonomicon 后台组件: 运行以下命令启动核心服务。推荐在后台或使用终端多窗口运行。
    • 启动主 API/WebSocket 服务器:'cargo run --bin swarm' (监听 'http://localhost:3000')
    • 启动 MQTT 待办任务接收器:'cargo run --bin mqtt_intake' (监听 MQTT 'mcp/+' 主题)
    • 启动 MQTT 待办任务处理器:'cargo run --bin todo_worker' (定期检查 MongoDB 待办任务并由代理处理)
  3. 使用 API 交互(例如使用 curl):
    • 列出所有代理:'curl http://localhost:3000/api/agents'
    • 发送消息给指定代理(通过 HTTP POST 触发处理):'curl -X POST http://localhost:3000/api/agents/greeter/message -H "Content-Type: application/json" -d '{"content": "Hello Swarmonomicon"}''
    • 添加待办任务给指定代理:'curl -X POST http://localhost:3000/api/agents/greeter/tasks -H "Content-Type: application/json" -d '{"description": "Welcome new user Jane", "priority": "High"}''
  4. 使用 MQTT 交互: 使用 MQTT 客户端向 'mcp/<target_agent>' 主题发布 JSON 消息(例如向 'mcp/user' 发布)。Payload 格式通常为 '{"description": "...", "priority": "..."}'。MQTT 接收器将把这些发布转换为 MongoDB 待办任务,任务处理器将从 MongoDB 中获取任务并由对应的代理处理。
  5. 使用 CLI 交互('src/bin/swarm.rs'): 'cargo run --bin swarm' 进入交互模式,或 'cargo run --bin swarm git -m "feat: add new feature"' 执行特定命令。

信息

分类

AI与计算