# 我开源了一个多智能体框架，同时做到了 Swarm 的简洁和 LangGraph 的生产级

> 适用平台：掘金、知乎、CSDN、SegmentFault

---

## 先说痛点

过去一年我一直在用各种 AI Agent 框架做项目，踩了无数的坑：

**OpenAI Swarm** — 极简，3 个原语就上手了。但是：没有检查点恢复、没有预算控制、没有重试机制。一个 API 调用失败，整个流程就崩了。只能做 demo，上不了生产。

**LangGraph** — 生产级没问题，状态机、持久化都有。但学习曲线太陡了。我花在理解框架的时间比解决业务问题的时间还多。

**CrewAI** — 定义团队很方便，但编排模式锁死了。我想在同一个应用里同时用静态流水线（内容创作）和动态路由（客服系统）？做不到。

**AutoGen** — 微软出品，功能很全。但 API 复杂，文档跟不上代码变化，想接外部工具和其他 Agent 系统？协议不通。

每次选框架我都在想：**为什么非要二选一？**

## 所以我做了 Nexus

核心设计理念：

### 🧬 3 个原语，记住就够了

```python
Agent   — 有指令、有工具、有能力向量的 LLM 代理
Task    — 一个工作单元，有完整生命周期管理
Handoff — 三种交接模式：委派、转移、广播
```

就这三个。没有 Chain、没有 Graph、没有 Crew、没有 Society。三个概念，万物可组合。

### 🔀 3 种编排模式，按需切换

这是 Nexus 最大的差异化：

**图模式 (Graph)** — 当你清楚工作流的步骤时用

```python
graph = GraphOrchestrator()
graph.add_node("research", researcher)
graph.add_node("write", writer)
graph.add_edge("__start__", "research")
graph.add_edge("research", "write")
graph.add_edge("write", "__end__")
```

类似 LangGraph，但 API 更简洁。

**路由模式 (Router)** — 让系统动态决策

```python
team = Team(model="gpt-4o", mode=TopologyMode.ROUTER)
team.add_agent("coder", instructions="你是一个程序员")
team.add_agent("writer", instructions="你是一个作家")
await team.run("用 Python 实现快排")  # → 自动路由到 coder
```

类似 Swarm 的 handoff 理念，但更智能。

**自适应模式 (Adaptive)** — Agent 自组织协作 ⭐ 独创

```python
team = Team(model="gpt-4o", mode=TopologyMode.ADAPTIVE)
team.add_agent("coder", capabilities=AgentCapability(coding=1.0, reasoning=0.8))
team.add_agent("writer", capabilities=AgentCapability(creativity=1.0, language=0.9))
team.add_agent("math", capabilities=AgentCapability(math=1.0, reasoning=0.9))

await team.run("证明根号 2 是无理数")  # → 能力匹配 → math agent
```

每个 Agent 有 8 维能力向量。系统通过余弦相似度匹配 + ELO 式评分来路由任务。用得越多，路由越准。

### 🔌 协议原生——这很重要

Nexus 不是又一个闭合生态。它从第一天起就构建在两个开放协议之上：

- **Google A2A** — Agent 间互相发现、通信的标准协议
- **Anthropic MCP** — Agent 连接外部工具的标准协议

这意味着 Nexus Agent 可以和任何支持 A2A 的 Agent 系统通信，可以连接任何 MCP 工具服务器。

## 5 行代码体验

```python
import asyncio
from nexus import Team

async def main():
    async with Team(model="gpt-4o") as team:
        team.add_agent("researcher", instructions="你负责深入研究课题。")
        team.add_agent("writer", instructions="你负责撰写引人入胜的文章。")
        result = await team.run("写一篇关于 AI Agent 现状的博客文章")
        print(result)

asyncio.run(main())
```

## 生产级特性一览

| 特性 | 说明 |
|------|------|
| ✅ 检查点/恢复 | 任务执行到一半崩了？从断点恢复 |
| ✅ Token 预算 | 逐 Agent/Task 计量，快超预算时自动降级模型 |
| ✅ 重试链 | 指数退避 → 换一个 Agent → 人工介入 |
| ✅ 分布式追踪 | 兼容 OpenTelemetry，每一步都可追溯 |
| ✅ 多模型 | OpenAI / Anthropic / Ollama（本地） |
| ✅ CLI | `nexus init` / `nexus run` / `nexus chat` |

## 架构图

```
╔══════════════════════════════════════════════╗
║  第 5 层：开发体验                            ║
║  Team API • CLI • YAML 配置 • @tool 装饰器   ║
╠══════════════════════════════════════════════╣
║  第 4 层：可观测性                            ║
║  分布式追踪 • 指标 • Token 计量              ║
╠══════════════════════════════════════════════╣
║  第 3 层：编排引擎                            ║
║  图模式 • 路由模式 • 自适应模式               ║
╠══════════════════════════════════════════════╣
║  第 2 层：运行时                              ║
║  执行引擎 • 检查点 • 重试/降级 • 预算控制     ║
╠══════════════════════════════════════════════╣
║  第 1 层：协议 + 核心原语                     ║
║  Agent • Task • Handoff                      ║
║  A2A 协议 • MCP 协议 • 发现服务              ║
╚══════════════════════════════════════════════╝
```

## 与主流框架对比

| | Nexus | Swarm | LangGraph | CrewAI | AutoGen |
|---|:---:|:---:|:---:|:---:|:---:|
| 上手难度 | 低 | 低 | 高 | 中 | 高 |
| 编排模式数 | 3 | 1 | 1 | 1 | 1 |
| 协议支持 | A2A+MCP | — | — | — | — |
| 检查点恢复 | ✅ | ❌ | ✅ | ❌ | ⚠️ |
| Token 预算 | ✅ | ❌ | ❌ | ❌ | ❌ |
| 能力匹配 | ✅ | ❌ | ❌ | ⚠️ | ❌ |
| 多模型 | ✅ | ❌ | ✅ | ✅ | ✅ |

## 安装和体验

```bash
pip install nexus-agents[openai]

# 或者用 CLI
nexus init my-project
cd my-project
python main.py
```

## 开源信息

- **GitHub**: https://github.com/songtianye/nexus
- **协议**: MIT（随便用）
- **Python**: 3.11+
- **Star**: 如果对你有帮助，请帮忙点个 ⭐

## 我在构建过程中的思考

1. **协议比抽象更重要。** 构建在 A2A 和 MCP 上意味着 Nexus Agent 可以和任何 Agent 系统对话，不只是 Nexus 内部。

2. **没有万能拓扑。** 内容流水线需要图，客服系统需要路由，研究团队需要自适应。框架应该三种都支持，让问题来决定用哪种。

3. **Agent 系统的「最后一公里」是可靠性，不是智能。** 预算控制、检查点、重试策略——这些无聊的特性才是区分 demo 和产品的关键。

---

**如果这个项目对你有帮助，欢迎 Star 🌟 让更多人看到！**

---

## 掘金/知乎发布建议

**标题备选（A/B 测试）**：
- 「我开源了一个多智能体框架，同时做到了 Swarm 的简洁和 LangGraph 的强大」
- 「3 个原语 + 3 种编排模式：我造了一个不一样的 AI Agent 框架」
- 「告别选择困难症：一个框架统一图编排、动态路由和自适应 Agent 团队」
- 「为什么我花了 3 个月造了 Nexus 而不是直接用 LangGraph」

**标签建议**：AI Agent、LLM、多智能体、Python、开源、MCP、A2A

**发布时间建议**：工作日上午 10-12 点
