sgMAP
mcp
Warn
Health Warn
- No license — Repository has no license file
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 11 GitHub stars
Code Pass
- Code scan — Scanned 11 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
sgMAP is an open-source general multi-agent platform for building, orchestrating and scaling AI agents, workflows and research pipelines. sgMAP 是一个开源的通用多智能体平台,用于构建、编排和扩展 AI 智能体、工作流程和研究流程。
README.md
🌐 中文 | English
Multi-Agent 智能体协同平台 v3.0.0 — Cloud Hub
基于 Hermes (Ollama) 的多智能体统一管理平台。支持云端部署、API 鉴权、多机 Agent 接入、GitHub 知识库同步、文件中转与多 Agent 协同任务。
架构
┌─────────────────────────────────────────────────────┐
│ 用户 / 管理员(浏览器看板) │
└─────────────────────────┬───────────────────────────┘
│ HTTPS + WS
┌─────────────────────────▼───────────────────────────┐
│ 云端 SGA Hub (main.py) │
│ 鉴权 · 注册 · DAG调度 · 文件中转 · GitHub同步 │
└──┬──────────────────┬──────────────────┬─────────────┘
│ │ │
▼ ▼ ▼
机器 A 机器 B 机器 C
agent_sdk agent_sdk agent_sdk
Coder Agent GPU Agent Writer Agent
Ollama vLLM Claude API
│ │ │
└──────────────────┼──────────────────┘
│ Git
┌───────▼────────┐
│ GitHub 共享仓库 │
│ knowledge/ │
│ skills/ │
└────────────────┘
快速开始
# 1. 安装依赖
pip install fastapi uvicorn httpx python-multipart psutil aiofiles
# 2. 启动 Hub
uvicorn main:app --reload --port 9527
# 3. 打开浏览器 → http://localhost:9527
# 4. 启动 Agent(另一个终端)
python demo_agents.py
v3.0.0 新增功能
| 模块 | 新增 |
|---|---|
| 鉴权 | API Key 鉴权中间件,所有 /api/ 路由受保护 |
| 鉴权 | 前端自动提示输入 Key,localStorage 持久化 |
| 文件中转 | 文件上传/下载 API(multipart,500MB 上限) |
| 文件中转 | Agent SDK 支持 upload_file / download_file |
| Skills | GitHub 共享仓库 Skills 同步到本地数据库 |
| Skills | Skills 列表/查询/内容获取 API |
| Skills | Agent SDK 支持 get_skill / list_skills |
| GitHub 同步 | git clone/pull/push 自动化 |
| GitHub 同步 | Webhook 自动触发同步 |
| 调度增强 | Orchestrator 工作流完成/失败状态追踪 |
| 调度增强 | 上游任务失败自动取消下游依赖 |
| 调度增强 | required_capabilities 精确匹配 |
| 多机接入 | Agent SDK 支持 SGA_HUB_URL 远程连接 |
| 多机接入 | 所有请求自动附带鉴权头 |
API 速查
# 智能体
POST /api/agents/register 注册智能体
POST /api/agents/{id}/heartbeat 心跳(含 Metrics)
GET /api/agents/{id}/metrics 获取指标
POST /api/agents/{id}/message 发消息
GET /api/agents/{id}/inbox 收件箱
POST /api/agents/{id}/log 写入日志
GET /api/agents/{id}/logs 查询日志
# 任务
POST /api/tasks 创建任务(含 depends_on)
POST /api/tasks/{id}/complete 完成任务
POST /api/tasks/{id}/pause 暂停任务
POST /api/tasks/{id}/resume 恢复任务
POST /api/tasks/{id}/retry 重试任务
PATCH /api/tasks/{id}/context 编辑上下文
POST /api/tasks/{id}/reassign 重新分配
# 工作流
POST /api/workflows 创建工作流(支持 $N 依赖引用)
GET /api/workflows/{id} 查看工作流(含进度)
POST /api/workflows/{id}/pause 暂停工作流
POST /api/workflows/{id}/resume 恢复工作流
# 文件中转
POST /api/files/upload 上传文件(multipart)
GET /api/files/{task_id}/{filename} 下载文件
GET /api/files/{task_id} 列出任务文件
DELETE /api/files/{task_id}/{filename} 删除文件
# Skills
POST /api/shared/sync 同步 GitHub 仓库
POST /api/shared/push 推送到 GitHub
GET /api/skills 列出 Skills
GET /api/skills/{name} 获取 Skill 内容
# 节点
POST /api/peers/join 节点加入
GET /api/peers 列出节点
DELETE /api/peers/{id} 移除节点
POST /api/peers/{id}/sync 同步远程 Agent
# 统计
GET /api/stats 全局快照
GET /api/stats/tokens Token 消耗统计
GET /api/events 协同事件流
GET /api/resources 实时系统资源
# 知识库
GET /api/knowledge 知识库列表
POST /api/knowledge 创建知识库
GET /api/knowledge/global 跨节点知识库汇总
POST /api/knowledge/{id}/broadcast 广播到对等节点
# LLM / Webhook / 其他
POST /api/chat LLM 推理(支持流式)
POST /api/github/webhook GitHub Webhook
GET /api/models 列出 Ollama 模型
GET /health 健康检查
WS /ws 实时推送
GET /docs Swagger UI
SDK 速查
from agent_sdk import AgentClient, PlannerAgent, CoderAgent, AnalystAgent
# 连接远程 Hub
agent = AgentClient(name="我的智能体", role="analyzer",
platform_url="https://your-hub:9527")
await agent.register()
# 文件操作
await agent.upload_file(task_id, "/path/to/result.md")
await agent.download_file(task_id, "input.csv", "/tmp/input.csv")
files = await agent.list_task_files(task_id)
# Skills
skills = await agent.list_skills()
skill_content = await agent.get_skill("code_review")
# 任务 + LLM
answer = await agent.llm("分析这段数据...")
async for token in agent.llm_stream("生成报告..."):
print(token, end="", flush=True)
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
SGA_API_KEY |
空(无鉴权) | API 鉴权密钥 |
OLLAMA_BASE |
http://localhost:11434 |
Ollama 地址 |
HERMES_MODEL |
hermes3 |
默认 LLM 模型 |
HB_TIMEOUT |
60 |
心跳超时(秒) |
ORCHESTRATOR_ENABLED |
true |
启用调度引擎 |
ORCHESTRATOR_INTERVAL |
5 |
调度轮询间隔(秒) |
TASK_STALL_TIMEOUT |
300 |
任务超时判定(秒) |
DEFAULT_MAX_RETRIES |
3 |
默认最大重试次数 |
SGA_SHARED_REPO |
`` | GitHub 共享仓库 URL |
SGA_SHARED_DIR |
./shared |
本地共享目录 |
SGA_FILES_DIR |
./task_files |
文件存储目录 |
GITHUB_WEBHOOK_SECRET |
`` | Webhook 签名密钥 |
MAX_UPLOAD_SIZE_MB |
500 |
最大上传文件(MB) |
SGA_SEED_NODES |
`` | 种子节点列表(逗号分隔) |
SGA_PUBLIC_URL |
`` | 本节点公网 URL |
项目结构
├── main.py # Hub 主服务(FastAPI)
├── orchestrator.py # DAG 任务调度引擎
├── peer_mesh.py # 多节点互联模块
├── agent_sdk.py # Agent SDK(Python)
├── feishu_bot_agent.py # 飞书 Bot Agent(群聊接入)
├── index.html # 看板前端
├── demo_agents.py # 演示 Agent 脚本
├── start.sh # 一键启动脚本
├── config/
│ ├── hub.env # Hub 端配置模板
│ └── agent.env # Agent 端配置模板
├── scripts/
│ ├── start_hub.sh # 云端 Hub 启动
│ └── start_agent.sh # 本地 Agent 启动
└── docs/
├── QUICKSTART.md # 5 分钟快速上手
└── feishu_bot_deploy.md # 飞书 Bot 部署指南
使用指南
1. 部署 Hub(只需一台服务器)
git clone https://github.com/Bettermelsm/SGA_Multi-Agent.git
cd SGA_Multi-Agent
pip install fastapi uvicorn httpx python-multipart psutil aiofiles
# 局域网使用(无鉴权)
uvicorn main:app --host 0.0.0.0 --port 9527
# 公网部署(开启鉴权)
export SGA_API_KEY=your-secret-key
uvicorn main:app --host 0.0.0.0 --port 9527
# 浏览器打开 http://your-server:9527
2. 智能体注册(任意机器)
只需 agent_sdk.py 一个文件,不需要 clone 整个仓库。
from agent_sdk import AgentClient
agent = AgentClient(
name="我的智能体",
role="coder",
capabilities=["python", "code_review"],
platform_url="http://your-server:9527", # Hub 地址
)
await agent.register() # 自动生成跨机器唯一 ID 并注册
或通过环境变量:
export SGA_HUB_URL=http://your-server:9527
export SGA_API_KEY=your-secret-key
python demo_agents.py
不同机器只需改 platform_url 指向同一个 Hub 即可。
3. 飞书群聊接入
pip install httpx websockets fastapi uvicorn psutil
# 配置飞书应用凭证
export SGA_HUB_URL=http://your-server:9527
export SGA_API_KEY=your-secret-key
export FEISHU_APP_ID=cli_xxxxx
export FEISHU_APP_SECRET=xxxxx
export FEISHU_VERIFY_TOKEN=xxxxx
# 启动 Bot
python feishu_bot_agent.py
详细部署步骤见 docs/feishu_bot_deploy.md。
飞书群内指令:
/task 分析这段代码— 创建单个任务/workflow 完整代码审查流程— 创建多步工作流/agents— 查看在线智能体/status <工作流ID>— 查询进度
4. 工作方式
用户发指令 → Hub 创建任务 → Orchestrator 匹配最优空闲 Agent
↓
Agent 执行任务 → 完成后 Hub 广播结果
↓
飞书 Bot/看板 实时收到通知
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found