Skip to main content
Glama
README.md
# 星火协程 — 多Agent协同调度系统

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Node.js Version](https://img.shields.io/badge/node-%3E%3D18-brightgreen)](https://nodejs.org/)
[![MCP Protocol](https://img.shields.io/badge/protocol-MCP-blue)](https://modelcontextprotocol.io/)

> **核心能力**:跨会话协调 + 缺陷聚合 + 审批门禁 + 发布回滚 + 复盘知识沉淀

多个 Claude Code / Codex 会话通过 **MCP 协议**实现跨会话通信、状态共享、任务调度,覆盖软件研发 8 步闭环:缺陷录入 → 聚合去重 → RCA → 任务 DAG → 修复 → 审批 → 发布 → 回滚 → 复盘 → 知识沉淀。

---

## 🎯 核心能力一览

| 能力域 | 功能 | 技术亮点 |
|--------|------|----------|
| **缺陷聚合** | 多源录入 + Jaccard 去重 | 归一化相似度 0.6 阈值,重复上报自动合并证据 |
| **审批门禁** | 高风险变更强制人工审批 | rollback_plan 必填,pending 超时自动 expired |
| **发布回滚** | 审批通过才能测试,失败自动回滚 | 版本唯一性约束 + 幂等保护 + 全链路审计 |
| **复盘知识** | 根因/影响/改进措施 + 知识库 | 轻量 RAG(关键词+标签检索),可替换向量检索 |
| **任务调度** | 依赖 DAG + 自动 unblock | 任务状态机 + metadata 扩展支持学生竞赛场景 |
| **会话协调** | 心跳检测 + stale 清理 | 超 1 小时无心跳释放任务,watchdog 只读监督 |
| **消息传递** | 点对点 + 广播 + TTL + ACK | 异步队列 + 长轮询 `wait_for_work` 统一接口 |
| **审计日志** | 11 种域操作全留痕 | session/task/message/defect/approval/release/retro/knowledge 8 域 |

---

## 🚀 快速开始

### 1. 安装依赖
```bash
npm install
```

### 2. 启动 MCP Server(开发模式)
```bash
npm run dev
```

**预期输出**:
```
MCP Server (stdio): coordinator
Listening on stdio (pid 12345)
Database initialized: data.db
Available tools: 77
Available resources: 3
```

### 3. 配置客户端接入

**Claude Code** — 编辑 `~/.claude/mcp_settings.json`:
```json
{
  "mcpServers": {
    "coordinator": {
      "command": "node",
      "args": ["/path/to/nexus/dist/server.js"],
      "env": {}
    }
  }
}
```

将 `/path/to/nexus` 替换为本项目在你本机的实际路径。开发模式可改用 `npx tsx /path/to/nexus/src/server.ts`。

**Codex** — 参考 `.codex/config.toml` 示例配置。

**项目级接入** — 复制根目录 `.mcp.json.example` 为 `.mcp.json`,按本机路径修改后即可在该项目内自动生效。

### 4. 运行 8 步闭环 Demo
```bash
npx tsx scripts/demo-devflow.ts
```

**预期输出**:完整工作流轨迹(缺陷录入 → 聚合 → RCA → 修复 → 审批 → 发布 → 回滚 → 复盘),证明 5 大域模块联动正确。

---

## 🏗 架构概览

### 设计模式:Manager-Workers

```
┌─────────────────────────────────────────────────────────┐
│                     MCP Server                          │
│  ┌───────────┐  ┌───────────┐  ┌──────────┐           │
│  │ Session   │  │ Message   │  │ Task     │           │
│  │ Manager   │  │ Queue     │  │ Scheduler│           │
│  └───────────┘  └───────────┘  └──────────┘           │
│                                                         │
│  ┌───────────┐  ┌───────────┐  ┌──────────┐           │
│  │ Defect    │  │ Approval  │  │ Release  │           │
│  │ Aggregate │  │ Gate      │  │ Pipeline │           │
│  └───────────┘  └───────────┘  └──────────┘           │
│                                                         │
│  ┌───────────────────────────────────────────┐         │
│  │ Retro + Knowledge (Lightweight RAG)       │         │
│  └───────────────────────────────────────────┘         │
│                                                         │
│              SQLite (WAL mode)                          │
└─────────────────────────────────────────────────────────┘
         ↑                    ↑
         │                    │
    Claude Code            Codex
     (Manager)            (Worker)
```

### 8 大域模块职责

1. **会话域** (`session.ts`) — 注册/心跳/状态,stale 自动清理
2. **任务域** (`task.ts`) — 创建/认领/更新,依赖 DAG + auto-unblock
3. **消息域** (`message.ts`) — 点对点/广播,TTL + ACK
4. **缺陷域** (`defects.ts`) — 多源录入 + Jaccard 去重 + 定级分诊
5. **审批域** (`approvals.ts`) — 高风险变更强制回滚计划 + 人工审批
6. **发布域** (`releases.ts`) — 审批门禁 + 版本唯一性 + 失败回滚
7. **复盘域** (`retros.ts`) — 根因/影响/改进措施 + 知识沉淀
8. **知识域** (`retros.ts`) — 轻量 RAG(关键词+标签检索)

### 数据流:8 步闭环

```
缺陷录入 → 去重合并 → 分诊定级 → RCA 任务 → 修复任务 → 代码审查
                                                          ↓
知识沉淀 ← 复盘报告 ← 回滚恢复 ← 发布失败 ← 审批通过 ← 人工审批
```

---

## ✅ 运行验证

```bash
npx tsx scripts/demo-devflow.ts
```

输出 STEP 1–9 完整轨迹,覆盖缺陷录入 → 聚合去重 → RCA → 修复 → 审批 → 发布 → 回滚 → 复盘 → 知识沉淀,
用于验证 8 大域模块联动正确。

---

## 🛠 开发者指南

### 本地开发

```bash
# 安装依赖
npm install

# 开发模式(自动重启)
npm run dev

# 构建生产版本
npm run build

# 运行生产版本
npm start

# 类型检查
npx tsc --noEmit

# 运行测试(watch 模式)
npx vitest

# 运行测试(单次)
npx vitest run
```

### 项目结构

```
src/
├── server.ts          # MCP server 入口,注册所有 tools/resources
├── db.ts              # SQLite 数据库初始化和迁移(含并发安全修复)
├── session.ts         # 会话管理 (register, heartbeat, status)
├── message.ts         # 消息传递 (send, get, ack, wait_for_work)
├── task.ts            # 任务管理 (create, claim, update, list)
├── defects.ts         # 缺陷聚合与去重(Jaccard 相似度,事务保护)
├── approvals.ts       # 审批域(强制回滚计划 + 人工审批,原子更新)
├── releases.ts        # 发布与回滚(审批门禁 + 版本唯一性 + 幂等保护)
├── retros.ts          # 复盘与知识沉淀(轻量 RAG 检索,事务保护)
└── types.ts           # 共享类型定义

.claude/skills/
├── coordinator/       # 通用多会话协调 Skill(4 角色)
└── devflow/           # 软件研发全流程协同 Skill(6 角色 + 8 步闭环)
    ├── SKILL.md       # 入口:角色选择
    ├── workflows.md   # 8 步闭环工作流
    └── agents/        # 每个角色的 SKILL.md(9 要素完整)

.agents/skills/        # Codex 适配入口

tests/                 # 单元测试(vitest)
├── session.test.ts
├── message.test.ts
├── task.test.ts
├── defects.test.ts
└── ...

scripts/
└── demo-devflow.ts    # 8 步闭环冒烟脚本(输出运行轨迹)
```

### 扩展开发

**添加新 Tool**:

1. 在对应域模块(如 `task.ts`)实现业务逻辑
2. 在 `server.ts` 注册 Tool schema + handler
3. 添加单元测试到 `tests/`
4. 更新审计日志枚举(若新增域操作)

**添加新 Skill**:

1. 在 `.claude/skills/` 下创建目录
2. 编写 `SKILL.md`(9 要素:目标/角色/输入/处理/输出/校验/异常/示例/限制)
3. 若支持 Codex,在 `.agents/` 添加适配入口
4. 在 `README.md` 的核心能力一览中同步登记

---

## 🔬 技术栈对比

| 技术选型 | 当前方案 | 推荐升级方向(生产环境) |
|---------|---------|------------------------|
| **数据库** | SQLite (better-sqlite3) | PostgreSQL / MySQL(多服务器部署) |
| **消息队列** | 内存 + SQLite | Redis Streams / RabbitMQ |
| **去重算法** | Jaccard 相似度(确定性) | 向量检索(Embedding + FAISS) |
| **知识检索** | 关键词 + 标签匹配 | 语义向量检索(OpenAI Embedding + Pinecone) |
| **审计日志** | SQLite 表 | Elasticsearch / Loki |
| **监控告警** | 无(手动查询) | Prometheus + Grafana + Alertmanager |

当前实现**刻意选择零第三方依赖**(除 MCP SDK + better-sqlite3),确保 `npm install` 后即可快速启动。生产环境建议按上表升级。

---

## 📝 许可证

MIT License — 详见 [LICENSE](LICENSE)。

## 🙏 致谢

- **MCP Protocol** — [Model Context Protocol](https://modelcontextprotocol.io/) 官方规范
- **AgentTeams** — Manager-Workers 设计模式参照
- **Claude Code / Codex** — 多会话客户端支持

---

## 📮 联系方式

- **Issues**: [GitHub Issues](https://github.com/MT-gar/Nexus/issues)
- **Repository**: [github.com/MT-gar/Nexus](https://github.com/MT-gar/Nexus)
- **Documentation**: Skill 体系见 `.claude/skills/`(coordinator + devflow)

**快速上手**:运行 `npx tsx scripts/demo-devflow.ts` 验证全链路 → 查看 Skill 体系 `.claude/skills/devflow/`。

Maintenance

ActivityMaintained
ResponsivenessUnresponsive