MACE — 记忆增强型多智能体协同进化平台
Memory-Augmented Multi-Agent Collaborative Evolution Platform
版本: v0.1 (MVP)
文档版本: v1.2
密级: 公开
地址:https://github.com/top777/MACE
希望“权杖”不要是“智障”......
摘要
MACE 是基于"记忆增强型多智能体协同进化框架"理论构建的企业级多智能体协同系统。通过结构化记忆系统、差异化提问学习机制、前瞻性反思进化模块三大核心能力, 将多个异构开源大语言模型组织为有机协作的智能体群体, 在推理成本可控的前提下, 系统性地逼近并超越顶级闭源大模型的实际问题解决能力。
核心特色: 各智能体的权重并非静态设定, 而是基于其对问题解决的实际贡献与结果质量, 通过持续的动态评审与自适应调整, 实现系统能力的自发进化。
架构概览
┌─────────────────────────────────────────────────────────────────┐
│ Layer 5: 预判层 (Prospective Reflection) │
│ 基于反思结果推导未来问题与策略, 驱动权重预调整 │
├─────────────────────────────────────────────────────────────────┤
│ Layer 4: 反思层 (Retrospective Reflection) │
│ 周期性回顾记忆, 总结得失, 提炼改进措施 │
├─────────────────────────────────────────────────────────────────┤
│ Layer 3: 自适应调度层 (CMDP-based Scheduling) │
│ 长期累积回报最优控制, 动态淘汰低效模型 │
├─────────────────────────────────────────────────────────────────┤
│ Layer 2: 后验聚合层 (Posterior Aggregation) │
│ 方差缩减集成 (EPE) + 加权聚合 │
├─────────────────────────────────────────────────────────────────┤
│ Layer 1: 先验路由层 (Priori Routing) │
│ 检索增强评分 + MAP估计 + 稀疏门控 │
├─────────────────────────────────────────────────────────────────┤
│ Layer 0: 结构化记忆层 (Structured Memory) │
│ 个体记忆区 + 共享记忆池 + 记忆检索与写入 (Ebbinghaus 遗忘曲线) │
└─────────────────────────────────────────────────────────────────┘
核心差异化模块: 权重动态评审
每次任务后 ─→ 实时更新 (公式 3): ω^(t+1) = (1-γ)ω^(t) + γ·ω_task
┃
┌──── 多维度评估 (公式 1) ────┐
│ 准确率 + 一致性 + 记忆贡献 │
│ + 提问学习 + 趋势 │
└─────────────────────────────┘
每 N 任务 ──→ 周期评审 (公式 4): ω = ReLU(ω + η_review·Δ)
┃
┌──── 偏差检测 / 趋势诊断 ────┐
│ 离群校正 / 专家复评 │
└─────────────────────────────┘
项目结构
MACE系统/
├── README.md # 本文件
├── requirements.txt # Python 依赖
├── config/
│ ├── default.yaml # 系统参数 (γ/δ/N/上下限等超参数)
│ └── model_pool.yaml # 模型池配置 (6个智能体)
├── data/ # 评测数据 (CMMLU / SWE-bench)
│ ├── cmmlu/ # CMMLU 中文多任务评测数据
│ └── swebench/ # SWE-bench Verified 评测数据
├── src/mace/ # 源代码
│ ├── __init__.py
│ ├── __main_eval__.py # 评测命令行入口
│ ├── config.py # 配置加载 (pydantic)
│ ├── models.py # 核心数据模型
│ ├── memory/ # Layer 0 结构化记忆层
│ │ ├── memory_entry.py # 五元组记忆条目 + Builder
│ │ ├── memory_system.py # 个体记忆区 + 共享池 + 遗忘
│ │ └── embedding.py # 轻量哈希嵌入 (预留替换接口)
│ ├── evaluation/ # 权重动态评审 + 外部评测
│ │ ├── weight_evaluator.py # 权重实时更新 + 周期评审
│ │ ├── weight_store.py # 权重存储 + 审计日志
│ │ ├── cmmlu_loader.py # CMMLU 数据加载 + prompt 生成
│ │ ├── cmmlu_evaluator.py # CMMLU 评测执行器
│ │ ├── swebench_loader.py # SWE-bench 数据加载 + patch 工具
│ │ └── swebench_evaluator.py # SWE-bench 评测执行器
│ ├── routing/ # Layer 1 先验路由
│ │ └── router.py # 检索增强评分 + 稀疏门控
│ ├── aggregation/ # Layer 2 后验聚合
│ │ └── aggregator.py # EPE 方差缩减 + 加权聚合
│ ├── scheduling/ # Layer 3 CMDP 调度
│ │ └── cmdp_scheduler.py # ε-greedy + REINFORCE
│ ├── reflection/ # Layer 4+5 反思预判
│ │ └── reflection_engine.py
│ ├── asking/ # 提问-解答模块
│ │ └── ask_answer.py
│ ├── adapters/ # 模型适配层
│ │ ├── base.py # ModelAdapter 抽象基类
│ │ ├── mock_adapter.py # Mock (模拟多专家响应)
│ │ ├── api_adapter.py # API (兼容国内 6 家模型)
│ │ └── factory.py # 适配器工厂
│ ├── services/ # 服务层
│ │ ├── agent_system.py # 智能体注册管理
│ │ └── coordinator.py # 编排 8 步流程
│ └── api/ # FastAPI 接口
│ ├── app.py # FastAPI 应用入口
│ ├── schemas.py # Pydantic 请求/响应
│ ├── routes/ # 路由模块
│ └── static/
│ └── dashboard.html # 简易监控面板
├── tests/ # pytest 测试
│ ├── conftest.py
│ ├── test_memory.py
│ ├── test_weight_evaluator.py
│ ├── test_router.py
│ ├── test_aggregator.py
│ ├── test_coordinator.py
│ ├── test_api.py
│ ├── test_cmmlu.py
│ └── test_swebench.py
└── examples/
└── demo.py # 完整使用演示
快速开始
环境准备
- Python 3.10+
- (无需 GPU, 默认使用 Mock 适配器, 零成本验证)
cd MACE系统
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/macOS
source venv/bin/activate
pip install -r requirements.txt
启动服务
python -m uvicorn src.mace.api.app:app --host 0.0.0.0 --port 8080 --reload
启动后访问:
快速验证 (curl)
# 同步推理
curl -X POST http://localhost:8080/api/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"messages":[{"role":"user","content":"什么是量子纠缠"}],"mode":"standard"}'
# 查看权重
curl http://localhost:8080/api/v1/agents/weights
# 触发反思
curl -X POST "http://localhost:8080/api/v1/system/reflection?agent_id=glm-5"
# 触发权重复审
curl -X POST http://localhost:8080/api/v1/system/review
运行演示
python examples/demo.py
外部评测
平台内置两大外部评测流水线:
CMMLU (中文多任务语言理解)
# 命令行 (默认每主题 5 题快速验证)
python -m mace --eval-cmmlu --max-per-subject 5
# 只评测特定主题
python -m mace --eval-cmmlu --subjects logical,philosophy,computer_science
# 对比模式: 多智能体协同 vs 各智能体独立回答
python -m mace --eval-cmmlu --mode mace_single_per_agent
# five-shot 评测
python -m mace --eval-cmmlu --few-shot 5 --max-per-subject 20
SWE-bench Verified (代码修复)
# 命令行 (默认 5 个 issue)
python -m mace --eval-swe --max-count 5
# 指定 issue
python -m mace --eval-swe --instance-ids django__django-14997,psf__requests-2317
# 启用 Docker 验证 (有 Docker 时自动验证 patch)
python -m mace --eval-swe --enable-docker
# 单智能体对比模式
python -m mace --eval-swe --mode mace_single_per_agent
数据首次使用时会自动从 HuggingFace 下载:
运行测试
pytest tests/ -v --tb=short
API 文档
评测接口
| 方法 |
路径 |
说明 |
| POST |
/api/v1/eval/cmmlu/start |
启动 CMMLU 评测 (后台) |
| POST |
/api/v1/eval/swe/start |
启动 SWE-bench Verified 评测 (后台) |
| GET |
/api/v1/eval/cmmlu/status |
查询评测状态 |
| GET |
/api/v1/eval/cmmlu/report |
获取评测报告 |
启动评测示例:
# CMMLU
curl -X POST "http://localhost:8080/api/v1/eval/cmmlu/start?max_per_subject=5&mode=mace_multi"
# SWE-bench
curl -X POST "http://localhost:8080/api/v1/eval/swe/start?max_count=5&mode=mace_multi"
推理接口
| 方法 |
路径 |
说明 |
| POST |
/api/v1/chat/completions |
同步推理 |
| POST |
/api/v1/chat/stream |
流式推理 (SSE) |
请求示例:
{
"messages": [{"role": "user", "content": "解释量子纠缠"}],
"mode": "standard",
"temperature": 0.7,
"max_tokens": 2048,
"stream": false,
"enable_memory": true,
"enable_ask": true
}
响应示例:
{
"id": "abc12345",
"answer": "量子纠缠是...",
"meta": {
"routed_agents": ["glm-5", "qwen-3.7", "deepseek-v4"],
"aggregation_weights": [0.52, 0.31, 0.17],
"weights_snapshot": {"glm-5": 0.85, "qwen-3.7": 0.80},
"confidence": 0.92,
"latency_ms": 3200,
"mode": "standard"
}
}
智能体接口
| 方法 |
路径 |
说明 |
| GET |
/api/v1/agents |
智能体列表 |
| GET |
/api/v1/agents/{id} |
智能体详情 |
| GET |
/api/v1/agents/{id}/memory |
查询记忆 |
| POST |
/api/v1/agents/{id}/memory |
手动写入记忆 |
| GET |
/api/v1/memory/shared |
查询共享记忆池 |
权重管理接口
| 方法 |
路径 |
说明 |
| GET |
/api/v1/agents/weights |
所有智能体当前权重 |
| GET |
/api/v1/agents/{id}/weight-history?window=100 |
权重历史 |
| POST |
/api/v1/system/review |
手动触发综合评审 |
| PUT |
/api/v1/agents/{id}/weight |
人工设置权重 (紧急纠偏) |
反思预判接口
| 方法 |
路径 |
说明 |
| POST |
/api/v1/system/reflection?agent_id=xxx |
触发反思 (可指定智能体) |
系统接口
| 方法 |
路径 |
说明 |
| GET |
/api/v1/system/status |
系统状态总览 |
配置说明
所有超参数 (γ / δ / N / ω_min / ω_max / β / α 等) 均可在 config/default.yaml 中修改, 严格按设计文档附录 B 默认值预设。
关键参数速查
| 参数 |
符号 |
默认值 |
说明 |
| 权重学习率 |
γ |
0.15 |
任务级权重更新步长 |
| 评审周期 |
N |
100 |
触发周期性综合评审的任务数 |
| 权重下限 |
ω_min |
0.05 |
最小权重保护 |
| 权重上限 |
ω_max |
0.95 |
权重饱和上限 |
| 提问阈值 |
δ |
0.15 |
触发提问的最小权重差 |
| 记忆预留比 |
η |
0.15 |
记忆区预留空间比例 |
| 记忆容量 |
H_max |
10,000 |
单智能体最大记忆条目 |
| Dropout率 |
— |
0.15 |
EPE 探索阶段丢弃率 |
模型池配置
config/model_pool.yaml 定义 6 个智能体, 默认使用 mock 适配器。切换到真实模型只需修改:
model_pool:
- id: "kimi-k2.7"
adapter: "api" # 改为 api
model_name: "moonshotai/Kimi-K2.7"
endpoint: "https://api.moonshot.cn/v1" # 真实端点
api_key: "sk-xxxxxxxx" # 真实 Key
weight_init: 0.40
expertise: ["creative", "writing"]
适配国内大模型
APIAdapter (src/mace/adapters/api_adapter.py) 采用 OpenAI 格式 chat/completions 接口, 已适配:
| 厂商 |
默认端点 |
说明 |
| DeepSeek |
https://api.deepseek.com/v1 |
已测试格式 |
| Kimi / Moonshot |
https://api.moonshot.cn/v1 |
已测试格式 |
| MiniMax |
https://api.minimax.chat/v1 |
已测试格式 |
| 智谱 GLM |
https://open.bigmodel.cn/api/paas/v4 |
预留端点切换 |
| 阿里 通义 |
https://dashscope.aliyuncs.com/v1 |
预留端点切换 |
| 百度 千帆 |
https://qianfan.baidubce.com/v2 |
预留端点切换 |
默认超参数 (附录 B)
| 参数 |
默认值 |
| γ (学习率) |
0.15 |
| N (评审周期) |
100 |
| ω_min |
0.05 |
| ω_max |
0.95 |
| δ (提问阈值) |
0.15 |
| η (记忆预留) |
0.15 |
| H_max |
10,000 |
| Dropout |
0.15 |
| N_reflect |
100 |
错误码
| 错误码 |
含义 |
| 400 |
请求参数错误 |
| 404 |
资源不存在 |
| 429 |
请求频率超限 |
| 500 |
内部服务错误 |
| 503 |
服务未就绪 |
开发计划
| 版本 |
预计 |
核心功能 |
| v0.1 (MVP) |
Q3 2026 |
✅ 基础六层架构 + 权重实时更新 + 3-5 模型 + 同步 API |
| v0.2 |
Q4 2026 |
✅ CMMLU 评测 + SWE-bench Verified 评测 |
| v0.3 |
Q1 2027 |
周期性综合评审 + 趋势分析 + 记忆系统完整 + 流式推理 |
| v1.0 (GA) |
Q2 2027 |
生产级稳定性 + 管理界面 + Helm + 完整 API 文档 |
| v1.1 |
Q3 2027 |
多模态记忆 + 联邦蒸馏 + 动态拓扑通信 |
术语表
| 术语 |
定义 |
| MACE |
Memory-Augmented Multi-Agent Collaborative Evolution Platform |
| 智能体 |
封装单个大语言模型及其记忆、权重的运行单元 |
| 权重 |
衡量智能体综合能力的动态评分, ω ∈ [0,1] |
| 动态评审 |
包含实时任务级更新和周期性综合评审的双层机制 |
| 共享记忆池 |
所有智能体可查询的公共记忆集合 |
| 反思 |
智能体周期性回顾记忆、总结经验的过程 |
| 预判 |
基于反思结果推导未来问题与策略的过程 |
| CMDP |
约束马尔可夫决策过程 |
| EPE |
探索-利用机制 (Explore-Exploit) |
| CMMLU |
中文多任务语言理解评估 (Chinese MMLU) |
| SWE-bench |
真实 GitHub issue 代码修复评测基准 |
安全与权重治理
- 权重变更审计: 所有修改自动记入审计日志 (
WeightStore)
- 权重回滚: 通过
PUT /api/v1/agents/{id}/weight 一键回滚
- 公平性保障: 上下限保护 (ω_min=0.05, ω_max=0.95)
- 偏差检测: 权重偏离历史 3σ 或突变 >0.2 时自动告警
本 README 为 MACE 平台 v0.1 使用与开发指南。完整设计说明参见 记忆增强型多智能体协同进化平台(MACE).md。